Hacker News new | ask | show | jobs
by jeltz 1291 days ago
Yeah, I do not even get why people hate Ruby so much. They do rarely even attack the actual weaknesses of Ruby but instead goes on about Rails specific stuff, the slow performance (a Ruby < 1.9 issue, these days it is as fast as Python if not faster) or just imagined stuff which has never been true.

Ruby is a flawed language (I especially dislike the lack of real namespaces) but the hate it gets is often not based in reality.

5 comments

I associate Ruby with a particular era of hipster web and app development, ~2007-2010. I don't know why but it's not quite attractive.

That said the serious reason I don't try it out is because I fear it would be like Python, and I don't need two Pythons in my life. If Ruby had been dominant I'd likely be using Ruby and thinking the same of Python.

    a particular era of hipster web and app 
    development, ~2007-2010. I don't know why 
    but it's not quite attractive.
That was a really fun era.

~1997-2007 was fun but it was a mess. It seemed like every project was its own bespoke "framework" and everything was a Java or PHP spaghetti monstrosity.

2007-2014 was the era when "majestic monolith" MVC frameworks with a strong emphasis on automated tests really began to coalesce. Rails led the way here, I think. It was a brief island of sanity if you ask me. MVC may not be perfect but it's a fine choice most of the time for anything CRUD.

I suppose there was kind of a "hipster" aesthetic around Ruby/Rails (Ruby devs kind of prided themselves on being quirky or whatever, as opposed to staid corporate Java drones, I guess?) but I did not find it to really be a factor.

2015-present has been a nightmare. Nearly every web application is now two apps: front and back-end. For apps with highly interactive UIs this is an obvious win but for the vast majority of web applications it has been a disaster. User-facing performance of the modern web is awful and I have never felt less productive as a developer. Every developer thinks they need to do things "like Amazon" or "like Facebook" and just.... no. The Javascript community has absolutely lost all connection with sanity and the era of the full-stack developer is over.

During that timeframe, I dismissed Ruby/Rails for similar reasons.

First of all, regardless of what everyone says regarding how "inovative" Rails was, Tcl and Python did it first, with AOLServer and Zope.

During the .com wave, I was part of a startup with a product for CMS development, that was basically inspired from AOLServer, although we did our own thing.

It supported Windows 2000/NT, Aix, HP-UX, Solaris, Linux (only for dev purposes), SQL Server (Sybase and Microsft variants), Informix, Oracle, Access (only as demo concept), and we were in the process of adding DB 2 support as well.

We went down in the .com crash, and Lisbon isn't SV, so hardly anyone heard of us, but it doesn't change the fact we were already better than Rails v1.0 in 1999.

Second, I know Python since version 1.6, so Ruby hardly brings anything other to the party than a Smalltalk inspired workflow, without the IDE experience.

Yeah it is definitely from that era 2007~ ruby though is like the friendly python. Dependency’s usually just work and it doesn’t get mad at your style - it’s very accepting and importantly IMO the stack traces are much easier to use to identify the root cause of a bug compared to python …
I do think the same thing about python. The occupy a ver similar space and I already know ruby, so I have very limited incentive to start doing stuff in python. But that doesn’t mean I dislike it, or believe it’s a bad language.
Having worked in PHP and Ruby, the parallels to the hate is obvious to me. Enough people have done enough meaningful work in both languages that any possible downside or nitpick has been discovered and voiced.

It's like when a game/band/tv show becomes popular, the more popular the more toxic the community becomes, and the louder the hate seems to be. I don't want to pull names out of hats, but pick any of the most used languages and you'll be able to find people banging on about objectively bad parts of the language, and yet they're still the most popular languages.

Admittedly, I don't really prefer Ruby over other languages, but just like PHP I wish people would stop being so dramatic over it. It's plenty good enough to get shit done, if someone likes working with it power to them.

Is Ruby that much hated?

Let’s make a very simple naive test using Google search, "I love Ruby" matches 98,400 results, while "I hate Ruby" returns 7,740 results (from my current terminal).

There is even a book named "I love Ruby" it seems.[1] Compare that to the existence of "The UNIX-HATERS Handbook".[2]

Can you be more precise about what features you miss in Ruby modules compared to "real namespaces"?

[1] https://i-love-ruby.gitlab.io/ [2] https://en.wikipedia.org/wiki/The_UNIX-HATERS_Handbook

I don't know, to me Ruby just feels like a slightly more user friendly PHP.

Vaguely similar in performance to Python and PHP (not an order of magnitude off), slower than Java and .NET (for typical web based workloads with mainstream frameworks, .e.g Rails vs Django vs Laravel vs Spring Boot vs ASP.NET), still good enough for most web projects out there.

Even Rails just seems like your average flagship framework, if not an entire platform - certainly on the heavy side, with its own quirks and opinions, but definitely a safe option for getting things done.

It's jarring to see Ruby's popularity be on the decline, though you could also say the same about PHP in many cases.

There are namespaces, there just aren't standards like Python.

And there aren't many good Ruby developers. There are too many noobs who write Ruby code that make my eyes bleed. I know, because I have to see this at work and they're supposedly "rockstar" developers. Ha! I swear most so-called "engineers": 0. don't grok software engineering, 1. weren't formally-trained in software engineering AND computer science, and 2. happily push shitty code that there will be no incentive to refactor through automated means.

If you want to enforce coding standards in Ruby, you better learn LISP / S-expressions, because that's what Rubocop uses.

There are modules, but they aren't real namespaces.