DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

The Rails Ecosystem is Healthier than Ever

This is the first post in a new "flare tag" we're trying out: #healthydebate.

This tag is a place to create posts with the expectation of a debate. If you enjoy debating software topics or watching in on others debate, you might like this tag. I also hope it will encourage more disagreements to congregate in places where everyone has opted in with the understanding that this is a debate.

Of course, everyone must remain respectful. The code of conduct is important and always enforced throughout the whole site.

Have fun!

On to my topic: Rails is doing awesome!

The ecosystem around Rails remains incredibly strong, and the organizations involved will push the tech forward.

This announcement got me particularly excited:

GitHub being on the bleeding edge of Rails is HUGE. Shopify has been leading the way of late, and I feel like this new involvement will push things even further ahead. Rails has done a great job of staying conceptually aligned and avoiding feature creep and complexity creep.

Whether or not you like the Rails API, the ecosystem remains strong.

Ruby is a weird choice for sprawling web frameworks, it sure seems like a toy scripting language, but things have just worked with Rails. The humans involved have pushed things forward.

Rails remains one of the best choices and is only getting stronger. Feel free to debate me on this!

Others are welcome to take on this debate on my behalf. It's a community debate. I'm not sure how much I actually care to take part in the conversation. We shall see. ๐Ÿ˜‹

Happy coding!

Latest comments (44)

Collapse
 
rhymes profile image
rhymes

Hi @ben , through this DHH tweet

I came across this recent post Upgrading GitHub from Rails 3.2 to 5.2

It might help :-)

Collapse
 
ben profile image
Ben Halpern

Thanks!

Collapse
 
alediaferia profile image
Alessandro Diaferia

I'm currently working on a company project with Rails 5.2. We're still on much older version of Rails for the majority of the main product so I can clearly appreciate the progress.
In particular I love how they managed to make Rails 5 much more modular and enabling only the things that you really intend to use keeps the resulting application much lighter to run and work on.

Collapse
 
pancy profile image
Pan Chasinga

I think to embrace Rails one needs to embrace the "manifesto". I was learning Ruby and Rails a few years back and decided to give up just because it was too magical and its convention was very "dictatorial" to me. I went straight back to Python.

As I've grown more as a developer and had a few more languages in my toolbelt, coming back to Ruby and Rails wasn't so bad. Things started to make more sense and fall into places. (Symbols make sense to me now that I've known Clojure. Lack of parentheses aren't a stranger any more now that I've known Ocaml) I think Ruby (and Rails as a derivative) is a great attempt of an expressive language that's not too mind-bending (as in many functional ones) and yet very simple and even human-friendly.

Reading up the Rails Doctrine by DHH is a pretty good way to befriend Rails. Rails is really pleasing if one can start thinking less about perfection and idealism in a tool and more about shipping.

Collapse
 
ksec profile image
ksec • Edited

This is pretty amazing. Both GitHub and Shopify are huge, billion dollar companies running on the original apps made over a decade ago. And they now both on the latest Rails, helping to push the framework forward [1]

I can't wait for y'all to see what we upstream now that we're in a position to give back and improve Rails. My keynote; Rails 6.0: Scalable by Default [2] at RailsConf was just a small portion of our plans for Rails. [3]

There are also work from Discourse on Rails performance, Ruby is getting a Method JIT. [4] and working on more pref work. TruffleRuby is close to 1.0 and it is available on all ruby manager [5]. The Open Source build is now also available on macOS as well.

There are lots more, and all of them were years in making, It took a year for Github to get to latest Rails release.

For the past few years, many have been writing off Ruby Rails, Ruby is comparatively expensive to scale ( and it still is ) , we expected other frameworks to catch up in terms of productivity, and will spell doom to Ruby Rails. Not only has such framework yet to appear, Ruby Rails continues to improve on all front.

I say the best days of Ruby Rails is yet to come.

[1] twitter.com/dhh/status/10305284762...
[2] speakerdeck.com/eileencodes/railsc...
[3] twitter.com/eileencodes/status/103...
[4] twitter.com/k0kubun/status/9601125...
[5] github.com/oracle/truffleruby/blob...

Collapse
 
ksec profile image
ksec

I still have problem understanding why no nested directories. It was a big "no" without explanation.

 
matteojoliveau profile image
Matteo Joliveau

To be fair, I do see the benefits of microservices in the right scenario.
They allow for small, independent teams to focus on simple, testable and disposable bits of a greater application and this can help reduce time-to-market and embrace continous delivery when building complex and intricated systems.

I worked on a not-quite-microservices-but-still-service-oriented project and it was fun, bits of the application can go online without worrying about the others (we used message queues to decouple them). But it surely was complex to handle and maintain compared to a monolithic application.

Collapse
 
rhymes profile image
rhymes

I always send them to speedshop.co/blog/ :D

Collapse
 
rrampage profile image
Raunak Ramakrishnan • Edited

Here are a few points regarding what makes an ecosystem healthy:

  1. Maturity - Rails is a very old framework (first version almost 10 years old) and as such, is mature. It is possible for a software to be feature-complete and just release bug fixes. The "cons" of maturity are that newer developers will feel that the technology is boring because of wide-spread acceptance in enterprise and smaller shops.

  2. Availability of libraries - It is difficult for a core framework/library to solve every single problem in a particular niche. As such, it needs a plethora of libraries(gems in case of Ruby) which depend on it and solve ancillary user needs. For example, in web development, a framework can provide routing, templates, caching but leave out ORM or DB access or authentication to other libraries. These libraries help a framework stay relevant. Rails has a plethora of gems which solve a wide variety of problems.

  3. Assumptions - A framework or library is created with some core assumptions which are heavily based on problems of that time. Rails solved a very real problem of the time of quick prototyping and easy iterative development. As times change, the pressing problems of developers change as well. An existing framework may have to reinvent itself or risk being replaced by newer technologies which solve the problem better.

  4. Inertia - A framework has to maintain a balancing act in terms of making changes. Breaking changes displease existing users while no changes lead to code smells due to old mistakes never being fixed. Add too many features and the learning curve and discoverability is affected.

Collapse
 
ben profile image
Ben Halpern

Very well-put.

Collapse
 
briankephart profile image
Brian Kephart

I mostly agree, although since I started on Rails 5 my perspective doesn't go back very far.

I'm a little concerned with the pace of adoption of HTTP/2 features. Rails just got early hints for pushing assets, despite discussions about H2 and Rails going back to at least 2014. A quick search reveals zero info about whether the Rack/Rails ecosystem supports header compression. The most popular deployment option, Heroku, doesn't support H2. This concerns a feature that reached all major browsers over three years ago.

Webpack support has been great for modern frontend tooling, though the shiny new Webpack 4 was released months ago and support via the Webpacker gem is still in prerelease.

So yeah, working with Rails is awesome, and constantly getting better. That's why these few exceptions stick out to me, because they represent little pockets of stagnation in an ecosystem that consistently makes my work better and easier. These are pretty luxurious complaints to have, all things considered.

Collapse
 
rhymes profile image
rhymes

The most popular deployment option, Heroku, doesn't support HTTP/2.

A lot of Rails apps are deployed on Heroku, I feel like if they started supporting it there would be more interest by the Rails community to go "HTTP/2 first"

Collapse
 
andy profile image
Andy Zhao (he/him) • Edited

I think a major part of Rails' popularity in US/Canada is because it started in the States. I read an interesting article once about Ruby + Rails in US vs Europe. Wish I could find it...