VAST 8 und Seaside


Instantiations hat mit Version 8 von VA Smalltalk ja nun als einer der letzten Smalltalk-Anbieter das Web-Framework Seaside in sein Produkt integriert.

Seaside hat sich ja durch einige der “radikal anderen” Ansätze der Web-Entwicklung ins Rampenlicht geschoben, wie es in den letzten 10 bis 15 Jahren wohl kein anderes Thema aus der Smalltalk-Ecke getan hat.

Naja, mal abgesehen von vielen Themen, die zwar ihre Wurzeln in Smalltalk haben, und sich in der gesamten Programmierwelt etablieren konnten, wie etwa Refactoring, Design Patterns,  Unit Tests und so weiter. Aber das ist eine völlig andere Geschichte.

Seaside hat es also wie keine andere Entwicklung der letzten Jahre geschafft, den Fokus des Interesses der IT-Welt wenigstens ein klein wenig auf Smalltalk zu schwenken.

Da ist es nur folgerichtig und auch lang ersehnt gewesen, dass Instantiations sich dieser Thematik annimmt und Seaside nach VAST portiert und es in die Palette offiziell supporteter Frameworks aufzunehmen.

Die Ehe VA Smalltalk und Seaside beginnt wie viele andere mit einem fulminanten Fest, gesäumt von vielen Gratulanten und frenetischem (evtl. alkoholunterstütztem) Taumel. Die Signalwirkung ist natürlich eine ganz deutliche: VA Smalltalk ist im Reigen der modernen Smalltalk-IDEs dabei und wird auf Jahre hin auch in der ersten Liga mitspielen. Instantiations investiert in VA Smalltalk und integriert auch neue Technologien, die nicht nur zur Abwicklung halblebiger Altprojekte notwendig sind, sondern bietet die Basis für komplett Neues.

Nun ist VAST 8 eine Weile draussen und es stellt sich die Frage, wie lange der Freudentaumel denn nun anhalten kann und sollte. Und für den Bereich der ernsthaften Anwendung in kommerziellen Projekten stellt sich vor allem auch die Frage, ob denn die Zeit für Freude oder gar die Nutzung von Seaside überhaupt schon gekommen ist.

Einige VAST-Anwender arbeiten schon mit Seaside und haben prototypisch bereits Projekte realisiert, teilweise sogar schon in Produktion. Zu sehen etwa auf den VAST Summit 2009.

Gibt es einen Haken? Soll ich für mein Projekt nun noch warten?

Die Antwort aus meiner Sicht ist ein entschiedenes JEIN!

Sehen wir uns mal die Sache genauer an:

VA Smalltalk Version 8 wird mit Seaside 2.9 Alpha 3 geliefert, der aktuell noch neuesten Version von Seaside (Alpha 4 wurde vor kurzem für “real soon now” angekündigt). So weit ich selbst bisher damit gearbeitet habe, ist die Version recht stabil und funktioniert sehr gut. Es ist allerdings ein kleiner Fix am Seaside-Code durchzuführen, um es vernünftig zu nutzen.

Aber Alpha klingt noch nicht so recht überzeugend. Die Seaside-Entwickler sind noch sehr fleissig daran, aus der Alpha-Version eine Beta-Version zu machen, und hoffen, noch dieses Jahr eine richtige Version 2.9 fertigstellen zu können. Teile des Frameworks könnten also noch inkompatible API-Änderungen erhalten, was Auswirkungen auf Anwendungen haben kann.

Und dennoch war die Entscheidung von Instantiations richtig: lieber in 2009 mit einem fast fertigen Stand von Seaside auf den Markt kommen, als bis 2010 (oder länger) zu warten und die Kunden mit einer eher halbherzigen “coming soon”-Ankündigung eher zu verunsichern als sie zu beruhigen. Verunsicherung hatten wir in den letzten Jahren genug.

Wieso hat Instantiations nicht einfachdie stabile Version 2.8 von Seaside integriert, damit wäre uns doch viel eher geholfen. Könnte man meinen. Seaside 2.9 bringt eine grundsätzliche Neuerung in derArchitektur des Frameworks mit sich: es ist auf Portierbarkeit auf mehrere Plattformen ausgelegt. Dabei wurde so weit gegangen, dass die speicherhungrigen Continuations, die einerseits sehr mächtig, andererseits auch sehr schwierig zu verstehen sein können, in ein optionales Paket namens Seaside-Flow ausgelagert wurde.

