Web development - an epiphany
OpenACS was the first serious toolkit that I learnt, and is still one of the most amazing in terms of ready to bolt together functionality, but it lacks in development language expressiveness and debugging ability, and it's certainly not DRY (Don't Repeat Yourself).
So a few years ago I co-developed an in-house telco business modelling & web developement framework at Optus in Perl which enabled great reuse and relatively clean OO implementation of web based processes with cutom objects. I've been subsequently told it is not dissimilar to WebObjects.
Since then I have been working more on backend code, but I've really been enjoying becomming comfortable with Ruby and Rails. It's nowhere near as feature full as OpenACS, and it's not as expressive as the in-house framework I co-developed, but the cleanness of it's design is truly refreshing. It really does get out of your way and provide you a well balanced canvass on which to paint your web2.0 masterpiece.
But now that's all out the window. I've just seen the Seaside (which I do love to be beside ;).
First of all I started playing with Smalltalk because I just felt like it was something I needed to learn. Much like when I switched to emacs, I figured that so many smart people could be wrong. Not that I was convinced it would be better, but I knew that I was missing out on some good ideas by ignoring it totally.
So smalltalk. How can I summarise it for you. It has the object-ness of Ruby, the great named calling syntax of Objective-C, garbage collection and bytecode compilation like Perl or Java, and the grammar simplicity of Tcl. They're all my favourite languages, so of course it makes sense that I should love the one language that inspired them all.
Like Ruby gave birth to Rails, the simplicity and clarity of Smalltalk has inspired the most amazing web framework I have ever seen. Seaside. With it's object and method based pageflow, components and debugging assistance, Seaside is like the perfect logical extension of that OO Perl framework I co-wrote. And the implementation of transactional sequences is simply brilliant.
Am I too Utopian? I probably am - I havent written a line of Seaside code yet, so I don't know it's frustrations. I'm sure that it's near total reliance on CSS for layout will bite at some stage. I will definately start a project site based on Seaside (or possibly Pier - a framework superset of Seaside).
In the meantime, do yourself a favour and watch the 55 minute presentation on Seaside that Marcus Denker gave, titled:
Seaside - Agile Development with Squeak: video, slides & demo code.
Seriously, you will love it. Really.
07:30 PM, 19 Jun 2006 by Mark Aufflick Permalink