Node.js – From the Past Back to the Future

From the Past Back to the Future

From the past: Back in the day, in a distant past, the majority of software development was single threaded (you had no choice), and when you had multiple users, you programmed to a single user interface. This interface consisted of a single threaded model of Data and Code, with each user having his or her data, and reusing program segments that were already in memory. Any of you remember reentrant code? Why do I mention such old archaic technology? In the mainframe era, you could have a single programmer develop some fabulous software applications.  You acted as if you were developing for a single user and magically it scaled for multiple users.  But the mainframe systems were not easily distributed.

“In the mainframe era, you could have a single programmer develop some fabulous software applications.  You acted as if you were developing for a single user and magically it scaled for multiple users.  But the mainframe systems were not easily distributed.”

I have spent over a decade wrestling with the JEE stack of web development. Has JEE failed? Not in my opinion.  However, the JEE development stack has become a monster act of juggling layers, upon layers of differing technologies.  In a nutshell “JEE Programming has become a chore, and with such a complex stack it is not much fun anymore.” Also,  throw in the monkey wrench of multiple points of failure — this stuff just breaks your heart. Yes, JEE is distributed, but it feels like a loose tooth.

To the future:  I will always believe there are better ways of developing software applications. So, in my quest for discovery, I rediscovered “the good parts” of JavaScript. After reading Douglas Crockford’s  “JavaScript the Good Parts,” I became a believer. JavaScript is truly an easy language to work with and learn. And the most amazing thing that I found is the User support of this language is unprecedented!  JavaScript being one small facet for “Good” software development. The second jewel of discovery: Node.js. Why Node? Node is simple, I mean simpler, and fun!

Node.js: Small footprint, fast, large user community, easy, scalable, and built for the Web — Asynchronous. Did I mention fast? What about fun? Yes, fast and fun. I will go out on a limb and suggest to you that Node.js is 10X faster, 10X easier, and 10X less expense than JEE. Now, this is an intuitive exaggeration but I hope you get my point. What you also get is the ability to have a single programmer develop the whole stack, from presentation to the backend and back. Ever hear of the Single Programmer Stack? Node’s new technology stack can scale, node is written in a modern paradigm, node is fast, simple, and fun. And maybe a single developer can again, like the past, program the whole.

“What you also get is the ability to have a single programmer develop the whole stack, from presentation to the backend and back.”

Eyes wide open. I once submitted a hardware sizing requirements to the infrastructure gurus. The Use Case suggested five million batch transactions each month. Complexity High, memory usage huge, and the need for high volume transaction processing. When the hardware sizing results came back, it was suggested that the business unit would have a charge back of 105 Hundred thousand dollars, a month, to support these five million transactions. WTF? Yes, that is right over a million dollars to support five million transactions.  I don’t believe it was the transactions, but the infrastructure support Application Server(s), Web Server(s), Database Server(s), Security, Unix administrators, DBA’s, Programming Support, Deployment Support, and the list went on. The darn stack cost mega bucks, in both Money and Complexity! Off the record the group that I supported truly believed we could solve this with about five thousand dollars of hardware and a full time app support (living in a garage for 100 thousand a year).  See the 10X factor here.  You can get all this on the cloud for pennies on the dollar — if and only if you can simplify this equation. Node.js + Mongo DB + JavaScript Front Ends (Single Page Applications) === 10X reduced cost and complexity. Off the record: I got Node.js and Mongo to run on a distributed cluster of 35.00 dollar Raspberry pi’s – don’t tell anyone from a million dollars to a few hundred dollars, now you count those apples.

I am actively writing Node.js applications, and the joy of programming is back! Yes, the future is bright with Node.js. My crystal ball sees this new technology trumping Java. Sincerely from a former Java Junkie.

 

Categories: Uncategorized