iModernize - The Profound Logic Software Blog

Top Things to Consider When Modernizing and Transforming IBM i Legacy IT Environments

Posted by Michael Killian on Aug 24, 2020 10:00:00 AM

If you haven’t had the opportunity to read our series focused on “What is Legacy Code”, it might help to quickly catch-up and review that first.

Most of our customers are comfortable with RPG since it is the predominant language on the IBM i, and most are familiar with Java and .NET since those languages have been around for 2-3 decades. But many are not as familiar with Node.js. There are a lot of great resources available regarding Node.js, so I though amalgamating that information into one concise article for ease of reference might be a better use of your time. There are so many resources out their surrounding Node.js, so we have put together a list of the top things you should consider before choosing a language for your development.

 

Everyone has an Opinion, but this is your Decision

There are a few things that are key to remember on your digital transformation journey. Just as it’s not up to me or any vendor to define what is legacy and what is modern, it’s also not up to me or any vendor to define what is your preferred target language. It is up to each organization, and by organization I mean the affected units within the organization, to collaborate and have detailed conversations on this topic as it relates to their specific business needs. Gone are the days when IT can have one view, and business another. The companies that survive and thrive have an aligned and unified definition of not only where they are, but also where they want to be.

As you think of your target language options, be sure to follow these steps:

  • Research
  • Ask experts for guidance
  • Perform assessment/due diligence
  • Check target language resource availability and rates
  • Do a proof of concept
  • Rest confidently in and move forward with your informed decision

 

Look to Data, Not Emotions, to Drive your Target Language Decision

TIOBE

In order to fully delve into Node.js, it is important to understand the context on Java and .NET. As one point of research, if you were to look at the TIOBE Programming Community Index rating (based on skilled engineers world-wide, courses, and third-party vendors), you would see that Java had a 26.49% rating in June 2001 and has steadily trended downward to 14.43% this month (August 2020). Conversely, C# had a 0.43% rating in June 2001, peaked at 8.65% in February 2012, and has trended downward to 4.68% in July 2020. For context, RPG in July 2020 had a rating of 0.23% (and dropped of the ranking list in August 2020). Of special note to these numbers, JavaScript, has trended upward from a 1.55% rating in June 2001 to a rating of 2.87% in August 2020.

To be frank, Java is still the #2 language of choice from this research…but it is important to note that its popularity has been steadily trending downward for several years, much in the way that .NET languages have. And from this research, whereas JavaScript is currently ranked the 7th language of choice, it has been steadily trending upwards. With that said, one data point that organizations should consider is not only the viability of a target language today, but the indicators as to what the viability of the target language will be in the future (ala trends).

redmonk

Redmonk, who measures programming language traction as seen via GitHub pull requests and Stack Overflow discussion, offers additional research. From this data you will see that JavaScript is ranked #1 for almost every year from 2012 to present. Java has predominantly been ranked #2 for almost every year during that same period, with a drop to #3 in 2020 (perhaps a drop coinciding with the downward trend found via TIOBE). And lastly C# starting 2012 with a ranking of #6 but held to a #5 position for the last 5-6 years.

 

With TIOBE and Redmonk research pointed out as examples, please realize that there is quite a bit more research available…and as you can imagine, numerous opinions surrounding target language preferences abound. Simply do a search for “Java vs. JavaScript”, “Java vs. Node.js”, “.NET vs JavaScript”, and/or “.NET vs Node.js” and you will have literally days of reading and research information available to help you decide which target language makes the most sense to your organization.

 

Node.js vs JavaScript: What’s the Difference? Is there one?

As we transition the discussion to Node.js, we need to address one of the questions raised: Why do I speak of JavaScript and Node.js almost interchangeably? Again, instead of reinventing the wheel, let me point you to how InfoWorld described Node.js, “Node.js is a lean, fast, cross-platform JavaScript runtime environment that is useful for both servers and desktop applications.”

Further demystifying the difference is CodeAcademy, which states that “JavaScript has existed since 1995 and has since taken over as the dominant language for web development. For much of its life, JavaScript was used mainly for client-side scripting inside <script> tags executing in web browsers. This limitation meant that developers were often working in many different languages and frameworks between the front-end (client-side) and backend (server-side) aspects of a web application. Although there were other projects to bring JavaScript to server-side applications, the functionality took off with the launch of Node.js in 2009. Node allows developers to write JavaScript code that runs directly in a computer process itself instead of in a browser. Node can, therefore, be used to write server-side applications with access to the operating system, file system, and everything else required to build fully-functional applications.

As such, JavaScript is the language, and Node.js is simply the platform (or maybe easier thought of as a framework of sorts) that facilitates JavaScript development on the server.

nodejs

With that said, it is important to note that JavaScript is used by almost every developer for client-side coding, so using it on the server-side means that just about anyone doing modern development is already familiar with it. This is a key point when looking for a target language! In fact, according to Monterail, “Node.js is the most popular kid on the block—98% of Fortune 500 companies use Node.js in their applications regularly. It also wins as most loved framework (73.4% of developers love Node) and it’s the second most-demanded coding skill by employers right now”. I want to reiterate that 98% of Fortune 500 companies are using it…not because they are early adopters that go after the newest technology for pursuit sake, but because Node.js has proven itself as a long-term, viable, scalable, performant, easy to use and easy to adopt language.

 

In addition, here are some great facts that support the use of Node.js over other languages:

  • Node.js helps reduce developing costs by 58%, according to Netguru. Remember, transforming RPG to Node.js is only part of the solution…you must think about ongoing development in that target language once you arrive to your target language destination.
  • 49.9% of professional developers use Node JS for its frameworks, libraries, and tools, according to Stack Overflow. And Profound.js is a framework that brings enterprise data processing standards to Node.js in a way that Node.js programmers are used to using.
  • More than 85 countries and users with 45 different native languages use Node.js worldwide, according to NodeJS. So, as we are no longer companies that are focused on one geography as our playground, this type of statistic is extremely relevant as you consider scaling worldwide.
  • 46% of Node.js developers are in the group age 25-35, according to NodeJS. That is to say that a similar concern of RPG developers retiring is not going to raise its head again for 50+ years.
  • All versions of Node.js show a 40% year-by-year growth of downloads, according to Nodesource and Nodesource Insights. Compare this trend with those of .NET and Java.

I trust that this article gives you more insight into JavaScript and Node.js, and perhaps how they compare to what some say are legacy languages (or perhaps quickly approaching legacy languages). I want to continue to stress that pointing out the benefits of one or more languages does not necessarily mean that the other languages are bad or lacking…it simply means that it is incumbent upon you to look at the data available to you, collaborate with colleagues and experts, and then confidently make the decision as to which language will not only take your company where it needs to go today, but also beyond and into the future!

Continue to watch for future articles in this series, all done with the hope to make your digital transformation of legacy applications successful. And if any of my colleagues at Profound Logic or I can help along the way, please don’t hesitate to contact us!

Subscribe to Blog Updates

....and get our "How to Get Full Business Buy-In for Your Modernization Project" ebook!

business buy-in ebook

Recent Posts