Seaside and Other Thoughts
There were several recent posts on Seaside, a Smalltalk web framework. Only today did I watch its videos. It is indeed wonderful. Several things set it apart from the rest of the crowd:
These days I am too excited to sleep! I hope to disseminate the information to you guys soon.
- A complete flow that would usually involve multiple servlets and forms is programmed in one method (using continuation although whose concept is not exposed to the developer directly).
- All request handlers are blocks (closures), saving the need for separate servlets.
- A natural hierarchy of components on the page gives it a portal like page model so that compnents (portlets) can interact on the server side.
- Components can be easily reflected to reveal their information for easy debugging.
- Requests can be of type goto or (subroutine) call.
- Number 1 is seen in many other frameworks (Apache Cocoon uses continuation in JavaScript; Ruby and Python both have continuation support). But Seaside's developer model seams very intuitive. I will start thinking about how to implement this in Cornerstone Framework G3.
- Number 2 is a good use of closures (which JavaScript supports well; No such thing in Java). We already have extensive use of closures in G3.
- Number 3 is what we have seen in portal servers. I was thinking along the same lines but to let the portlets not only be able to communicate on the server side but also on the client side. We will implement that in G3.
- Number 4 is an obvious benefit of the underlying language (Smalltalk) being a dynamic one. JavaScript can do the same with ease. We will implement this great feature too.
- Number 5 we already had in G2. It was only used in demos. No production use yet. But the Seaside demos show how useful it is. We will sure carry it over to G3.
- A web command prompt, a Unix shell prompt on steroids, enabling the user to do anything (web or local) through it, whose special case is a completely graphical UI that has no actual command prompt.
- A world-wide spreadsheet. I find spreadsheet to be an excellent model for developing something (we call it application but an average Joe does have to know it). Now just imagine a new page to be a spreadsheet that links to other pages through a URL (a service delivered in the REST model). The world-wide web is ready for the next giant leap to a web of applications.
These days I am too excited to sleep! I hope to disseminate the information to you guys soon.
<< Home