Es ist zwar schon drei Tage her, aber dennoch eine interessante Nachricht: Lukas Renggli hat die Verfügbarkeit der zweiten Alpha-Version von Seaside 2.9 angekündigt.

Seaside ist ja seit  Version 2.6 deutlich “erwachsener” geworden und eines der Hauptziele für Version 2.9 ist eine verbesserte Modularisierung. Klingt erstmal langweilig, denn von einer Modularisierung spürt der Nutzer von Seaside nicht unmittelbar etwas. Oder?

Nun ja, Seaside ist inzwischen ein sehr umfangreiches Framework, in dem eine ganze Menge von Lösungen für typische Probleme im Web enthalten sind. Da ist zum einen das Renedering von Komponenten, das Session Handling, Verarbeitung von Callbacks, Unterstützung von JavaScript/Ajax, etc. In anderen Sprachen/Technologien sind dafür häufig verschiedene Frameworks zuständig, die hoffentlich nett miteinander spielen.

Eine Modularisierung von Seaside bringt verschiedene, wichtige Vorteile:

  • Die Entwickler können sich auf einzelne Module konzentrieren. Ist man ein HTML-Spezialist und möchte am Renedering in Seaside arbeiten, lässt sich isoliert an einem entsprechenden Modul / Subsystem arbeiten, ohne Gefahr zu laufen,  Stellen am Framework kaputt zu machen, die nicht mit dem Rendering zu tun haben.
  • Der Nutzer von Seaside können sich eine Kombination aus Modulen zusammenstellen, die auf die Erfordernisse eines Projektes optimal zugeschnitten ist. So gibt es für den Bereich der Rich Internet Applications inzwischen einige konkurrierende JavaScript-Bibliotheken (etwa Scriptaculous und jQuery, oder YUI oder MooTools), die auch  von Seaside unterstützt werden. Meist ist es nicht nur nicht sinnvoll, sondern gefährlich, mehrere davon im Image zu haben (JavaScript hat keine Namespaces).
  • Portierbarkeit. Seaside wurde in Squeak geboren, und ist inzwischen für Squeak, Pharo VisualWork (und damit indirekt für ObjectStudio), Gemstone/S, Dolphin, GNU Smalltalk und bald auch für VA Smalltalk verfügbar. Da ist Modularisierung natürlich hilfreich, um die Codestellen zu isolieren, die Plattform-spezifisch sind. So ist zum Einen das portieren an sich einfacher, aber es ist zum Anderen auch wesentlich einfacher, die Weiterentwicklung von Seaside parallel für mehrere Plattformen synchron zu halten.

Seaside 2.9 wird ja auch ein Teil von VA Smalltalk Version 8 werden. In der ersten Beta von VA Smalltalk ist bereits ein erster Prototyp auf Basis Seaside 2.9 enthalten. Zwar fehlen diesem noch einige wichtige Eigenschaften (wie etwa teilweise Continuations), aber man sieht bereits, was mit VA Smalltalk bald so alles möglich sein wird.

Ein wichtiger Satz in Lukas’ Ankündigung ist (zumindest für VA Smalltalk-Anwender):

We’ve further improved portability to other Smalltalk dialects, in this round we mostly focused on VA Smalltalk.

Instantiations arbeitet hier auch aktiv mit dem Seaside-Entwicklungsteam zusammen, und reiht sich in die Riege der kommerziellen Anbieter, die einerseits Seaside in ihr Produkt integrieren, aber andererseits auch an der Entwicklung von Seaside aktiv mitwirken, und so dem gesamten Projekt auch wieder etwas zurückgeben.