What if Rails isn't for beginners anymore?
intridea.com
intridea.com
This is exactly how I feel as a developer. And I like that this is stated it so clearly - that Rails isn't for beginners anymore.
The point about ActiveSupport is so well put because it's something I cover on day one of my training, where we start with Ruby and move into ActiveSupport, and then Rails.
I've been quite vocal about the fact that Rails is harder to teach than it was in the past. But I don't think Rails needs to change or slow down. I just wanted to see some saner defaults that don't kitchen-sink it up.
I don't advocate making Rails slow down. Far from it. I advocate making Rails a little less of a pain for someone getting started. A default Rails application in 3.1 includes a lot of stuff that a beginner doesn't need but experts might appreciate, but how many experts are creating new Rails apps all the time? And if they are, how many use "rails new" instead of their own custom template? I know I do, because I use HAML and RSpec and configuring that myself takes too much time. I guess I feel like 'rails new', which is already driven by a template, could tone its default options.
My question for the HN crowd is, how many non-newbie Rails devs are creating new Rails projects all the time, using the defaults like test::unit, ERb, etc.?
It's great to advance, but when you start out as being quick and easy to get started in then everyone starts progressing you can easily forget that it's taken years as a community to get to this point. If you're not careful, as a community, you end up leaving the newbies always playing catch up instead of providing them a helping hand to get started.
It's starting to have the problem of "YOU MUST UNDERSTAND ALL OF THIS" before you can deploy anything useful issue. (I don't mean all of rails, but you do need to understand a very large number of topics before you can do a real app these days).
It's making other lighter weight ruby based web frameworks look appealing even at this point (as they'd still work on heroku for the most part).
Many of these frameworks do not come with assorted bells and whistles to handle certain tasks. You'll have to write them yourself.
What this means in practice is that your learning curve involves getting more proficient with Ruby rather than getting proficient with a tool-specific API. Long-term, that leaves you better off.
Honestly speaking, programming language proficiency isn't really the issue anymore, Rails has a HUGE "We do it this way cause that's the way we do it" level of stuff in it to learn that isn't enforced by a complier, etc. That's the rough stuff, especially if you do 1-2 projects a year in it, its so different by the time you return.
Looking at Ramaze, it reminds me of web.py
It's not for me. It's clever, and makes certain kinds of apps easier for some people, but it doesn't buy me anything over either a straight-up Rack app or a Ramaze app.
The point of Rails is to make developers productive, not to make newbies feel at home.
Yes, you could just ignore all the "magic" and treat it like a black box, and you still can. But it wouldn't take you too far, any kind of real application requires real understanding of the concepts and often implementation too.
Once you know your ins and outs you indeed can create stuff very fast, taking advantage of all the magical things, and new versions simply have more of this "magic". It helps a lot if you know how it works. It might confuse if you don't.
So.. yes, if you have no clue the latest versions of Rails might take you more time to master, at the same time it makes developers "that know" even more productive then before.