Live data from Hacker News

Rails has won: The Elephant in the Room

akitaonrails.com

161–170 of 213 posts

Re: Rails has won: The Elephant in the Room

#162

Rails isn't the fastest or the smartest framework. It has weird choices, confusing aspects and some downright terrible defaults, but for me at least, it is the best framework and it has been for years for one simple reason: DOCUMENTATION! Every few years or so, a bunch of these articles come out shouting from the roof tops, "Rails is dead!" and "Long live Rails!" They often like to praise some new framework, like Han…

Elixir and Phoenix is what you're looking for. Most of the goodness of Rails for productivity, without the long term bad decisions that come with it to force eventual rewrites when the funding comes. There's a reason Rails core guys have put so much time into it. It gets every...single...dang...decision...right. I may never use another language unless forced because it's what I've spent years trying to find.

I really love Elixir and Phoenix and see myself using them heavily in the future, I just think you are completely not fair to Rails.

Re: Rails has won: The Elephant in the Room

#163
Rails was most influential in Rails v1 and v2, and after that it pretty much stagnated. In spite of that, millions of dollars have been spent upgrading Rails apps through subsequent versions, millions spent on developer training, etc.

Sinatra picked up the REST torch from Rails (and from Camping) and sparked a significant change in how web apps are built and a cultural shift from monolithic frameworks to micro-frameworks.

Node and Flask picked up from there, and gathered steam because both the Python and Node dependency management systems are less broken than Rubygems, allowing more practical use of smaller, orthogonal modules.

Now Elm and React are focused on improving the reliability and reducing the incidental complexity of web applications.

Aside from the occasional PR stunt rant from 37 Signals, Rails does not really have a thought leadership role in the development community anymore, aside from a loyal following of career rails programmers, who likely adopted Rails after v3 and would have been just as happy with nearly any monolithic framework and authoritative pundit.

None of this is good or bad. Who knows what the future has in store. Rails pre v3 inspired a lot of the thinking that came after, but has not really embraced any of the ideas that emerged subsequently.

I think the best analogy is Windows. It's a cash cow, it's not going to change quickly, and many people consider it the only sensible tool for the job.

Re: Rails has won: The Elephant in the Room

#164

Earlier quoted context omitted.

I don't know what you mean by "service objects", but my point is that ActiveRecord requires you to have a line to the database in order to actually populate a database. This is really shit for a SOA; you should not require a connection to the user database to be able to make heads or tails of an object from your authn/authz service. It is so completely unacceptable that I consider it completely disqualifying (to say…

Oh, so you're talking about SOA / "microservices" and Claims-Based Identity (or rather, Claims-Based Identity is what you should be using). Well, an ORM is totally the wrong way to go about expressing user identities in a distributed system. As it were I wrote the AuthN/AuthZ library Square uses to solve this problem: https://github.com/square/rails-auth The objects we build for representing user identities are POROs…

You're right in that claims-based identity is the better approach; users was not the best example, but I wrote that post more hastily than I should have. =) But any distributed service with single-source-of-truth ownership of a domain object is going to be totally hosed by ActiveRecord; to handle it without every service having a database connection to every other service's datastore you end up with something like a conversion step from Magic Model Object to a PORO, and that sucks wind.

