Categories
Old

Zope versus Rails

On his blog, Ivan Krstic talks about the fact that Ruby is making headway on the web, in a way that Python never managed.

…if you’re writing a Python web framework that will out-rail Rails, please give up now.

As someone who wrestled with Zope for some time, I share this sentiment. I am now about 9000% more productive with TextMate and Rails. I’m even able to pick up Ruby quicker than I picked up Python.
Case in point – yesterday, Shaun and I were fiddling with SQLUserFolder, trying to get it to write an encrypted password to the database – the product (Zope plugins are called products), wasn’t working, instead writing some non, SHA crap to the database.
My resulting Ruby program:-

require 'digest/sha1'
print Digest::SHA1.hexdigest("hello world") + "\n"

Compare this to my resulting PHP and Python programs:-

<? echo sha1("hello world") . "\n"; ?>
import sha
print sha.new("hello world").hexdigest()

All three scripts are largely the same – so, what is it that makes Python for the web so bad, when compared to Ruby? It’s surely not the language?

By Matt Lee

Artist, writer, director and recovering free software user.

4 replies on “Zope versus Rails”

“I’m even able to pick up Ruby quicker than I picked up Python.”
Probably because you got used to programming and object-orientation via Python. Your first language (even if you didn’t master it completely) is always the hardest. It’s easier to pick up new languages after that. Too bad it doesn’t seem to work the same way wrt spoken languages.
Ruby is a great Perl. That’s basically about it. It’s not that Python’s bad for web programming (hardly), but that Python’s whitespace rules made it too weird for the Algol-crowd. And Zope became too monolithic for script-kiddies. Ruby and Rails hits a sweet spot for many, but it’s also been a great motivator for the Python community as well.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.