The Rises and Falls of Ruby on Rails and AngularJS
Ruby on Rail is the best web framework, sadly, the use of Ruby on Rails was ruined by the failed AngularJS
Both AngularJS and Ruby on Rails (RoR) are popular web frameworks.
AngularJS v1.0 was released in May 2011.
Current Status: 😰 deprecated.
Ruby on Rails v1.0 was released in December 2005.
Current Status: 😐 Still actively developed and maintained, while less and less percentage of apps use Ruby on Rails, compared to 10 years ago.
Table of Contents
· The Rise of Ruby on Rails
· The Rise of AngularJS makes the fall of Ruby on Rails
· One Common False Blame against Ruby on Rails
· Fall of AngularJS and the damage has been done
· The evil cycle of JavaScript framework happened in test automation too.
The Rise of Ruby on Rails
According to Fortune magazine, Ruby on Rails engineers were one of the top 5 jobs in Silicon Valley in 2013.
Ruby on Rails framework was extracted from a mature product: BaseCamp, which is still doing strongly. The framework reflects the characters of its creator, David Heinemeier Hansson (DHH), and also Ruby’s Creator: Yukihiro Matsumoto (Matz). You rarely hear any marketing on BaseCamp, Ruby, or Rails. These two geniuses are focusing on technical stuff.
From DHH’s point of view, he is using Ruby on Rails for his company’s product: BaseCamp. He is kind enough to offer Rails independently, free and open-source. We all know now that the success of Twitter made a big name for Ruby on Rails. Did you hear Matz or DHH use that publicity to promote Ruby or Rails? None or little, they are just super programmers. The world needs geniuses like them.
While I am no way comparable to DHH, I am kind of getting that too. My tool TestWise and BuildWise got some commercial attentions, I declined most demanding requests. For me, using TestWise and BuildWise every day is already quite satisfying. While I am not against marketing, I found that distracting.
So, commercially, there was a vacuum. Some web frameworks were trying to clone Ruby on Rails, such as Microsoft .NET MVC2 (the project structure is almost identical to Rails in one version), Django (Python), Grails (Groove), …, etc. None of them really took off. The reason: the language was not good (compared to Ruby), and that’s why DDH credited Ruby in his framework.
The Rise of AngularJS makes the fall of Ruby on Rails
Around 2011, the majority of programmers were doing Java or C#, which dominated web development for more than a decade. This means many managers and tech leads were more comfortable with that tech stack (compiled languages). These people (a lot of them) feared the movement to Dynamic Language (such as Facebook’s PHP and Twitter’s Ruby), and often they are decision-makers.
Some readers might remember Google’s App infrastructure offering (in Java), I had a look, and it was quite complicated. It failed, quite unusual for Google who is winning almost in every field. Google invested in Java tech stack heavily (just like old IBM), so naturally, intentionally or unintentionally, Google (and many other companies) need something to stop the rising trend of Ruby.
However, Java somehow started losing momentum to Ruby in web development because of Rails between 2008–2013. Many top Java programmers, including Dave Thomas, Andy Hunt and Martin Fowler, have moved to work in Ruby. A special mention of this book: “From Java to Ruby — Things Every Manager Should Know” by Bruce Tate, a well-known Java Guru.
Given the answer cannot be Java or C#, there are a massive number of Java/C# programmers who fear being replaced. Some of them learned Ruby, but a lot more didn’t want to change as they have been long mocking dynamic languages. Can you imagine the fear of a senior Java programmer (with 10 years of experience)? They might need to compete with a new graduate to work on a Ruby on Rails project.
AngularJS happened to fill the need. Most web programmers have used JavaScript to some degree. The syntax and, more importantly, the name is similar to Java. So, mentally, easy for Java programmers to accept. After all, their previous Java experience might still be counted. AngularJS was an almost instant success (now we look back, there are really no technical reasons for that), so don’t underestimate the power of marketing (and Google).
I had a try with the first two versions of AngularJS, not good at all. Upgrading v1 to V2 was quite a bit of work. Anyway, it seemed good enough for many Java/C# programmers, therefore, web development with JavaScript became the trend, sadly.
I worked on a few AngularJS/EmberJS and later React projects as a test automation engineer. I can honestly say, those JS frameworks are bad, the developer’s productivity was too low. I did experiments on three ~4-developer projects. I implemented the team’s 3-month user stories between 3 to 5 days (I worked on weekends), using Ruby on Rails. Yes, you heard me right, my 1 day = ~4 JS developers’ one month work (at three different companies).
Some might think I was bragging, or took a shortcut. Oh well, be reminded that I am a real test automation engineer. When I said I “implemented all the user stories”, that means passing all automated End-to-End tests. But astute readers may point out, because you already had automated tests and understood the business logic, that’s a not fair comparison. Yes, I agree. Still, if you believed my story (by the way, my products are there, real), you cannot deny I am highly productive using Ruby on Rails.
Anyway, that’s also the major reason to give me the confidence to develop ClinicWise, SiteWise, SupportWise and WhenWise in my spare time. If I was only 10X productive compared to a typical software engineer on the market, there is no competitive edge against other software companies.
So, why didn’t Java/C# programmer change? A common excuse those Java/C # programmers used was “Twitter moved away from Ruby”. How silly? (see below)
One Common False Blame against Ruby on Rails
Twitter was created in Ruby on Rails (early 2006) and later switched to Scala. Many people used this as an excuse to reject Ruby or Rails, saying Ruby was slow and not scalable. This is totally wrong.
The fact: The user interface aspects of Twitter continued to run Ruby on Rails until 2011, when it was replaced. (Wikipedia).
Twitter has been running on the Ruby platform for over 5 years.
Accept this fact.Few apps can reach the scale of Twitter.
In other words, even if those people’s complaint about Ruby was correct (which is not, I will show you solid proof shortly), Ruby on Rails is more than suitable for 99.99+% apps.Many large websites are running Ruby on Rails just fine.
Such as Github, Airbnb, Shopify and BaseCamp. GitHub, in particular, requires extremely high scalability and performance, don’t you agree?Ruby’s performance has improved a lot.
Ruby v2 was a big improvement already. While Ruby 3 is not 3 times further faster as promised, it is better. Take my free test automation practice site as an example, which is hosted on a $6/month cloud server, along with a couple of other my demo apps.
“The original author of Rails, David Heinemeier Hansson, criticized Twitter, saying that their problems scaling were the consequences of their own poor architectural decisions and not the fault of Rails. According to Hansson, blaming Rails for their troubles while making no contributions to the framework is ungrateful and unjust.”
IMO, DDH’s criticism of Twitter's ungratefulness was justifiable. Twitter’s founders became billionaires, an important reason was Ruby and Rails (both). How much did they give back to the Ruby and Rails communities? None or little. In 2018, I received 2nd prize at the 10th Ruby Award Ceremony, which also included the Ruby committee's annual meeting. Its annual funding was tiny, for memory, under $600,000.
People might ask why these Ruby-powered unicorn companies (startups over US$ 1 billion) are so ungrateful? High productivity of Ruby on Rails. Twitter and Airbnb were created by two or three programmers using Ruby on Rails. They fear some other intelligent people find out that too, they are happy seeing others doing Java, AngularJS or React.
Middle management, except wise ones, generally and unintentionally welcomes using low-productive language and frameworks:
Hire more staff
in a company, and managing more people = more power.A slow pace can justify more meetings
I remember reading a post by Rails Envy (the creator of the funny video below): they do 1.5-day sprints. For my own app development (RoR), I did little planning, but I usually got quite a lot done in one day, and push the build to production daily after passing automated End-to-End regression testing in the BuildWise CT server.
Can you imagine your current team dealing with 1.5-day sprints? If so, Spending one hour on estimating user story points becomes apparently silly, isn’t it?
One Business Analyst colleague, after seeing my Ruby test scripts, told me: in her previous company, the new CIO decided to switch Ruby to Java, a few programmers cried. I fully understand that. About a year later, this promising company was acquired. During that period, one new competitor arised, that was Airbnb, coded in Ruby on Rails.
The fall of AngularJS and the damage has been done
AngularJS is dead (or dying). Now the hype of web framework is React, which is not good either. The best mature web framework is still Ruby on Rails. However, the damage has been done.
As an experienced engineer knows, the best does not always win the market. The creators of Ruby and Rails (Matz and DHH) are just the best programmers of our generation, they don’t do or even like marketing. I have watched a few DHH’s interviews, his comments were just so direct and right. Some might find it hard to accept.
For example, Jason Fried, co-founder of 37signals (with DHH), in this Ted Talk,
He said: “So meetings and managers are two major problems in businesses today, especially at offices” (11"), “Just cancel the next meeting. I didn’t mean move it; I mean just erase it from memory, it’s gone. And you’ll find out that everything will be just fine.” (14")
Can you imagine what a CIO, vice-president, director, project manager, and architect (who spent most other work time in meetings) think? The evidence Jason quoted is solid (with 186K likes and their Rework books are well received, best sellers). So, the natural reaction is to distant DHH’s influence, therefore, Ruby on Rails.
The evil cycle of JavaScript framework happened in test automation too.
There are a lot of Node.js-based web frameworks, before and after AngularJS’ failure. Human beings may acknowledge/reflect a small failure, but facing a massive failure of the №1 web framework ‘AngularJS’, many pretended nothing happened and just moved to another JS framework.
The same virus propagated to test automation too. I have witnessed cycling through many failed JS test automation frameworks in a relatively short period:
PhantomJS → WebDriverIO → Protractor →Test Cafe / Puppeteer → Cypress → Playwright.
Note: the Protractor, designed by the same group of people behind AngularJS, has been deprecated.
As a comparison, I have been using raw Selenium WebDriver + RSpec successfully in a number of software projects, in the same way since 2011. Also, I have developed several successful web apps, such as ClinicWise, SiteWise, WhenWise and the upcoming TestWisely, in Ruby on Rails.
If you enjoy reading stories like this and want to support me as a writer, consider signing up to become a Medium member. It’s $5 a month, giving you unlimited access to stories on Medium. If you sign up using my link, I’ll earn a small commission.
Related reading: