Am 12.10.2008 um 19:02 schrieb Jens Teich:
Hallo Lisper in und um Hamburg,
habe soeben die Bestätigung von Ulli erhalten, dass der Oktober-Stammtisch am 29.10. um 19h in der FH Wedel stattfinden kann. Details zum Ort (Wegbeschreibung, Treffpunkt) folgen noch.
Folgende Vorträge sind angeboten:
Rainer Joswig: CLIM (Bitte Rainer: einige erklärende Worte für diejenigen, die kaum etwas davon wissen wie ich).
Gerne:
CLIM steht für Common Lisp Interface Manager.
Es ist eine Bibliothek um graphische Benutzerschnittstellen zu schreiben. CLIM wurde ca. 1989-1992 von einer Gruppe von Firmen entwickelt: insbesondere von Symbolics, ILA, Lucid, Xerox und Franz. CLIM basiert auf den Ideen von 'Dynamic Windows', einer Benutzerschnittstelle, die Symbolics Mitte der 80er entwickelt hatte. CLIM sollte aber portabel sein. Es sollte auf verschiedenen Common-Lisp-Implementationen laufen und auch verschiedene Window-Systeme unterstützen (Windows, X11, Mac, Dynamic Windows und andere). Entsprechende Implementationen sind auch entwickelt worden. Es gibt eine Spezifikation für CLIM. In den letzten Jahren ist CLIM und die ursprüngliche CLIM-Implementation aber nicht mehr so intensiv genutzt worden. Es gibt allerdings noch ein paar Nutzer. Man bekommt von Franz und LispWorks noch diese CLIM-Implementation. LispWorks und Franz haben aber eigene Bibliotheken (CAPI und Common Windows) und benutzen diese - und nicht CLIM. Es gelang auch nicht die CLIM-Implementation als Open-Source zu veröffentlichen. Einzelne Firmen stellten den Kunden zwar Source zur Verfügung, aber es war kein 'Open Source' im Sinne von 'Public Domain' oder 'GPL'.
So um 2002 fand sich ein Projekt (nach länglichen Diskussionen), das eine CLIM-2-Implementation komplett neu nach der CLIM-Spezifikation schreiben wollte. Das Ergebnis ist McCLIM - Open Source und verfügbar unter der LGPL- Lizenz. McCLIM läuft unter verschiedenen Common-Lisp-Implementationen, unterstützt aber nur ein Window-System bisher brauchbar: X11. Es gibt Versuche, auch andere Window-Systeme zu unterstützen - die sind aber noch nicht wirklich weit. McCLIM fehlt auch noch an einigen Ecken diverse Funktionalität. Dafür haben aber Entwickler einige spannende neue Sachen ausprobiert und es gibt auch ein paar Anwendungen, die mit McCLIM implementiert wurden: einen Web-Browser, ein Notensatzprogramm, einen Emacs-Editor...
CLIM ist gleichzeitig schwierig und interessant. Es ermöglicht die Implementation von konventionellen Benutzerschnittstellen. Interessant wird es aber, wenn ein paar Eigenheiten benutzt werden, die ungewöhnliche Benutzeroberflächen ermöglichen, die man sonst nur mit hohem Aufwand erstellen kann. Kritisch muß man anmerken, dass es für konventionelle Oberflächen nicht ausgereift genug ist und das die unkonventionellen Schnittstellen eben auch so ungewöhnlich sind, daß sich z.B. Windows-Benutzer damit etwas schwer tun. Die Programmierung mit CLIM setzt Kenntnisse in Common Lisp und fortgeschrittene Kenntnisse in CLOS voraus. In der gegenwärtigen Phase der Wiederentdeckung von Common Lisp gibt es auch Fragen nach einer freien und portablen Bibliothek zur Erstellung von graphischen Benutzerschnittstellen. CLIM bietet interessante Konzepte, ist aber - wie auch Common Lisp selbst - nicht ganz einfach zu lernen und zu nutzen. Die mächtigen Konzepte basieren auf recht komplizierten Implementationen. Die ungewöhnlichen Konzepte und die konsequente Nutzung von CLOS machen es aber hinreichend unverwechselbar, so dass Alternativen zwar existieren, es aber nicht wirklich ersetzen können. Einer der besonderen Eigenschaften von CLIM ist, daß man Benutzeroberflächen mit 'Semantik' ausstatten kann und schon mit wenig Aufwand starten kann.
CLIM bietet u.a.:
* eine Aufteilung in portables Frontend und plattformspezifisches Backend * komfortable CLOS-basierte APIs und Implementationen * ein Grafikmodell an Postscript angelehnt * Formatierung von Ausgaben (Tabellen, Graphen, ...) * Aufzeichnung von Ausgaben als Lisp-Objekte * einen Kommandointerpreter * Presentations zur Interaktion mit Domänenobjekten * Windows, Panes, Layouts, Gadgets, ...
und vieles mehr.
Was ist besonders interessant?
* es ist portabel und sehr objekt-orientiert * es ist adaptiv (die Benutzeroberfächen passen sich in bestimmten Bereichen an das Windowsystem an) * es bietet viele High-level Konzepte (Gesten, Presentations, ...) * es bietet Verallgemeinerungen von Benutzerinterfaces als CLOS- Klassen - einer Art Meta-Objekt-Protokoll für Benutzeroberflächen
Ich werde etwas über die Grundkonzepte erzählen und anhand von einer Beispielapplikation mal zeigen, wie das dann im Code aussieht.
Links:
* McCLIM: http://common-lisp.net/project/mcclim/ * McCLIM wiki: http://mcclim.cliki.net/ * CLIM 2 Spezifikation: http://bauhh.dyndns.org:8000/clim-spec/index.html * LispWorks CLIM User Guide : http://www.lispworks.com/documentation/lw51/CLIM/html/climuser.htm
Wer mit CLIM experimentieren möchte, der sollte entweder die Implementationen von Franz oder LispWorks nutzen, oder sich McCLIM holen und installieren. McCLIM kommt mit Source Code und einer Menge von Beispielen (z.B. einem maussensitiven Lisp Listener) ...
Falls es zu CLIM besondere Fragen gibt, da schickt mir diese Fragen zu - dann kann ich die vielleicht in meiner kleinen Präsentation berücksichtigen...
Stefan Richter: Bericht von einem Projekt, dass parallel in Lisp und Java (?) gelöst wurde.
Essen und Trinken kann im Anschluss an die Vorträge in einem Restaurant in Wedel erfolgen.
Bitte um Voranmeldung über diese Liste, dass Ulli nicht vom Ansturm erschlagen wird.
Ich komme auch. ;-)
Gruß,
Rainer
Ich bin gespannt.
Gruss Jens
lisp-hh site list lisp-hh@common-lisp.net http://common-lisp.net/mailman/listinfo/lisp-hh