(In my own case, I have a service architecture because I literally have to; I need to run services in multiple AWS regions. It would be nice to be able to not care and fart everything into a single monolithic application, but them's the breaks. I tend to think that almost every sufficiently complex or sufficiently scaled application ends up in this state, too.)

With Virtus/rom-model (or I guess the newer dry-types, though I haven't used it), I don't, because my--versioned, because my APIs already require compatibility--model objects are aware of their own contents, and I can trivially marshal objects over the wire. (I also don't have to go look at the database schema to know what my object is. Big plus.)

Re: Rails has won: The Elephant in the Room

#165
post #158

This article is a superb example of bad writing, of bad thinking. I have no skin in the Ruby/Rails game. I'm not a web developer. But I'm interested in the fates of languages and the merits of major approaches that define many jobs and decide the employability of millions, so I read it. The problem is: what in the world is he saying? What is his thesis, and what reason does he give us for believing his thesis? His op…

He's writing in his second (third?) language. How's your second language? Akita is a pretty smart dude. He makes a number of good points, and maybe doesn't tie them perfectly together, but it's a blog post he wrote in a day, not for Harpers. A few points from his rant: 1. If you don't drink the kool aid, you'll be frustrated if you want something else 2. market forces: you have to follow rails, but if rails changes o…

The point @putzdown is making is not that the OP has many typos, etc., but rather that the article is incoherent babble with no structure, no point, and no evidence to support its non-point.

If Akita had written:

    Sometimes, tools and frameworks, like
    Wordpress and Rails, respectively, gain
    enough traction that their monopoly
    economies of scale keep them afloat
    long after their value sunsets.
That would have sufficed.

Re: Rails has won: The Elephant in the Room

#166
post #155

Earlier quoted context omitted.

I don't know what you mean by "service objects", but my point is that ActiveRecord requires you to have a line to the database in order to actually populate a database. This is really shit for a SOA; you should not require a connection to the user database to be able to make heads or tails of an object from your authn/authz service. It is so completely unacceptable that I consider it completely disqualifying (to say…

For the vast majority of apps, SOA is detrimental to productivity and maintainability. For some cases it is the right choice but I don't think anyone is arguing that these are the cases for which AR was designed. Can't you recognize the usefulness of a hammer even if you need a screwdriver for your task?

When that hammer inevitably is used on screw-related tasks, I get a bit touchy. ActiveRecord in particular is one of the bigger offenders (well, Rails full-stop is one), being applied in all sorts of ways that somebody (hi) ends up having to fix, which is why I mention it.

I don't agree with regards to SOAs and either productivity or maintainability, but I also tend to work on systems that have concrete needs for scale and I also divorce it from the microservice craze (which I regard as a rather pathological case). But that's kind of off-topic.

Re: Rails has won: The Elephant in the Room

#167

Earlier quoted context omitted.

Elixir and Phoenix is what you're looking for. Most of the goodness of Rails for productivity, without the long term bad decisions that come with it to force eventual rewrites when the funding comes. There's a reason Rails core guys have put so much time into it. It gets every...single...dang...decision...right. I may never use another language unless forced because it's what I've spent years trying to find.

If you discover a hot new language/framework that solves all of your problems, then here is what you've actually learned: you didn't have any hard problems. No tool is perfect for every situation, and if you find one that is perfect for every situation that you encounter, then that says a lot more about you than about the tool.

He's right though, Elixir and Phoenix are amazing. It promises the productivity of Rails, while being blazingly fast and scalable. You'll never, ever need to rewrite your backend, even if you're handling traffic at the scale of Whatsapp.

I would be hard-pressed to find a case where you'd want to write your web or mobile backend in anything else. So yeah, I'd claim that it's perfect for every web or mobile backend.

Also, no framework is ever going to solve all of your "hard problems", and he didn't claim that at all. It's simply a much better base than Rails.

Re: Rails has won: The Elephant in the Room

#168
"Basecamp-like apps are not too difficult to make, at least in terms of architecture. You don't need fancy super performant languages with super duper highly concurrent and parallel primitives. Also a reality is that 80% of the web applications are Basecamp-like (disclosure: my feelings for years of experience in consulting)."

Someone once wrote something like, "An engineer is a person who can do for $1.50 what any damn fool can do for $5.00."

I admit I don't actually have much experience with Rails itself; we had a couple of Rails apps that, after a couple of months of painful deployment and uptime teething, we moved to JRuby running on the same architecture as the rest of our apps. Then, after a couple of years of deferred maintenance and no updates (and a long list of security vulnerabilities) we rewrote them as plain, no framework, no ORM, Java and Javascript.

But this quote rubs me the wrong way. Building small to medium web apps is what we do. A lot. We ought to be able to build them cheaply and quickly. But we also ought to be able to build them to be efficient and to not waste resources unnecessarily.

In my experience, Rails succeeded because it's easy to go from nothing to a demoable proof of concept. And the Rails environment succeeded because it's possible to teach someone up from nothing to building a pretty application in six weeks.

So why are we still fascinated with a tool that makes something easy that wasn't hard to begin with? That makes the first 10% trivial while leaving the other 90% alone, if not making it harder? That is optimized for the wrong thing?

And it soaks up resources like crazy?

Re: Rails has won: The Elephant in the Room

#169
post #142

I recall a lot of articles like this about J2EE. And then a lot like this about MSFT technologies. There was an essay pg wrote where he said that Microsoft was Dead ( http://www.paulgraham.com/microsoft.html ). He didn’t mean dead as in “Dead," he meant dead as in “Nobody is afraid of them any more,” and the generalization of that is that it was no longer relevant. I think Rails is there. I think Rails is dead. Obvio…

“A new perspective is worth 80 points of IQ.” That's not how IQ works. It's not additive.

Well, IQ isn't really a thing, so...

Re: Rails has won: The Elephant in the Room

#170
post #152

Earlier quoted context omitted.

Elixir and Phoenix is what you're looking for. Most of the goodness of Rails for productivity, without the long term bad decisions that come with it to force eventual rewrites when the funding comes. There's a reason Rails core guys have put so much time into it. It gets every...single...dang...decision...right. I may never use another language unless forced because it's what I've spent years trying to find.

Why does someone come to promote Elixir and Phoenix in every Ruby/Rails article? The first times was nice to see someone showing an alternative, now is almost like SPAM.

It's a religion.

More seriously, the community just needs to be a lot bigger before it's on par with the Ruby ecosystem. For example, there's currently no Elixir library that will inline CSS in emails before sending.

Post reply on HN