Yes. Rails has by now certainly crossed into boring software territory – arguably a [positive thing](<a href="http://mcfunley.com/choose-boring-technology" rel="nofollow">http://mcfunley.com/choose-boring-technology</a>) anyway – but it remains an excellent choice coming into 2018:<p>- Out of the box, Rails has close to unbeatable developer ergonomics, tooling, stability, and ease of use<p>- Lots of high quality, large companies use it (GitHub, Shopify, Airbnb, Square, Twitch) and have by now figured out how to scale it, often sharing and open sourcing their efforts, e.g. <a href="https://github.com/Shopify/identity_cache" rel="nofollow">https://github.com/Shopify/identity_cache</a><p>- If your product front end is simple, Turbolinks can be an excellent choice (find me a faster, more bug free product than Basecamp)<p>- If you prefer to use a more modern JavaScript solution on the front end like Ember or React, Rails API is a perfect fit<p>- The Ruby ecosystem and community are both very high quality
Absolutely. If you're building a POC or MVP it's a quick and easy way to get something off the ground. The framework will take you pretty far before you have scaling issues (long enough to know if what you're making is worth it). The community is very knowledgeable and friendly, and gems for almost everything already exist.<p>If I needed to spin up a new project and get to work right away on something I'd go with rails no question. I've yet to find another language/framework combo that works as well as a Ruby & Rails stack (Laravel and Django are good alternatives too, I'm just more experienced with Ruby). Don't think too far ahead. Premature optimization or thinking about future scaling issues if starting a new project is time that could be spent better. Rails isn't going anywhere anytime soon.
Speaking for myself, and I tend to make practical choices for what I understand now. At the moment, I am not using Rails in my day to day work, and this is largely based on my past experiences.<p>Pros:<p>- easy enough to find libraries for most things I wanna do<p>- community likes testing, as do I<p>- community seems to focus on business & web implementations, so good for those use cases<p>- lots of questions for which I want answers already answered<p>- package management<p>- deployment to PaaS/Herorku-ish platforms pretty easy for smaller teams<p>- here in San Francisco, there are lots of job opportunities for Rails developers<p>- I like Ruby, even though I am less excited about OOP these days<p>Cons:<p>- Rails is magical & opinionated, and that always annoys me<p>- Figuring out where some method is coming from in a Rails object is often a pain<p>- In Elixir I almost never need a debugger, but in Ruby I almost always do<p>- loading Rails apps can get really slow, and learning to wait for software to boot isn't a skill I like to develop<p>- I feel more pressure "to do it" right when the time "to do it right" simply doesn't exist for reasons, because trying to come back and refactor gnarly Ruby code is just harder than it is in a compiled language<p>- Ruby has to be installed on the system to which an app is deployed, and needing to think about how to pre-install Ruby or how long a Ruby install takes is a mild pain (stand alone Go binaries or Elixir releases are pretty sweet)
Ruby on Rails is a great bet for those who need to kickstart fast. When Ruby/Rails becomes a performance bottleneck you're probably already making tens of millions and have dozens of people to diversify your tech stack.<p>Core team takes care of many things like webpack, ActiveStorage, etc for you, many thanks to folks. I've been doing Ruby on Rails since 0.19 as far as I remember and it's been great ever since.<p>Not that hyped anymore but who cares about hype when you get your shit done. Also as you grow, you appreciate talent availability when it comes to Ruby/Rails.
In my opinion, yes. I recently built a recent project in Rails 5 and it was rock solid. As your JS needs evolve or you want to start from scratch with a JS framework you can even use Webpacker to introduce Vue or React into your app easily and manage dependencies with Yarn.
No.<p>Long time rails developer, but if you can green-light a project I'd highly recommend node all the way. I've found it much easier to comprehend a pure javascript stack (or even better an all-Typescript stack) due to substantially less cognitive overhead, find other people to work with (very important as your project scales), and the fact I can deploy node with a serverless implementation on Azure, GCP, and AWS makes it a home run when it comes to security and devops costs (and the need for devops in general).<p>While rails has a bunch of great features, those features (rightfully) have been copied elsewhere, e.g. Active Record, which has a fantastic javascript implementation - TypeORM.<p>Finally, when it comes to interface development, nothing in rails will get you as far as React these days, especially as the web moves mobile, and into AR/VR, which IMO present the next challenges of interface development. And like rails, nearly every question related to React/Node is answered on Stack Overflow or has a well-documented library to solve that use case.
I've yet to find anything that comes close to Rails in programmer productivity for the web. So, as long as programmer productivity is a concern, it's relevant.<p>EDIT: On the other hand, I wouldn't choose Rails for a project where the main concern is performance/scalability
I'm not Rubyist, but when I see an article about RoR it's one of these:<p>"I just started using Ruby and omg it's out-of-box everything, rapid development, monkeypatching makes everything super easy, it's like second Jesus coming."<p>and the second category is this:<p>"I am working with RoR for years, maintaining/migrating anything is super painful, because everyone is monkeypatching everything, so you cant safely touch anything."<p>Choose wisely.
From someone who doesn't use Rails day-to-day: It's still about as relevant as it used to be before, for the same reasons it was relevant then.<p>In summary: If you need to get shit done fast, it's a good bet.<p>It isn't as hyped as it used to be 5 or so years ago, and if hype cycles are relevant to you, you likely already know your answer.<p>As to whether you are asking whether learning it would make you unemployable, by no means. RoR is still going strong, at least in my country.
Yes, Rails helps developers make good upfront choices to the structuring of their application and database. The DB layer and structure is going to be a bottleneck well before the programming framework is (I think this is true in any framework). I enjoy that Rails makes it easy to do things like take care of N+1 queries, do associations correctly, etc. That isn't exclusive to Rails, but it is really good in Rails.
Yes! The Rails core is quite stable and the community continues to innovate. I've recently gotten very involved with Devise Token Auth, an open source project that helps you use Devise on apps that do auth on the client side, like those written in Vue and React. We're on the hunt for new contributors:
<a href="https://github.com/lynndylanhurley/devise_token_auth" rel="nofollow">https://github.com/lynndylanhurley/devise_token_auth</a>
Yes. I have used rails since about 0.6 and evaluated other frameworks since. Nothing comes close for me, especially for CRUD apps. For anything complicated (50+ models), things can begin to feel unwieldy but it helps to be disciplined about how you structure your code. I find trailblazer very useful in that regard.<p>I've recently started to learn vue.js and it's making JavaScript a pleasure to use alongside rails. I think my future projects will be vue + rails by default
It depends on whether or not you are on the React bandwagon. Yes Rails does work with React - but this means two different asset pipelines (Rails and React/Node).<p>If I was building a product focused stack, then I would simply do React+ Typescript. Why bother bringing in two different languages for front end and backend ?<p>Typescript is pretty awesome in itself.
Pretty sure that this Quora answer from DHH is still valid in 2018: <a href="https://www.quora.com/What-makes-Rails-a-framework-worth-learning-in-2017" rel="nofollow">https://www.quora.com/What-makes-Rails-a-framework-worth-lea...</a>
It’s so fast to spin up, deploy, and iterate on a rails app it’s insane.<p>As stated, it depends on your context and your goals, but if speed matters to you, it’s hard to say rails is not a top solution.
Wouldn't Python/Django make more sense in 2018 considering that Python could be used for data science and machine learning? I realize this is a Python vs Ruby question, but if you didn't know either Python or Ruby and were trying to pick between Django and Rails for a project, wouldn't you pick Django in 2018 due to future data science and machine learning opportunities?
The simple answer is it probably depends on what you’re doing and what you’re optimizing for.<p>I don’t know of a better way to get an MVP project up quickly. Rails at scale is probably a touch harder to manage, but that’s by no means impossible.
I'm of the opinion of using the best tool for the job. If you need an MVP fat then use Rails but if not evaluate other options. Please your need may come from what you know best.
Yes. It's still a very good framework for simple Web Apps. It's takes care of a lot of boilerplate.<p>With Rails 5, it's good for a simple API backend as well. And there are a ton of gems that can alleviate a lot of pain.<p>It's when something non trivial where Rails may not be a good choice.
If you already know Rails, yes.<p>If you are thinking about learning Rails now, probably not.<p>Yes Rails is great for MVPs, but then so are a lot of other things, like Meteor.
There’s nothing <i>wrong</i> with Rails in 2018. It’s maybe not the most forward-looking choice you could make but it’ll get you running quickly.<p>But if you have a smart team and a little bit of time for ramping up then I’d suggest Elixir+Phoenix or Node tbh.<p>Rails is good at what it’s designed to be - a one stop shop for fast to develop, kinda dirty, framework magic, webdev.<p>And there is nothing wrong with that.
Much of what you learn in Ruby and Rails is not portable to other languages. Ruby and Rails are deeply flawed and much of what you learn is dealing with those flaws. Similar to learning PHP for example (but differently flawed than PHP). Ruby is also showing its age and is lagging behind modern languages.<p>Rails is probably fine and fast and good for small projects. It is probably not good for professional large projects.