I actually think this is a little unfair.<p>Yes, the number of choices in Rails has proliferated, but a new user can easily ignore these choices. I don't think the situation is at all equivalent to the Java stack (which is the only other one I can comment on).<p>To use Java, you probably want to use Maven, Spring for dependency injection, an MVC framework (Struts 2, Spring, Tapestry, etc...), an ORM framework (probably Hibernate, probably with JPA?), though there are other choices.<p>This blog lists a bunch or Rails/Ruby choices. However, it's important to keep in mind that essentially <i>all</i> of the things a newbie needs to get started with Rails are in a single, self contained framework that is (in my opinion) incredibly easy to use.<p>I had well over five years of Java experience when I took on the latest in Java-based web framework. A book on Struts 2 covered Spring, but not Maven. A book on Maven covered MVC, but used Spring's MVC. A book on Spring MVC used Ant for the build, not Maven. Ultimately, I had to spend a great deal of time researching these technologies to just get my first simple app up and running. You <i>should</i> spend some time getting to know your framework and not just rely on magic. But should you have to do this for weeks or even months before you can write a simple webapp?<p>For rails... well, there's absolutely no need to worry about JRuby, IronRuby, or Ruby Enterprise, and whatever tutorial you're doing on Rails will tell you what version of Ruby you need. You don't need to download <i>any</i> of that windows crap mentioned here. You can ignore Sinatra for the time being. Gems are utterly simple to use (try adding a Maven dependency some time, especially one that doesn't have a public repo). You don't have to download <i>any</i> database to get started with rails, but you will have to spend a lot of time figuring out how to configure applicationContext.xml in Spring (or however you decided to go about it).<p>In fact, I think you can be a successful web apps developer with Rails and <i>never</i> bother with anything other than the basic defaults (ok, you'll want to use a different database).<p>Ok, I realize I've been ranting. But there's a <i>huge</i> difference between a proliferation of choices that can be ignored, and a proliferation of choices that have to be understood and dealt with before you can write your first app.