JavaScript Still Rules, Ruby Is Losing Steam
Just three years ago Ruby was all the rage in app development and JavaScript was looked down upon as out-of-fashion front-end relic. Looking at data from GitHut*, Ruby was the second-most popular language on GitHub**, closing in on JavaScript.
The most popular languages on GitHub Q3/2012
But something has happened since. In Q4/2014, JavaScript had maintained its lead and Ruby had fallen to a distant sixth place, behind – oh, the ignominy of all ignominies – PHP.
The most popular languages on GitHub Q3/2012
So, what did happen? I posit two things:
- Reality caught up with Ruby. While Rails can be handy and powerful in the hands of a wizard, it is damn hard to learn. Yes, contrary to the claims of Rails advocates, Ruby is tricky. And finding Ruby talent is also tough. If you don't believe me, just take a look at an app. If you are not fluent in Ruby and start taking apart an RoR app, you are in for a long haul. A JavaScript app? If you remember even a bit of C syntax, you're good. Heck, JavaScript is so simple even I can write some.
- Node.js*** happened. Since Isaac Schulter took the lead of the Node.js project in January 2012 its popularity has exploded (this is not to meant to take anything away from Ryan Dahl) and it has become the go-to tool for an awful lot of developers. Node is accessible to not only developers from backgrounds such as C or Java, it is also easy for front-end developers to pick up, meaning a significant widening of the talent pool.
Node.js Modules vs. Ruby Gems****
RoR is still a good tool and if you have a team that knows Ruby and Rails there is absolutely no reason not to choose it as the main tool for building your app. But JavaScript has not gone nor is it likely to go away.
* www.githut.com; a wonderful source of GitHub data visualizations
** the count is based on public repositories on GitHub
*** Yeah, I know. Comparing Node and RoR is an apples-to-oranges affair but they are used to get more or less the same things done.
****www.modulecounts.com