Why Ruby Still Feels Like Home After All These Years

47 points by Caio


katafrakt

I'm going to disagree on "no ceremony RuboCop". There is quite a lot of ceremony in picking and tuning cops, discussing whether new cops added in recent update should be enabled or not. StandardRB is much closer to no-ceremony approach, but there we are - you have to pick one.

Languages with linting built-in have much less ceremony and bike-shedding than Ruby.

byroot

I largely agree, but kinda wish refinements weren't the first example.

I do get why someone would like them, but it's one of these things where it's best not to know how the sausage is made. Their semantic is so tricky, that a decade after their introduction we keep finding nasty bugs with them in MRI.

e.g. just in the last two weeks:

And on the performance front they tend to make lots of optimizations harder. And the same thing is happening again now with boxes (even though the jury is still out on those).

mdr

Thank you for posting this. It mirrors my experience too in my "Returning to Rails" post[1], and although it may be confirmation bias, I'm seeing a lot more people re-discovering or appreciating the beauty of Rails code again.

I'm conscious though that there's an interesting phenomena where it's said that your tastes kinda solidify in your 20s/late teens when it comes to things like music and art and so on. I wonder how many of us first encountered Ruby during the "golden years" of Rails (you mention Rails 3 and Capistrano which more-or-less mirrors my experience) and are simply looking at it with rose-tinted (ruby-tinted ?) spectacles & are harking back to that era of our lives ?

I also was deeply immersed in Ruby "shops" and surrounded by Rails developers at that time, so it seemed like it was everywhere to me; It was interesting though to see a commenter on the lobste.rs thread[2] opining that Ruby was really only ever quite a niche language. So maybe there's that at play, too.

But then again, Ruby does still feel like home to me, and it just seems to work the way my brain works. Minimal translation, zero surprises, feels like I'm conversing with a friend rather than trying to write a formal thesis. Still haven't found anything that clicks quite like it and I don't think that's entirely down to a growing "kids these days, get off my lawn" mentality.

Whatever, I'm just happy to see it still going after all these years :) And thanks for introducing me to the "tap / new" chain, that stopped me in my tracks at how beautiful and useful that construct is! Definitely going to be making use of that...

Cheers,

-Mark

PS - I feel bad mentioning this as it's not directly related to the topic, but your AI avatar on your homepage is creeping me out :( It sets off all kinda of uncanny valley "a bot write this" vibes. Whenever I encounter one it always gives me pause to consider whether I'm conversing with a real human :/

[1]=https://www.markround.com/blog/2026/03/05/returning-to-rails-in-2026/ [2]=https://lobste.rs/s/jreqtw/returning_rails_2026

fpsvogel

Great post!

Ruby 3.4 added the it block param, which you could use instead of _1 in your example:

items.map { it.price * 1.1 }

https://rubyreferences.github.io/rubychanges/3.4.html#standalone-it-in-blocks-became-anonymous-argument

binarycleric

I loved writing Ruby but the testing overhead just became too much for me. I thought adding some kind of type safety to the language would help but when #{last_job} added Sorbet to our codebase it just killed any momentum (and fun) I had when writing code. This may be an unpopular take but the fact that something like Sorbet exists is more of a smell against Ruby than anything else. Ruby itself is a powerful and fun language but people started using it for tasks it was never designed to do and in the process they started bolting on tools to account for the languages anti-features.

Now every line felt like a total slog and I was spending far more time waiting on various built, test, lint tools than I was actually writing code. That, combined with our over-engineered build & deployment processes, made doing even basic things take ages and made me miserable in the process.

I miss a lot of the Ruby world from 2012 or so. Those feel like great times in hindsight.