IBM Delivers Node.js Runtime to IBM i 7.1 and 7.2
October 14, 2014 Alex Woodie
Node.js is essentially a framework designed to take some of the complexity out of building and running scalable, data-intensive Web applications. The framework was created in 2009 by Ryan Dahl, who was tired of the “request-response” paradigm that has characterized the Web and wanted Web apps with “push” capability, like Gmail.
Dahl built Node.js to follow an event-driven paradigm that allows applications to communicate asynchronously via file, socket, and HTTP connections. In short, Node.js basically allows applications to act as a Web server, but without incorporating the overhead and complexity of an HTTP server. Either the client or the server can initiate communications, and the whole enchilada was built for scalability. It’s sort of like programming in Flash or using Java Applets, but without the hassle of going outside Port 80.
On top of the core Node.js functionality, IBM built some extensions to get access to the DB2 for i database, as well as to get access to native IBM i objects, such as programs, commands, data queues, data areas, spool files, user spaces, jobs, system values, and environment values.
So essentially, IBM is giving developers the capability to expand their existing IBM i environments out into the Node.js world. You can write a new app–both front and backend–with Node.js, and connect it to existing RPG-based apps and database files. It’s the best of both worlds frankly.
Node.js gives IBM i developers one more option for programming next-generation apps on the platform, just PHP as and Ruby on Rails support did before (and you can also program in Python and Perl, if you please). While the vast majority of backend business logic will always live in RPG or Cobol, IBM is giving developers the ability to modernize and extend the power of those apps with modern languages designed for the Web, and that’s a very, very good thing.