Web application frameworks

in Smalltalk and Common Lisp

(Monday 25th of April 2005, Vrije Universiteit Brussel)

The VUB (Programming Technology Lab), ULB (deComp), Belgian Association for Dynamic Languages (BADL) and the Belgian Smalltalk User Group (BSUG) are very pleased to invite you to two presentations about web application frameworks based on Smalltalk and Common Lisp. The two presenters are the main authors of the respective frameworks and will show you first-hand overviews and illustrate examples from, and experiences with, real-world use scenarios. It will be especially interesting to see what advantages the use of non mainstream dynamic programming languages brings to the table in a domain that is specifically targeted by Java and .NET frameworks. We also expect a heated discussion about the merits of the use of continuations in Seaside and the lack thereof in the Fractal Framework. ;)


The schedule for this event, held on Monday 25th of April, is as follows:

  • 15:00 - 16:00 Avi Bryant, Seaside
  • 16:00 - 17:00 Marc Battyani, Fractal Framework
  • 17:00 - 18:00 Open Podium Discussion
  • This event is rounded out with a little reception.

The venue for the event is the promotion room of the Vrije Universiteit Brussel, Campus Etterbeek, Pleinlaan 2, 1050 Brussels, Belgium. For a description of how to get to the campus see http://www.vub.ac.be/english/campEt.html . The promotion room is in building D (room D2.01).


Please make sure to register for the event by sending an e-mail to Pascal Costanza (pc@p-cos.net), so we can plan ahead. The number of places will be limited according to the exact location of the event, and will be announced at the website at http://prog.vub.ac.be/events/2005/BADL/WebApplicationFrameworks.html .

Abstracts of the Talks

Seaside (Avi Bryant)

On the web, abstraction is a dirty word. The dominant paradigms and philosophies of web development -- CGI, Servlets, Server Pages, REST-- provide only a thin wrapper around the low-level details of HTTP, and encourage you to use the rough stones of the transport protocol as the direct building blocks of your application. Web developers by and large reject any further abstraction in the way that assembly hackers once rejected structured programming: it's too inflexible, uses too many resources, and above all, it doesn't let you see what's *really* going on. As a result, web applications suffer the same problems now that assembly language programs did years ago; they're fragile, verbose, difficult to maintain and ill-suited to reuse.

That's not to say that better abstractions aren't available. The Lisp and Scheme communities have been working on them for years. Paul Graham's ViaWeb pioneered the use of closures, not query parameters, to capture application state in each link. Christian Quiennec showed how to use first class continuations to invert the flow of control of HTTP and put the server back in the driver's seat. Macro packages like htmlgen bring HTML into the language itself, opening up much more than a template system can provide. Meanwhile, object-oriented packages like WebObjects have demonstrated how to decompose the web page into a tree of stateful, interacting objects, allowing a finer granularity of development.

Seaside combines these ideas and others with the rich development environment of Smalltalk to provide a stable, complete, and innovative web application platform. This talk will introduce Seaside, and will focus in particular on the ways in which these abstractions can be leveraged to enable reuse: how to use closures, continuations, and intelligent HTML generation to destroy the intra- and inter-page coupling that is holding web development back.

Biography

Avi Bryant is the co-founder of Smallthought Systems Inc. Much of his work centers around the use of Squeak Smalltalk as a platform for commercial software development. As an actively contributing member of the Squeak community, he maintains its standard version control system, as well as packages for web development and relational and object database access. As a consultant, he has helped companies develop Squeak-based products for the travel, theatre, and finance industries, higher education, and mobile devices. Avi is based in Vancouver, Canada but currently residing in The Netherlands.


Fractal Framework (Marc Battyani)

Web sites have evolved from static documents to simple applications (eCommerce) and now to complete applications. Today, frameworks like J2EE and .Net are used for writing these applications made of tens to hundreds of object classes. These huge frameworks suffer from the limitations of their programming languages. Other frameworks, based on continuations, are emerging but still have limitations for complex applications. The Framework presented here has been used in production since 2001 and shows how the unique qualities of Common Lisp can boost the productivity by more than an order of magnitude for writing web applications compared to J2EE/.Net. This framework automatically generates the presentation, modification, validation, storage and data integrity layers of all the object classes of an application. It provides session management, web controls and a unique way for collaborative work. Internally, it makes extensive use of the Meta Object Protocol, CLOS generic functions, lexical closures, and on the fly code generation and compilation.

Biography

Marc Battyani's professional activities involve electronics design and writing software. He is the founder of Fractal Concept and the author of several open-source libraries (mod_lisp, cl-pdf, cl-typesetting). He works on various domains ranging from medical or industrial systems and applications to network infrastructure management web applications for banks as well as 3D software for robotized testing equipment, 6D real time positioning systems for the industry and the military, smart environmental radio sensors, etc. All the application software is written in Common Lisp with Fractal Concept's web application framework. Marc has a MSc in electronics and a MSc in computer science and lives near Fontainebleau in France.

Further Information

The website for Seaside contains information and tutorials to learn more about this framework. Avi Bryant has given a similar presentation at another event, and that presentation was recorded as a quicktime movie. See http://bc.tech.coop/blog/050826.html for the movie and more information.

The slides of the talk of Marc Battyani are available here, as well as a document with some more detailed information.