Webapps a la Seaside

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ich will versuchen, die Essenz von Seaside in Python-Syntax zu übertragen.

Anwendungen werden aus Komponenten zusammengesetzt. Klassen beschreiben diese Komponenten. Die Klassen werden an URLs gebunden. Wird so eine URL angesprochen, wird eine neue Komponente erzeugt und für diesen Anwender in eine Session gepackt, wo sie solange lebt, die Session explizit oder durch einen Timeout beendet wird.

Leider spielt BBCode nicht mit und die Fortsetzung befindet sich auf http://gist.github.com/112212, auch wenn mir da das Syntax-Highlighting fehlt.

Stefan
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

Interessanter Ansatz, aber irgendwie rennst du da permanent gegen die Limitierungen von Python(keine Continuations, keine „richtigen“ anonymen Funktionen, Funktionen nicht serialisierbar). Vor allem, dass man keine Continuations hat, stört schon, das ist imo eigentlich die Quintessenz bei Seaside(klar kann man da drumherumprogrammieren, aber elegant ist das nicht). Wäre Stackless keine Alternative?
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Stackless kann Continuations und ich meine, ich hatte dazu auch schon mal was geschrieben. Ich glaube allerdings, Stackless kann seine Continuations nicht serialisieren - das wäre dann immer noch nicht so gut genug.

Ich hätte ebenfalls Continuations als Essenz von Seaside bezeichnet, doch intereressanterweise sind sie bei Version 2.9 nur noch optional (damit mehr Smalltalk-Dialekte unterstützt werden - Seaside für Newspeak wäre mal interessant) und damit wohl aus Sicht der Entwickler kein essentieller Bestandteil. Dort zählen die Komponenten mehr.

Ansonsten: Das mit den Limitierungen ist richtig, aber wohl notwendig, um zu wissen, wo nun eigentlich wirklich die Vorteile der verschiedenen Sprachen sind. Wäre ich besser in Ruby, würde ich mal 1.9 mit fibers als leichtgewichtige Coroutinen-Implementierung ausprobieren wollen).

Stefan
Antworten