

What if Rails isn't for beginners anymore? - mbleigh
http://intridea.com/2011/6/16/what-if-rails-isnt-for-beginners-anymore

======
bphogan
I posted something similar to this at the original blog...

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.?

~~~
mbleigh
I create probably at least 3-4 apps a month and I use RailsWizard to do it
because my needs often vary quite a bit (I almost always use RSpec, but
ActiveRecord vs. MongoDB+MongoMapper, needing Redis, etc. change for each
app). I don't think the defaults have really gotten that out of hand, and the
only one that really affects newbies is Coffeescript (since you can just write
CSS in an SCSS file). I just think that Rails is a complex system and not
really conducive to being the first exposure people have to Ruby web
development.

~~~
tswicegood
I think that's the whole point though. It used to be that you could be a Rails
dev with very little Ruby experience. Now, that's not the case.

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.

------
gte910h
As a person who "Began" really learning rails this spring (only for 1 project,
to help be the other end of the frontend/backend communications), it's
definitely getting into non-newbie friendly territory to start using it.

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).

~~~
jamesbritt
There are a number of Rack-based frameworks out there, upwards of around 2
dozen, you can look at. I'm partial to Ramaze.

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.

~~~
gte910h
I think Sinatra is one I've had tossed at me a few times as well. Do you have
an opinion on that?

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

~~~
jamesbritt
_I think Sinatra is one I've had tossed at me a few times as well. Do you have
an opinion on that?_

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.

------
Vitaly
Rails never WAS "for beginners". That was never the focus and intent.

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.

