This post originated from an RSS feed registered with Ruby Buzz
by Christian Neukirchen.
Original Post: Getting on a running train
Feed Title: chris blogs: Ruby stuff
Feed URL: http://chneukirchen.org/blog/category/ruby.atom
Feed Description: a weblog by christian neukirchen - Ruby stuff
Sometimes I feel so low-down and disgusted
Can’t help but wonder what’s happenin’ to my companions,
Are they lost or are they found, have they counted the cost it’ll take to bring
All their earthly principles they’re gonna have to abandon?
There’s a slow, slow train comin’ up around the bend.
—Bob Dylan, Slow Train
I’ve been doing Rails for three days now (for a project you’ll soon
hear of), and, while it was not my first attempt to get started, it
certainly was the most successful one.
[Please take the following with a grain of sand, according to rails
stats, I already wrote 119 lines of code with Rails. :-)]
The pain kept within reasonable limits, it’s no problem to install
Rails without RubyGems by adding an appropriate link for
vendor/rails, table pluralization can be disabled easily too (I
didn’t do it, though, it’s actually pretty comfortable), mostly, it
stays out of my way.
The biggest problem so far is not my lack of understanding
something, but not knowing what actually exists. Often, there are
useful helpers you just need to know of. Sometimes I wish I had
gotten into Rails earlier, so I could have tracked development and wasn’t
just run over by it now.
According to Phil Karlton, the two hardest things in Computer Science
are naming and cache invalidation. While I didn’t yet touch the
latter one with respect to Rails, I certainly hit the former.
Naming the models is comparatively easy, even if some names that I’d
really have liked to use are not possible because Ruby already has
classes with that name (what do you call a group of posts, if Thread
is already taken?); naming controllers is very hard for me, I’m not
sure why.
The second biggest problem is fighting with ActiveRecord; in fact, I
think all my problems so far can be reduced to wrong use of
ActiveRecord. I just hope we will get along better together in the
future. (Once you got it to work, it’s pretty nice, of course.)
Maybe my database schema was a bit too difficult for a first use.
(Featuring self-referential entries etc.)
Finally, an admission: I actually started writing the application five days
ago. After fighting with ActiveRecord for a short time, I gave up and
wrote an CGI (whopping 483 lines of code). Then, I decided to give it
a try again and rewrote it in Rails. That was easy then, of course. The
schema just had to be adjusted marginally, the HTML and styling
already was done. This may not be the worst idea to get into Rails,
provided you have an appropriate application.
So here I am, I think I got on the train, let’s see if I manage to
find a seat or get kicked out at the next train station…
[This post was titled “Selling my soul for a train ticket” first, but
I decided that would be a bit too negative. ;-)]