Node or Ruby?

OK, so we may well be comparing apples and oranges, but in 2018 it seems it’s still a big question for developers and new career seekers if the top questions on IT recruitment boards and development forums are to be believed.

The world of web and mobile development is a fast-paced, constantly evolving one, which makes it hard to grow too attached to any one way of doing things. Node.js seems to be coming up fast to overtake as the ‘alternative’ to Ruby on Rails (that’s if you believe that it hasn’t already). For new entrants to the business, students, and clients wondering which development proposal to go for, it sounds like a complicated business.

If you’re new to the debate we’ll explain the basics here

Ruby on Rails is an architecture-heavy framework popular for database backed applications that creates in Ruby programming language according to the MVC (Model View Controller) pattern.

This makes it perfect both for speedy prototyping and ultra time-efficient larger scale development projects. Ruby on Rails is loved by developers for its ease of use and library access, and loved by clients for the speed it can bring to projects, allowing them to get to market fast. A quick look at the corporates built on this framework also leaves us in no doubt as to its reliability, with some very big business users (in numbers and traffic) including GitHub and AirBnB on board. Twitter was built on Ruby on Rails.

Highlights for Ruby on Rails latest 2018 release (5.2) will include Active Storage, facilitating the upload of files to cloud storage services like Amazon, Google and Microsoft Azure and bringing new options for image variations and video previews, as well as the option to create Content Security Policies for applications.

The simplicity of the Ruby on Rails framework allows developers to be more efficient in a shorter time frame with lower upfront project costs, great for startups and rapid prototyping.

Node.js is a framework built on Google’s Chrome V8 Javascript engine. It’s event-driven, Javascript model makes it speedy and efficient. It also benefits from npm, the world’s largest open source library collection.

Node.js is designed to be ultra fast and scalable for data intensive, real-time applications – with libraries and communities often trend led and encompassing Internet of Things, chat, streaming  and robotics. Node.js is great for Arduino and similar controller driven electronics projects because of its low memory requirements. Javascript libraries like React were made for Virtual reality applications and 360 degree experiences.

Clients should bear in mind that the increased upfront development costs of a Node.js project will result in lower costs over longer term projects, costing them less for future scalability, maintenance and the addition of new features.

Heavyweight users benefitting from the fast pace of Node.js include Netflix, Uber, eBay and Paypal. LinkedIn were early adopters, famously transferring their mobile backend infrastructure to Node.js. It’s becoming a popular choice, especially for start-ups where creating proof of concept and getting out to market at speed can be critical.

Both Ruby and Node.js are reliable and ‘relatively’ easy to learn, thanks to their respective programming languages Ruby and Javascript, (the world’s most popular programming language).

Both benefit from strong, skilled (and passionately opinionated), world-wide community support and huge online educational resources. So there are strong opinions either way, especially within the development community.

Stack Overflow developer survey 2017 asked 64,000 developers about their coding habits and preferred technologies. 61.9% of over 22,000 respondents to the question ‘What’s your favourite programming language?’ cited JavaScript as their weapon of choice, and this rose to 66.7% among professional developers. This was the fifth year in a row JavaScript topped this category.

Ruby still makes it into the top ten and number 10 though.

Node.js topped the ‘Frameworks, Libraries and other Technologies’ category in the same survey with 47.1%.

Stack Overflow’s ‘Change in Technology Popularity’ figures show that Ruby on Rails figures in this category have remained static over the last five years (10% 2013 to 9% 2017), but Node.js has increased from 8% in 2013 to 26% in 2017.

So, are we comparing a track sprinter to a weightlifter here?

Node.js is fast but can’t handle CPU intensive demands so well. Ruby is heavier on your servers.

Like the sprinter, Node.js is nimble, faster and lighter on its feet. It excels at the new and pushes hard for alternative ways of reaching the tape, while still taking full advantage of the tried and tested frameworks in place.

Like the weightlifter, Ruby on Rails benefits greatly from the more risk-free environment of doing things in strict stages according to the rulebook, and so excels at the heavy lifting.

Ruby on Rails was designed to make ‘developers happy’ and that’s still a core principle for them in 2018. So it would take a brave dev to discount them altogether, especially when a whole stack of big businesses aren’t.

Like any project, use the best systems for your needs and budget, and work according to the skill sets and learning speeds of your development team. And developers should always keep a close eye on recruitment websites to see which specific skills are in highest demand from recruiters.

Leave a Reply