Choosing The Language To Transform Your Applications
October 19, 2020 Michael Killian
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 two to three decades. But many are not as familiar with Node.js.
There are a lot of great resources available regarding Node.js, so I thought 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 there to give context and meaning to Node.js, so I have put together a list of the top things you should consider before choosing a target language for modernization and transformation.
Everyone Had 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
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 percent rating in June 2001 and has steadily trended downward to 14.43 percent this month (August 2020). Conversely, C# had a 0.43 percent rating in June 2001, peaked at 8.65 percent in February 2012, and has trended downward to 4.68 percent in July 2020. For context, RPG in July 2020 had a rating of 0.23 percent (and dropped of the ranking list in August 2020). Of special note to these numbers, JavaScript, has trended upward from a 1.55 percent rating in June 2001 to a rating of 2.87 percent in August 2020.
To be frank, Java is still the number 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, which 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 number 1 for almost every year from 2012 to present. Java has predominantly been ranked number 2 for almost every year during that same period, with a drop to number 3 in 2020 (perhaps a drop coinciding with the downward trend found via TIOBE). And lastly C# starting 2012 with a ranking of number 6 but held to a number 5 position for the last five to six 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 Versus JavaScript: What’s The Difference?
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.
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 percent of Fortune 500 companies use Node.js in their applications regularly. It also wins as most loved framework (73.4 percent of developers love Node) and it’s the second most-demanded coding skill by employers right now.” I want to reiterate that 98 percent 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:
- js helps reduce developing costs by 58 percent,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.
- 9 percent 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 Node.js. 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 percent of Node.js developers are in the group age 25 to 35, according to Node.js. 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 percent 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!
This content is sponsored by Profound Logic.
Michael Killian is vice president of strategic accounts at Profound Logic.
RELATED STORIES
Getting Out Of The Catch-22 Of Application Transformation
IBM i Before And After The Pandemic
Need Help Approving A Modernization Project? Try A Business-Led Approach
NodeRun Is Node.js For Everyone
Sometimes Even DIYers Need A Little Help
What Is The State Of Your IBM i Modernization?
Break Out Of Your RPG Comfort Zone
Talking Modernization With Profound Logic
Profound Survey Adds To ‘Why i Matters’ Discussion
Modernization or Migration? Survey Aims to Sort Out the Direction
Thanks for sharing, very helpful article.