If you’ve ever spoken to developers you can be assured of one thing: they are very argumentative when it comes to the programming language they like and the framework they prefer for it.
Go to a tech meetup and you’re bound to find at least two developers arguing over whether NodeJS or Rails or .NET is the best framework to use. This often leaves individuals new to web app development wondering what to learn and somewhat worried about making the wrong choice.
Every framework has it’s up’s and downs but I’m going to make the case right now for why developers need to move away from Rails and make the effort to learn NodeJS.
Ruby and Rails thrived in its early days because it made learning to code much easier for new developers. Programming has always been an intimidating vocation because of how complex it can be to understand the way computer scientists choose to describe programming concepts. Rails took these ideas and allowed developers to represent them with more natural language, i.e the way you speak. This made it much easier for newbies to jump into programming and build apps. Rails also came with a host of other features like active record for querying databases, an sqlite database built right now, and generators for templating many parts important to organizing code.
Rails helped usher in the current development landscape because it brought programming to a whole new market; the non-computer scientist developer. Web applications rapidly proliferated across the Internet and independent developers began to solve the types of problems typically reserved for the software giants. Unfortunately for Rails, the new technology era it inspired would also become what replaced it.
As the Internet grew more powerful and browsers like Chrome began to push the envelope of what web applications were capable of, technology evolved and adapted. In the era when Rails was on the rise, servers were primarily responsible for passing web pages to the end user trying to read them; i.e. you. With more and more people jumping online servers began to feel the strain of an increasing number of page requests.
NodeJS was built from the ground up to meet the needs of modern web applications. At their core, websites are just handling multiple input and output interactions. Essentially user clicks on something like playing a song and the song plays. The types of things web applications were asked to do did not involve running complex algorithms and so they were not using up a ton of CPU power. All that they were doing was running a bunch of short quick little process on the CPU to grab a few files, or some data from a database, and send it to a user.
This subtle change in how the language is run on the CPU level is not just a differentiator of NodeJs from Rails, it’s also a differentiator from how most server side languages were designed. The change has led numerous developers to adopt NodeJs over Rails to save on server costs and bandwidth consumption. In fact, as of July 2014, the number of developer packages for NodeJs has surpassed Rails.
NodeJS has also ushered in a paradigm shift for how web applications should be built. This article on TechCrunch expresses that need in the form of API driven design. API’s are something that both Rails and NodeJS support, however, unfortunately for Rails, NodeJS preforms orders of magnitude better for large user bases. It is so quick it even allows for real time changes of data on websites.
Every framework has its pros and cons and anyone that is zealot for one maybe just hasn’t spent enough time working in the others. I have no animosity towards Ruby, it is an excellent framework, but just like gas-powered vehicles, all good things must come to an end.
Interested in learning more about NodeJs? Sign up for BrainStation’s Immersive class where Rares is a lead educator!