6 ms·
In the year 2013 it is difficult to remember why Rails was such an explosive breath of fresh air, back when it burst onto the mainstage in 2004/2005. The essay
by lkrubner 14y ago
In the year 2013 it is difficult to remember why Rails was such an explosive breath of fresh air, back when it burst onto the mainstage in 2004/2005. The essay that I think best captured the switch in popularity, from Java (and EJBs and Struts, etc) to Rails, was "The departure of the hyper-enthusiasts" by Bruce Eckel, written in December of 2005. He wrote:
"One of the basic tenets of the Python language has been that code should be simple and clear to express and to read, and Ruby has followed this idea, although not as far as Python has because of the inherited Perlisms. But for someone who has invested Herculean effort to use EJBs just to baby-sit a database, Rails must seem like the essence of simplicity. The understandable reaction for such a person is that everything they did in Java was a waste of time, and that Ruby is the one true path."
http://www.artima.com/weblogs/viewpost.jsp?thread=141312 http://www.artima.com/weblogs/viewpost.jsp?thread=141312
- adventureloop 14y agoI know it is not the mode to comment to mention your own up vote. Rails might have deteriorated in ease of use, but I cannot imagine it being worse than Java EE was in 2004. Modern Java EE is a world of pain, even simple apps are difficult to build. The entire front end stack is antisocial, difficult to extend and anachronistic. I don't think anyone working with a modern java web stack could read this post about rails 'being like java' without a dark chuckle.
- lkrubner 14y agoI think the point is, other systems have now emerged that can reasonably claim to represent the cutting edge of simplicity and ease. Rails held that distinction for several years, it was the reference point people used to criticize or praise other systems. But Rails is no longer the clear leader in ease of use or sophistication of 3rd party libraries. In response to Rails, lots of new languages and frameworks emerged, all of which offer a lot of new ideas about what the cutting edge is in 2013.
- aantix 14y agoCurious, what other web dev frameworks offer a unified stack (ORM, deployment, dependency management, testing, project structuring)?
- Thieum22 14y agoASP.NET MVC + Entity Framework + NuGet could be a candidate. At least it's going in this direction.
- taligent 14y agoPlay and Grails are two on the Java side.
- jshen 14y agoIt's been a while since I looked at grails, but it was clearly worse when I looked. Some examples, rendering an action as json, XML, or HTML. Using mongo. Etc.
- programminggeek 14y agoOffering all of those things is nice, but tightly coupling them all together is where Rails goes wrong many/much of the time.
- jshen 14y agoMany of them aren't tightly coupled. In fact, I'd say rails is better on this front than anything comparable. Is it easier to use Mongo with Rails or Django? What about couchbase? Rails makes it very easy to make an ORM work well with rails and to replace ActiveRecord with it. Better yet, what framework do you believe offers all of these things and does a significantly better job at decoupling than rails?
- douglasisshiny 14y agoI don't doubt that this is the case, but can you mention some of the language / frameworks which have done this? (I'm not being critical; I'm really just curious and would like to learn about different frameworks).
- jules 14y agoRails is now like Java EE because it is no longer better than the competition. It's not that Rails got worse. Perhaps in simplicity it did get worse a bit, but overall Rails now is much better than Rails then. The thing is that the competition got a lot better too. The baseline changed. I don't think the thing that will be to Rails as Rails was to Java EE exists yet though. The competition has merely caught up, perhaps a little ahead on some fronts and a little behind on others. But there is nothing that is clearly much much better. Things like Meteor and Opa are a step in the right direction, but they don't go far enough (yet). Does anybody remember this video: https://www.youtube.com/watch?v=Gzj723LkRJY https://www.youtube.com/watch?v=Gzj723LkRJY This is not the original Rails video, it's the second one I think, but they're fairly similar (couldn't find the original). Back then when I saw the first Rails video I remember finding it amazing. Now it's just boring.
- jshen 14y agoI have yet to see any competition that is better. What do you think is better?
- jules 14y agoSurely you don't think that Rails is better than everything else in every single respect? There are plenty of frameworks that are simpler (Flask/Sinatra), faster (Play, etc.), support lightweight concurrency better (node.js based, Play too, etc.), have much better IDE support (ASP.NET MVC), support client/server partitioning (Meteor/Opa), and so forth.
- jshen 14y agoWhat you just said is very different from the first sentence of the comment I replied to. Let me repeat it, "Rails ... is no longer better than the competition." I think rails is better than the competition if my goal is to make fairly standard websites. It would be a rare exception where I think something else is more suitable.
- 14y ago
- currywurst 14y agoHave you tried Java EE 6 ? JAX-RS in particular is a splendidly designed api for RESTful services. And then you can make single page apps instead of JSF. This method is even going have ide support in Netbeans 7.3 with wizard-driven Backbone/Angular app generation.
- adventureloop 14y agoThe most painful component of Java EE development for me is definitely the JSF side of things. Without building anything substantial with JAX-RX I cant really comment. REST and a rich frontend, JS based would be my choice. The sad truth is that I live in a world where usable is beaten out by sellable.
- mbell 14y agoJAX-RS is really nice for building APIs and I actually prefer the way it works to Sinatra, especially if using it with Groovy. But, this isn't Sinatra vs EE6, its Rails vs EE6, so its not a proper comparison. To compare with Rails you've got to look at other parts of EE6: JSF + CDI + JPA, which is an awful mess. JSF by itself is enough to kill its usability for many modern applications, the amount of state JSF carries around is ridiculous.
- markokocic 14y agoThe article said Java, not JEE. In Java land, the choice is much broader than JSF or JPA. The main problem that people bashing Java had was always that it offered too many choices. Ruby had Rails while Java had JSF, Struts, Struts 2, Tapestry, Wicket, Play. Rails had ActiveRecord, while Java had JDBC, Hibernate, MyBatis, OJB, EJB 1/2/3, JPA.
- tmo9d 14y agoAh, watch out for JSF, it's a dangerous place. JPA on the other hand is surprisingly good these days try Spring 3 Oliver Gierke has done good things.
- mbell 14y ago
- jgjgcghjhhbfv 14y agoYou have to be an idiot if you actually bought the crap about EJBs. The first time I heard about them I said "What is this bulls*t" and swore never to touch it. It is one of those sins that you hope never to repeat again. I continued writing Java server code and never used that. Everyboy I knew thought the same thing. And yet I'm still able to progrAm in Java.
- fusiongyro 14y agoThe thing that struck me the most at the time was scaffolding. In the original Rails demo they essentially said, "make me a todo list" and poof, there it was. All you had to do was customize two snippets. It really was amazing. By Rails 2, they were already saying you shouldn't be using scaffolding. I had sort of realized that scaffolding "wouldn't scale," to misuse the expression; by your second or third app you usually didn't bother with it, instead generating a migration and a model and doing the rest by hand. I wasn't using Java prior to Rails, but I am using Java now and I would say the essentially disparity between the two at the outset was simply maintenance. Rails didn't have a past to worry about back then. My impression is that it still does a lousy job of handling upgrades—though at least with bundler et. al. they have finally achieved a semblance of stability. I suppose I should be able to check out code written 9 months ago and arrive at a working Rails app. There was a time during Rails 1 and 2 when you experienced real fear that running "gem install" might hose something, or that on a new machine the gems you needed might not even be "out there" on the internet to be installed. Java still goes further on these fronts, and probably always will, since "corporate" technologies will always be about retaining as much of the investment as possible.