

Ask YC: Should I believe the Rails hype? - edb

I'm a php developper and have been for a good 7-8 years now. I took the time a year ago to learn cakePHP and yes, the documentation was lacking, but I hung out with the devs in #cakephp and can now safely say I know it almost inside out and can whip out applications like it's nobody's business.<p>Thing is, in university I learned C, assembly, C++, java, PERL, in various environments, so I know I can pick up RoR in a couple of months, especially when I leave my company this month to start coding my web application ideas.<p>My question is the following: I'm drowning in RoR propaganda and consequently am actually considering learning it. Is this a wise move or is my time better spent taking what I know (cakePHP) and developping my ideas now? I'm curious what you all think.
======
mattdennewitz
sit down and build a small app with it that _doesnt_ rely on the crud
framework. something like an events calendar should give worthwhile insight on
setting up an application, working with the database orm, controllers,
templates, etc. you could even sprinkle in some web service consumption on top
afterwords to play around with web api interaction with your application.

by this time, you should have a pretty clear of how it feels to work with
rails. more importantly, you'll be able to determine whether you want to take
a deep breath and inhale the hype or try something else.

if you don't care for it, go back to cakephp. or codeigniter. or phreeze. or,
give django a try. i tried rails when it first came out, didn't care for it,
and went with django because i enjoyed python and liked how django was shaping
up.

~~~
edb
I guess it's because I'm still working that I feel that there's no time for
that. Maybe when I free myself up completely I'll be able to sacrifice a bit
of time towards learning rails.

Thanks for the advice.

------
rcoder
Ruby, as a language, is reasonably compact, and certainly not a big jump for
someone with any amount of Perl and OO experience. Rails, on the other hand,
is a big framework. You can learn the basics in a few days, but much like PHP,
you really can't master the ins-and-outs of the full stack without (at least)
several months of regular use.

It's also a moving target: new APIs fade in and out of existence with pretty
much every release, and many "best practices" (early RESTful routing, anyone?)
are picked up and dropped pretty much according to the whims of DHH and the
other core committers.

That's not to say that it isn't worth learning, of course; if you're willing
to commit to using Rails pretty much full-time (and work within its
limitations) for the bulk of your projects, it offers a lot of great
infrastructure to build on. Since it sounds like you want to focus on solo
development of web applications, Rails may be just about perfect for your
needs.

------
Hates_
Just watch the screencasts and spend a day or two giving it a go :) It's
incredibly simple to get a webapp up and running, then you can judge for
yourself. Judging by your experience I doubt it would even take you a couple
of months, most probably it would only take you a couple of weeks to have the
basics you need to write a webapp.

~~~
edb
This is the thing.. My experience dictates that I'll pick up RoR pretty
quickly, but what really makes or breaks a framework is what happens when you
try to do things outside of basic CRUD administrative interface stuff. I find
it takes at least a couple of months of serious coding before you REALLY get
to know what a framework's about.

... or is that just because cakePHP is badly documented? :)

------
brunnock
I think it's better to stick with what you're familiar with.

To use books and written languages as an example, can anyone name a writer who
suddenly wrote better books when he switched to a different language?

~~~
rcoder
That attitude would guarantees that you'll never pick up new skills, or
stretch yourself enough to discover what you're really capable of.

Learning new programming languages and frameworks is incredibly important, if
your goal is actually to be a well-rounded developer.

~~~
brunnock
You didn't address my point. Can you think of any writer who improved his
skills by learning a different language? Can you think of a mathematician who
improved his skills by learning a different notational system? Did Michael
Jordan become a better basketball player after playing minor league baseball?

------
orlick
If you want to be a better programmer -- Learn Rails

If you want to spend your time creating a new business -- Stick with PHP

