Ruby on Rails turned 10 last July; in coding years it’s comfortably into late middle age. As such it’s no longer the cool kid of the scripting world but only 3 years ago Ruby was generating headlines like: Here’s Why Ruby On Rails Is Hot. Hipster coders work a lot on the front end these days with the Über JS languages like Node and Angular.
It was launched on 25th July 2004 by Danish developer David Heinemeier Hansson, known simply as DHH. It was designed to be productive but less arduous in building ecommerce engines and social media platforms. But regardless of the many Rails detractors there is still a much higher demand for Ruby experts than the other frameworks that are being cultivated by a tiny number of aficionados.
In its apogee Ruby was used to build some of the biggest global media infrastructures out there: these included Amazon, BBC, Cisco, CNET, IBM, JP Morgan, NASA, and Yahoo.
Ruby made it much easier for firms, usually smaller firms and start-ups, to create their own highly differentiated web service applications in house.
It also threatened the primacy of .Net and Java in Enterprise level applications. Corporations could do it as well by passing the tortuous sign-off to tiers to buy in new off-the-shelf applications. Its USP’s were speedy development cycles and reduced costs.
“Ruby on Rails has the potential to emerge as a strong alternative platform to traditional choices based on Java and .NET for next-generation enterprise applications, as companies seek improved agility, development speed and time to market.”
Eric Knipp, Research Director at Gartner: quoted by Engine Yard, April 27, 2011.
Coupa Software, a SaaS operation based in the US, used Ruby to build an enterprise level service. Rails was the best fit for their application and they chose it over other Java frameworks that were available. But a major selling point for Rails was the philosophy underlying the framework.
These are pithily captured in the phrases: “Conventions over Configuration” and “Don’t Repeat Yourself”; this made development and debugging quick, simple and efficient. The script was more eloquent with less developers involved and less code. The final software was just north of 100,000 lines of code.
But it was in the area of scaling that Coupa was ambiguous about the benefits of Rails. A judgement on how Ruby scales in the enterprise was complex and really couldn’t be delivered with any concision. Although Coupa loads tend to come from a lot of data crunching by a few power users rather than a surge of activity by a vast number of users.
And it is scaling that a lot of firms, even Ruby champions such as Twitter, found difficult. And now is has to contend with a resurgent Java. In 2010 Twitter rebuilt its architecture using Java. Ruby simply couldn’t scale as well. Twitter found it a real struggle to manage global traffic surges and stop the whole operation from falling over.
Java is everywhere again, the way it was in the late 1990’s. Bob Lee, Chief Technology Officer of Square is the most vocal proselytiser of this neo-Java movement. For him there is no other competitor that can touch Java. Square is a credit card processing service and has some heavy duty performance cycles to support. According to Wired “it processes $15 billion a year in credit and debit card transactions via mobile phones and tablets”.
The Java code runs on the Java Virtual Machine and it’s the JVM that makes it exceptionally high performing. But today it is incredibly versatile as well as fast, allowing engineers to run all sorts of frameworks including the newcomer Scala that utilises functional programming that hitherto was found only in computer science faculties in the academic world. Twitter now use Scala for their backend services.
Ruby is fighting on another front as well. It is competing with new kids on the block Node.js. Groupon and LinkedIn have made the migration to Node. In Groupon, the talk is of replacing those parts of the infrastructure that still use rails with Java. The twin drivers in this migration is that both companies felt that Node.js offered better performance and productivity over Ruby.
(Click Infographic to enlarge)
The coding world is unsentimental and it’s even more sentimental when IPOs worth billions and share prices worth tens of billions are involved. If a new technology like Node and a reinvigorated one like Java can out perform Ruby then it’s “no brainer”. But of course the ruby coloured star’s waning is just seasonal, when Ruby was young the tech world wrote of Java and no-one thought that JS could surplant a serverside technology.