Vor einer Weile wurde in comp.lang.lisp die Veröffentlichung eines Projekts namens CL-ObjC angekündigt . CL-ObjC ist, wie mein eigenes Objective-CL, eine freie Objective-C-Bridge für Common-Lisp-Systeme. Im Vergleich zu Objective-CL

  • ist sie BSD-lizenziert (ObjCL unterliegt momentan der GPLv3, aber ich denke, daß ich in Zukunft die LLGPL verwenden werde -- oder um es zurückhaltender zu formulieren, »ein möglicher Umstieg auf die LLGPL wird geprüft« :)),

  • kann Objective-C-Klassen und -Methoden erzeugen (ObjCL ist dazu noch nicht in der Lage),

  • ist ausschließlich in Lisp geschrieben (ObjCL teilweise in Objective-C),

  • und hat eine Art Handbuch,

aber dafür

  • hat sie keine Unterstützung für Exceptions (ObjCL kann Objective-C-Exceptions auffangen und in Lisp-CONDITIONs kapseln),

  • kann structs nur über einen üblen, unportablen Hack übergeben und empfangen,

  • hat keine Speicherverwaltung (d.h. es wird bei der Verwendung vermutlich zu Speicherlecks kommen),

  • ist ihre Referenzdokumentation knapper,

  • ihr API größer und expliziter (z.B. gibt es keine designators für solche Dinge wie selectors, welche stattdessen explizit erzeugt werden müssen), und vor allem

  • läuft sie ausschließlich unter Mac/x86 (ObjCL läuft hingegen nicht nur unter Mac OS X, sondern auch einer Menge GNUstep-Plattformen).

Meine Antwort auf eine Anfrage des Projektverwalters von CL-ObjC dokumentiert grob einige Aspekte des inneren Aufbaus von Objective-CL und könnte daher auch für ObjCL-Fans vonnutzen sein, die sich nicht für das »Konkurrenzprodukt« interessieren.

Hoffentlich können die beiden Projekte in Zukunft gut zusammenarbeiten und Code austauschen.