Hacker News new | ask | show | jobs
by hugacow 5368 days ago
Rails 3.x jumped the shark. It is getting too complicated for anyone new to come on easily. This is the reason that Scala, Clojure, Haskell, etc. will fail, too- complexity. I'm not a PhP guy, but it isn't hard to see why it is still wildly popular. Make it easy enough, and fun to use, and it will take hold.

So while he may make money on Rails geeks that continue on and with those that want to learn, there are fewer that are coming on and will come on now then there were.

If you like Rails, listen to Ryan. I've been doing RoR a while and really, really appreciate the Railscasts (and the Asciicasts of his Railscasts- thanks Eifion!). But if you are looking for a long-term framework to stand by, keep looking.

5 comments

From DHH: "Here's the Rails gospel: Promote good ideas and technologies. See Ajax, REST, Atom, testing. Rails is a curated set of tech choices."

I think Rails 3.x continues to live up to that gospel. You're right that Rails 3 is more complicated than Rails 2 (although it is also much cleaner than Rails 2), which was more complicated than Rails 1. However, the world of web development is also steadily more complicated. There was a time when knowing how to create a webpage with CSS put you at the forefront of web technology. That time is long gone.

Developers using many major frameworks/languages don't need to quote a single or even a set of "gods" of the framework/language to back up their point. This is one of the problems in Rails, imo. Everything is still about following celebrities like sheep. That is a bad road, my friend. I would much rather live in the midst of a thriving city or within a growing town that had promise than within a hippie cult commune (regardless of its size or the quality of its food or company). Think for yourself. What would you like to use, and why?
At least internally Rails 3 is a lot less crufty and hackish than Rails 2. If you ever tried writing your own plugins and such to deal with certain internals there is a lot to appreciate about Rails 3.

From a general use perspective, Rails has always been designed with a focus on intuitiveness and trying to eschew unnecessary configuration. Whether it succeeds on both fronts is a matter of opinion, but considering the types of configuration options it provides I think the team has done a pretty good job.

Rails is a pre-built web app architecture. Of course it is always going to be quicker and have less of a learning curve to just throw together your own simple app architecture from scratch. But if the app you're building isn't trivial, in most cases it's going to save you a lot of time (in not reinventing the wheel or getting caught in common pitfalls) to go with the prebuilt time-tested community-supported architecture.

I wouldn't think Rails compares too poorly to the PHP MVC frameworks. Sure if you're building just a simple sort of website with maybe a few forms go with framework-free PHP, but for more complex but somewhat standard web apps if you forgo the framework (for Ruby, PHP, etc.) it is usually a mistake.

I jumped straight in at rails 3 without any real issues and I'm a relatively inexperienced developer. There's a wealth of fantastic resources out their for learning Rails 3 of which Railscasts is only a small part. Contrast that to Django (which I learned before Rails) and all the books are now over two years old and only cover Django 1.1 at the latest.
What web development frameworks would you recommend then if everything from RoR to Scala is too complex to survive the test of time?
If you want something simple then Sinatra, Flask, or Perl Dancer
I think at any point in time, the answer is the one that is a combination of the following (1) it makes the most sense to you, (2) it is maintainable/it is widely used (or has the potential to be, if you are willing to take the risk of something becoming quickly obsolete and impractical to maintain or impossible to find resources that will work on it), (3) it is simple, (4) it is flexible, and (5) it is potentially scalible.

There are a number of frameworks that meet those requirements now, including Rails. My point was that Rails has a real problem now in that it is a framework that fewer want to spend the time to learn, in my opinion and the opinion of others that make their living writing Rails apps. I see very smart people and people I work with (not necessarily, but sometimes mutually exclusive ;) ) promoting technology these days that doesn't fit the requirements I stated above for a framework/language/tool that will serve the test of time. That bothers me.

If you are really looking for a suggestion, I say go to the following URL and start comparing frameworks. This will at least help give some indication of usage. Then go to the forums, mailing lists, etc. and see whether things are getting more or less active over time: http://www.indeed.com/jobtrends

Haskell must be on the slow road to failure. Maybe in another 20 years it will be gone for good. :-)