Tuesday, September 6, 2011

"Server-Centric" and "Client-Centric" Web Frameworks

“Server-Centric” Web Frameworks
These frameworks generate the user interface on the server, and use third-party JavaScript libraries to provide a rich user interface experience at the client. They use a combination of HTML, CSS and AJAX to create the user interface. Code you write runs on the server, and you can assume low-latency access to your database and domain objects.

Aida/WebIliad and Seaside are the main Smalltalk server-centric web frameworks. Aida/Web and Seaside are used in production by several projects, while Iliad is new and experimental

“Client-Centric” Web Frameworks
With these frameworks you have your code executed in the browser on top of JavaScript. You manipulate the web UI directly in Smalltalk. 

Quicksilver and Jtalk are well-known Smalltalk client-centric web frameworks. These frameworks are experimental, and not ready for production yet.

It will be interesting to see how client-centric web frameworks evolve. Remember, having Smalltalk running in the browser does not solve all problems: If the user interface acts on domain objects stored on the server, how do you go about transferring the data? Will your application transfer objects to the client, or will you have to choose a more light-weight approach? Maybe the ability to run Smalltalk on the client will only be used to decorate the user interface? Who knows?

Integration between server-centric and client-centric frameworks will be important in the coming years. Therefore it is great to see that Aida/Web recently announced plans for integrating Jtalk.

No comments: