I started learning Rails a week ago, one main reason is I love the way Rails and Ruby work period, when I told my classmates, that I am learning Rails they were all mocking and saying how worse it is for scalabiltiy ( like my simple CRUD app is gonna get million views, also isn't that the problem of the infrastructure ?) and then they start to preach how nodejs can handle request, why is it okay on learning Django in 2017, but not Rails.
so everyone must use nodejs like it's the thing to rule them all .
Don’t worry about it.
It’s because people have no idea what they are saying. They have no idea that nodejs is just a JavaScript runtime, they have no idea what it means to scale and they have no idea how to choose the proper tools for the job. Rails is an excellent framework for certain apps, Django is an excellent framework for certain apps, flask, Sinatra, express, snap, all great projects and all made with certain expectations of how they are going to be used.
By the time your app gets big enough that rails performance/scalability/whatever is starting to hinder profitability, you’ll be able to afford to hire an entire team of people like your classmates to solve those problems.
> and then they start to preach how nodejs can handle request
Funny thing is – I have seen Rails application that scale really well and NodeJS applications that do **not**. Since it’s more about programmers involved than a framework – it’s rarely a language that’s a problem. It’s sheer volume of IO calls, it’s how good you are at sharding and splitting your application into microservices etc, it’s also about intelligent caching. Raw performance of NodeJS, even if it was tenfold that of Rails, is still just a small fraction of building a scalable website (for some reason we don’t build websites in C and that’s even faster…).
So if someone tells you that NodeJS scales and Rails does not – they are junior level at best that never had to deal with scalability issues. And once you start doing really massive sites with databases ranging hundreds of gigabytes and traffic going into thousands/tens of thousands requests per second then you no longer even CAN do it alone, it’s a job for a whole team with devs and sysadmins together (I sure as heck do not know how to configure a SAN for instance). Also – if Rails is your real bottleneck in a specific instance (which does happen of course) – then just use C/C++ (or Rust if you are sane), write a library that does a given task for you and expose it to Rails. And here you go, performance exceeding NodeJS.
These are some of the things “web developers” say in order to sound smart. Web development is an industry with the highest number of conmen. In this industry it is common to find that the person saying framework X is better than Y or that Language X is dead has a course, a blog, a book or an app that they trying to sell. Your classmates are simply victims of such conmen, they bought the lie already, they are somebody’s customers. Learn rails, build stuff, ship stuff.
But Node is webscale! 🙂 https://www.youtube.com/watch?v=bzkRVzciAZg
That’s just because they have no idea. Shopify, GitHub, and Airbnb all use Ruby on Rails.
How much experience do they even have with actual scaling? In my experience, web development studies barely teach that kind of stuff.
I’ve seen Rails app handle huge amount of requests per second, while Node.js couldn’t. It’s all about how you set up your project as a whole, who developed it, and what kind of app it is. Rails isn’t suited for every kind of project. It would struggle with massive calculations, for example.
I worked with Rails on a previous contract for nearly 2 years.
I personally dislike the extreme convention over customization, all-or-nothing attitude.
I’m getting the feeling that when it comes to back-end projects, Rails is still holding its own, as is Java.
It’s also about… ‘one language’. It’s centralization of abilities, all eggs in one basket, etc. When you are proficient in javascript, it can change the way you think about concurrency, which we rarely explicitly deal with on the server side, even though we rely on multi-threaded servers like phusion passenger and Nginx to handle our loads.
NodeJS is not ‘better’ than rails. In fact, IMO even with all the hype and development surrounding the NodeJS community and massive industry adoption, when it comes to GTD, Rails is still the best framework. Not to mention rspec and cucumber are still the kings in BDD. Mocha tests (NodeJS’s BDD equivalent) has to deal with IO concurrency, forcing everything into callback or promise layers, and productivity suffers. Rspec + cucumber and ruby/rails is much… much better IMO.
They’re mostly confused beginners themselves parroting what many others are saying. Rails have its issues, and a lot has changed, but it’s still great to learn and you can ship a lot of things, two of my past internships had rails.
just point them to large enterprise platforms like github that use rails and tell them to shove it.
“Scaling problems get funded.”
~ some guy smarter than me talking about Rails.
It’s a tool like any other. Know your problem and know the tool.
Current application I’m working on has a few rails services written earlier this year (medium services) but the notification server (websocket and fcm) I wrote in go. Go is a bit too verbose and doesn’t have a good Orm to build large applications – unless you really, really need the performance – and rails helps me develop quickly. Pick to right tool for the job. I picked go because I didn’t need rails and would be writing raw Ruby (or node) anyway and the performance vs effort to me made sense.
As a side note, I read that the California school system is rewriting their erp system and moving from cobol (IIRC) to rails. They have one of the largest school systems in the world. Further, Shopify, GitHub, gitlab and many others use rails with no real issues.
Finally, those rails apps have to be maintained by someone.
As an Emacs user I hear that question all the time… since 1994.
Your classmates are pretentious idiots. Don’t pay attention to them.
To put this in perspective for you, it’s like a bunch of 8 year-olds on their bikes with training wheels telling you that your motorcycle will never run.
They don’t know what they’re talking about.
As an aside, I still can’t get over how much easier it is to work with migrations in rails than in Django.
There’s nothing bad about Rails, it just does not look like a perfect fit anymore. It is not capable of catching most recent trends, especially front-end ones.
Check most recent ActionCable docs, they use it with jQuery an coffee-script. Come on! Obviously it can be used with other frameworks but the level of documentation shows that it got detached from real world and lives somewhere in between. With ponies, fairies and coffee-script.
I learned Rails 10 years ago, which is when it couldn’t scale.
I’m currently on a project that gets 10k request per minute. core is RoR and we are running just fine. Nobody uses anything big without cache mechanism anyways, so I don’t really see a point to use anything more ‘scalable’
“Wow you went with the Carolla? It’s awful off-roading but whatever…”
Your classmates need to get with the times. Hating on Rails is so 2015.