Einer der Gründe für diese Entscheidung ist, dass nicht alle Smalltalk-Plattformen Continuations unterstützen. VA Smalltalk ist bis heute noch eine solche Plattform, auch wenn Instantiations dies mit Version 8.1 ändern will. Dabei kann man Seaside auch sehr gut ohne Continuations nutzen, und genau das (aber eben bisher nur das)  kann man auf VA Smalltalk 8 tun.

VA Smalltalk 8.0 ist aktuell, zumindest was den Seaside-Support angeht, mehr eine Message, ein Versprechen. Es wird Seaside unterstützen, und auch Seaside-Flow wird kommen. Aber sicherlich erst dann, wenn Seaside 2.9 so weit ist.

Dennoch ist es vor allem für Projekte, die bestehende Anwendungen mit Hilfe von Seaside webifizieren möchten, die ideale Plattform, die Arbeit mit dem Framework kennen zu lernen und die architektonischen Herausforderungen kennen zu lernen, die durch einen Wechsel von einer fat client-Anwendung auf eine Web-Serverumgebung verbunden sind.

Seaside steht damit VA Smalltalk-Anwendern auf diese Weise früh genug zur Verfügung, um alle Vorbereitungen zu treffen, um eine Anwendung umzustellen oder eine neue Anwendung prototypisch umzusetzen. Der Wechsel auf ein Seaside 2.9 final mit VA Smalltalk 8.1 oder spätestens 8.2 wird sicher nicht schwierig sein, das KnowHow ist bis dahin da, die Weichen können gestellt werden.

Das mag für eine Softwareschmiede mit 8 Programmierern lächerlich klingen, im Umfeld einer unternehmenskritischen Anwendung eines Versicherers oder einer Bank sind das jedoch gewichtige Argumente…

2 thoughts on “VAST 8 und Seaside

  1. Also ich bin nicht der Meinung, dass man Seaside nicht auch für kleine Web-Projekte nutzen kann und sollte. “Irgendein PHP / Ruby / Perl-CMS” mag schnell zu hübschen Ergebnissen führen, aber nicht alles, was erst mal schnelle Ergebnisse erzielt, ist auch auf Dauer gut für Änderungen und Weiterentwicklungen geeignet.
    Die Frage der Kosten macht hier sicher einen wichtigen Faktor aus. Für eine kleine Website kann die Kombination Squeak und Seaside die perfekte Kombination sein.

    Die Sache mit der Logik-Black-Box ist so eine Geschichte. Dazu flanscht man dann irgendwas vor einen Smallalk-Server und hat dann gleich einen bunten Technologiemix: vorne eine Java-Servlet_engine oder eine Ruby/Rails-Anwendung, die dann einen Smalltalk-Server treibt. Kann sehr schnell in die Wartungshölle führen, denke ich.

    Wer schonmal einem Smalltalk-Debugger durch das Seaside-Rendering gefolgt ist, also quasi direkt im “Servlet” per fix-and-continue ein paar Änderungen an der Anwendung gemacht hat, und das mal mit der Art von Fehlersuche in einem STRUTS vergleichen kann, wird sehr schnell verstehen, welche Vorteile Seaside bringt. Anstatt zu raten, wo man gerade ist, und in welcher XML-Konfiguration dies so verdrahtet hätte sein können, schaut man der Anwendung einfach Schritt für Schritt dabei zu, wie sie da hingekommen ist, wo sie nun steht. Und das im Extremfall sogar direkt im Webbrowser… Da hält kein “irgendein x” mehr mit.

  2. Ja, Seaside ist etwas neues und auch etwas gutes, die Frage aber ist, wo denn wirklich die Einsatzgebiete liegen.

    Kleine Firmenwebsites oder solche Dinge sind mit irgendeinem PHP/Ruby/Perl-CMS sehr schnell realisiert.

    Gut, dafür ist Seaside aber auch nicht gedacht, aber solche kleinen Projekte bringen halt auch ein bisschen Geld und verbreiten den Namen.

    Wo liegen dann also die Stärken von Seaside?

    Ich kann Logik direkt im Code abbilden und muss mich nicht wirklich um HTTP kümmen.

    Das ist schön, das ist toll, das bedeutet aber für viele Entwickler ein Umdenken nach 10 Jahren Grübeln über HTTP-Post…

    Ich bin mir nicht sicher, wie VA davon profitieren wird;
    Ich denke, VA als Logik-Blackbox welche einen -getriebenen Webserver beliefert wäre der sinnvollere Ansatz…

Comments are closed.