What if Rails isn't for beginners anymore?(intridea.com)
intridea.com
What if Rails isn't for beginners anymore?
http://intridea.com/2011/6/16/what-if-rails-isnt-for-beginners-anymore
8 comments
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.
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.
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.
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).
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).
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.
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.
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
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
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.
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.
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.
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.
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.?