Rails is The PAT of Ruby

“There must be a reason for such strong reactions” was all I could think of following yesterday’s flamewars. These spiteful comments couldn’t have come out of nowhere. And then I remembered PHP, and how active it was during 2002-2005. I remember being excited about every single release, and every new template class, and every tiny framework. But what I remembered most was PHP community’s attitude towards Perl.

PHP people knew that Perl wasn’t competition, that PHP filled a different niche than Perl, and more importantly, that the Perl ecosystem is a rich source of information, proven code and tried ideas. PHP learned from Perl instead of fighting it. Just like Perl learned from awk, which learned from grep.

The PHP community engaged in flamewars only when the pace of PHP development declined. When PHP stopped being as good as it used to be. Many concentrated on deflating Rails’ hype instead of doing any real work; many have failed.

And this wasn’t as obvious within the PHP community as it was within Java’s. Ruby was a real threat to Java purists. Here came a language, with a clean object-oriented design, fun to write with, and supported by many libraries; what’s not to like? If you pay attention, you’ll notice a pattern of superfluous arguments: Ruby is not as fast as Java, Ruby is still immature, Ruby isn’t enterprisey. None hold any water.

It’s pointless to argue against a programming language, even more so a programming framework. There’s a right tool for every job, and some right tools are destined to give way to newer, better tools.

I’m sure my PHP readers can remember PAT and notably patTemplate. This collection of libraries is one of the oldest in PHP history. At its time, PAT was widely used by many developers, especially those who like templates and want to keep their View clean of PHP code.

PAT grew old and slow, while new libraries emerged doing what PAT did in different ways. But there was never a reason to despise PAT. If anything, we respected PAT even more.

Rails is a tool that will give way to a newer, better tool which will do exactly what Rails does, but in a different way. Rails feels to me like the PAT of Ruby, except “Ruby Application Tools” doesn’t sound as good an acronym.