Archive for January, 2008

Announcement: The New Design

Monday, January 14th, 2008

Ah olden days.

So to go along with the new blog softwares, here’s a new design. It’s inspired by the hallowed IBM System/360s of yore, which came in vermillion. Ponder that. Our Dell servers come in boring. Because you can’t rely on computers that are red. And nobody tours your datacenter anymore. And for sure you don’t have server-bunnies changing tapes.

I miss the days before everything became a commodity.

*(yes, I know that’s a PDP-11. Doesn’t change the fact that you could get S/360’s in red.)

Confession: On the Blag Softwares

Monday, January 14th, 2008

About six months ago, around OSCon, I bought a bunch of books on Ruby on Rails, because–thought I–Ruby’s hip and all Object Oriented (none of that peskiness with ‘int’ or ‘char’), and Rails is cool, with its MVC and ORM and metaprogramming goodness. At least, it’s not quite the moving target that Java development is (do I learn Spring or not? has it been supplanted yet? What day of the week is it?). And I wanted to rewrite my blog, which used to be two Perl .cgi files and an HTML::Template template. So I figured I’d bone up on Ruby and whip up a replacement blog.

So I got Ruby for Rails, and Learning Ruby and read up. And then I set up the app scaffold I wanted. And then I sat there. Because the sad fact is that Rails really doesn’t make your life any easier. Learning Rails won’t make you wonder why you’ve been programming in Perl or Java or Python all these years. Sure, it makes the scaffolding for you. But chances are that you’ll rewrite it all anyway. So you’ve gained nothing. Sure, it does ORM for you. But chances are you already designed your schema. So you’ve gained nothing. And it has erb. Woooo. Welcome to Everything Else. And it’s slow. Painfully slow. Ow.

Some Things I Learned about Rails

  • Rails is for RAD
    Rails lets you quickly prototype your application, and build out only those features that are necessary for your demo. The problem is that once you consider real-world use, you’ll end up writing just as much code as you would with any other language. Yes you can use attr :foo, :bar, :baz. But did you remember to secure the setters? No? Joke’s on you!
  • Rails developers will never be happy
    Ruby is slow. And if you run Rails on common platforms (apache/fcgi) you will hate life. Especially if you run a “stable” distribution and don’t know about fastthread. And the Rails community thinks that the answer is “Get a faster webserver” so they keep finding newer and weirder webservers (”nixbat is a pure state machine written in assembler that implements qxcgi in kernel space!”*). I think you’re fixing the wrong thing. Maybe you should help make Ruby better. Then fix the way you do ORM. Here’s a hint: when getting multiple results from the database for a single object type, why not get a recordset first, then objectify them in memory? Why make 20 queries?
  • PHP sucks. PHP forever!
    I hate PHP, let me be clear. Part of my rant is that I like Ruby and Rails because I want to use a programming language with the features that Ruby has. It’s just that Rails provides no real advantage other than “feeling cooler”. And finally, there is simply so much more software in php that’s already done and works. Witness WordPress, which is not only many many times faster than Typo, but has a selection of plugins that makes me swoon. Specifically, the iPhone plugin that lets you manage your blog from your phone. That was the winner. That was when I gave up on Rails.

So I got WordPress. Sure it doesn’t make me feel as cool when I’m editing pages in vi. But at least I can add entries from my iPhone. And in the end, it’s not about the gears, is it. It’s about where your car goes.
*(I made that up)

Magic!