Seaside - next level web development

Ruby on Rails may be the best 'normal' web framework out there but if you want to take web development to a new level it may be worth looking at Seaside - a web framework built on Smalltalk - the mother of all object oriented languages. This morning I attended a breakfast seminar at Stockholm consultants MSC held by Göran Krampe about Seaside. I have read some about it earlier and put it on the huge list of things to try later (together with erlang, haskell, an infinite number of javascript frameworks not excluding node.js, python with django etc etc ). But when Mikael Kindborgs colleague at MSC is holding a seminar on the topic it sure is interesting to attend and I must admit that I now feel that Seaside probably will be the technology used for the next hobby project for me. Why? I will paraphrase some of what Göran said and add some of my own so here goes:

  • no templates - you don't have to touch HTML at all. This means that (1) method calls for a tag makes sure that tag is properly rendered so no problem with nonclosing tags etc. (2) the kind of mess where tags are intermingled with "normal" code is gone, (3) the HTML looks really good and (4) no risk of using messy techniques for styling - you have to put it all in the global CSS file.
  • the server is not stateless. This may be a problem in extremely large applications but for most cases a bit of load balancing with sticky sessions will solve it with no problem. Session state is communicated with a request parameter so no cookies are involved. And the other parameter is for identifying the continuation.
  • Smalltalk is a really nice language. It has the simplest syntax possible and all and everything is objects. It would be nice to get more hands on experience with the language. Lots of the good stuff in software development comes from the smalltalk community. It is probably because the barriers for accomplishing things is much lower than in other languages.
  • no XML and no configuration files. You write it all in Smalltalk. This is - of course - similar to Rails where everything is Ruby. A very nice and reasonable approach.
  • no builds. Smalltalk runs in its own virtual machine with something called an image that holds the current object state of everything. Kind of like EJB stateful session beans but good.... Code changes in the development environment is runnable at once. This is no news for Smalltalk developers but for a Java web developer it may sound too good to be true. Seaside adds a nice debug environment to your web pages where you can inspect and change the code from within the browser. Imagine doing that with a JSP-based framework in the J2EE stack.
  • Seaside is 'just a web framework'. Unlike Rails and django it doesn't solve all your problems. For persistence you have to hook into other Smalltalk solutions. For the enterprise - Gemstone may be interesting with its powerful object database.

So - many thanks to Göran Krampe for awakening my interest in Seaside (and Smalltalk).

Old comments

2010-04-21Mikael Kindborg
I was stunned by the Seaside component demo, but I was completely levitated by the browser based IDE that lets you code right into the Smalltalk image! No build tools and No config are strong points. Big Yes to a uniform language for describing and programming web apps, and Yes to instant coding!