[lisp-hh] Einladung Oktober Stammtisch in der FH Wedel

Rainer Joswig joswig at lispmachine.de
Sun Oct 12 19:47:26 UTC 2008


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 at common-lisp.net
> http://common-lisp.net/mailman/listinfo/lisp-hh





More information about the lisp-hh mailing list