Thursday, March 31, 2005

Now that the Python web framework discussion has heated up, it looks like the moribundSpyce framework is finally getting some love. Spyce is a PSP (Python Server Pages) framework with its own templating language. Jonathan Ellis's Spyced blog mentions recent checkins to a new Subversion repository, but I can't find a reference to it on the Spyce website.

I've just about settled on CherryPy for my web framework needs, but if Spyce is coming back, it looks like yet another thing I need to check out one of these days.

I've been using spyce for about 3 years now. It's the first real dynamic web development package I ever used, and I haven't seen much reason to switch to anything else. It was very easy to learn, and pretty much gets the job done. The main reason there hasn't been much work on it in the past few years is that it is more or less done - there's not a lot of ideas of what to do with it next.

I certainly agree with saluk. Spyce is essentially feature-complete! Any more additional "features" and it'd probably just turn me off. Heck, even removing some of the stuff there might probably be a good thing.

The philosophy of Spyce is simple. Do a Python version of PHP. Forget all those highfalutin frameworks. Just expose the power of Python to server side scripting with a nice clean syntax. Any further evolution will be on the Python language side. Python as a language is so far superior to PHP that even without frameworks, you will be able to go a lot further with less, and cleaner, code.

While I, like most people probably, don't consider the default [[ and ]] escape characters Spyce uses to be clean. (Code that uses them look hideous, in fact, and I blame this for the low popularity of Spyce, along with the scary looking extension ".spy" - which I always rename to ".spyce"), Spyce will happily and seamlessly support the more familiar asp style <% %> tags... something few people might realize.

Also, Spyce documentation is not intuitively organized (for the uninitiated at least) and a lot of the info on how to do the simple things are not presented well at all. Here is a Spyce tips and techniques page that covers how to do some of the most basic stuff you will find yourself needing to do.

Python is an awesome language, and imo, we don't need overengineered frameworks like Django, Turbogears as much as some people may seem to think.