If you doubt about choosing technology for your startup, you probably heard about Ruby on Rails (ROR) framework. Everyone related to startups was talking about it all the past decade. I consistently was fronting with it reading non-technical books like Hatching Twitter: A True Story of Money, Power, Friendship, and Betrayal (as you likely know Twitter originally was built with Ruby on Rails) or Deep Work: Rules for Focused Success in a Distracted World (there are some parts dedicated to the efficiency of David Heinemeier Hansson, creator of Ruby on Rails). Also, I remember an IT-conference from 5 years ago where the speaker said, 'Everyone is going crazy about Ruby on Rails here in Silicon Valley.'
So, 5 years passed from that conference, 10 years from I started learning it, and almost 15 years since Ruby on Rails was invented. I'll not dig into the history of the framework but focus on actual usage.
The main reason to use ROR nowadays is its ability to build web applications and APIs really fast. Also, it allows you to change and pivot your project in a pretty fast and cost-effective way. I've never met a project which was never changed during the development stage. We live in dynamic and active times. The only option for a 'static' way is development for space projects, some medicine software for hardware, etc., something that requires a predictive approach and waterfall methodology.
Actually, nothing changed for the past years. There are many new frameworks and trendy solutions, but nothing has to replace Ruby on Rails in this area. Maybe the Laravel framework, but it looks like a compromise between impressive Rails architecture and the number of available PHP developers in the market.
Let's check
GitHub's rating of languages for 2020 and select TOP-10. Github is the most popular platform for code storage, sharing, and collaborating. It is an excellent way to understand the popularity of technologies.
- JavaScript 18.703% (-1.406%)
- Python 16.238% (-1.654%)
- Java 10.938% (+0.538%)
- Go 9.005% (+0.978%)
- C++ 7.423% (+0.040%)
- Ruby 6.812% (+0.342%)
- TypeScript 6.769% (+1.522%)
- PHP 5.127% (-0.458%)
- C# 3.835% (+0.141%)
- C 3.181% (-0.203%)
First of all, GitHub themself written with Ruby on Rails. But let's check it one-by-one.
Is JavaScript (JS) a good one language? For sure. All the programming languages in this list are good; otherwise, they didn't exist and were not so popular. Along with the TypeScript, this is a language for the Frontend part of your web-application. Any interactive, rich client-side frameworks like ReactJS, Angular, VueJS are based on JavaScript. Because it's pretty popular and has a low entry-level (many frontend guys start with HTML/CSS and add JS after), there are many ways to adapt it for other cases. Cross-platform apps for iOS, Android, macOS, Windows (Ionic, Electron, React Native) made with JavaScript. Backend frameworks, like NodeJS, use JavaScript too.
So, it's really wide-used, and many developers use it. It's faster than ruby but much slower in project development speed in comparison to ruby. Ruby on Rails is a high-level framework created to make project development fast. NodeJS is useful for creating fast projects.
I like to repeat: 'Make your project popular first and decide how to improve the speed after.' Twitter is a great example. Initially built with Ruby on Rails, it doesn't use RoR as a core technology anymore.
Do you need faster solutions, e.g., processing millions of events per hour? Don't use Ruby on Rails. Use Go lang! Do you feel your Ruby on Rails app gets bottlenecks in performance? Separate a microservice with Go. It will be much slower in development speed but resolve a specific issue for your project.
If you already know that you have to handle high-load data processing, take a look at Ruby on Rails as a core for SaaS functionality. It's possible to build SaaS part with user registration, billing, management of app with RoR (Ruby on Rails is a top-notch technology for SaaS), and create a high-load piece with Amazon Lambda + Amazon GateWay, or mentioned Go, or NodeJS.
Python is the best language for Machine Learning and Artificial intelligence solutions. There is also a popular framework Django based on Python, but it has a much smaller community and libraries for the Web. This is a similar case to JavaScript. Someone knows Python and started to use it for the Web.
С++ and C are not for the Web. They are too low-level languages and used to create other programming languages (e.g., ruby written in C) or firmware.
PHP... no. It was the right choice 20 years ago and still the right choice for your WordPress website. There are still many PHP developers, but I heard hundreds of cases of devs migration from PHP to Ruby/JS/Go/Python, etc., but none switched to PHP. Just use it to support and maintain current solutions. Most websites on the Web still work with PHP. I mentioned Laravel, but it doesn't have such a good community and ready solutions. Just notice, Ruby (6.812%) is almost entirely represented with Ruby on Rails. Laravel is only by a small percentage of active PHP-developers (5.127%).
Java is excellent for your next financial project, like banking, money transfer service. It has many related libraries. You can decide to use Groovy on Grails with Java, influenced by Ruby on Rails architecture.
And the last option is C# with likely .NET framework. A good one for large enterprise projects. If you build a startup with up to a few millions of people, go with Rails. It's all about startups. If you have millions to build enterprise solutions, go with .NET.
As you see, each language is perfect for each specific case.
Choose RoR if you'd like to build a startup, SaaS product, social platform, API for a logistic app, e-commerce solutions (Shopify is written in Ruby on Rails), a marketplace, CRM, or another custom-made solution for your business.
Fast in development, perfect for Rapid application development, loved by developers and community, has many ready solutions and libraries for the Web (aka 'gems').
We still in passion with Ruby on Rails.