lisp

sharplispers/cormanlisp. Schon lange nix mehr gelispelt. Corman Lisp - seiner Zeit eine der coolsten Implementierungen von Common Lisp auf Windows - ist jetzt Open Source und auf github. Allerdings brauchts wohl erst noch einiges an Überarbeitung, bevor es auf modernen Windows-Versionen wieder einwandfrei funktioniert. Aber ein erster Schritt ist ja jetzt gemacht, mit der Source-Freigabe.

FriCAS - an advanced CAS. Habe ich ein bischen aus den Augen verloren - FriCAS ist ehemals Axiom, ein ziemlich weit ausgebautes Mathematik-Paket ala Mathematika, geschrieben in Common Lisp. Gibts für verschiedene Systeme, etwas spröde in der Oberfläche (halt eine Kommandozeile), aber sehr mächtig. Und etwas moderner als vielleicht Maxima (wobei für Maxima gibt es GUI Optionen, keine Ahnung was FriCAS da zu bieten hat). Wie jedes anständige Open Source Projekt ist es natürlich nur der Fork eines Forks - unter Open Axiom gibt es ein weiteres Projekt und unter Axiom wird der ursprüngliche Code weitergeführt. Wobei für mich das seit Sage (und eigentlich sogar noch viel mehr seit Anaconda und IPython Notebooks) alles nicht mehr so hohe Relevanz hat - in der Regel sind meine Anforderungen auf deutlich niedrigerem Niveau und mit den über IPython und Python verfügbaren Libraries schon abgedeckt. Klar ist Mathematica und ähnliches immer noch spannend - aber die Motivation die Pakete zu starten und sich in die doch recht andere Syntax-Welt zu begeben ist eher gering. Python hat halt den good-enough Status schon lange erreicht.

part-cw/lambdanative. Interessant - eine Cross-Plattform Programmierumgebung mit Zielen auf Android, iOS, OSX, Linux, Windows und BSD. Basierend auf Gambit-C, einem ziemlich guten (und schon recht lange verfügbaren, also auch "erwachsenen") Scheme Compiler.

"3 windows builds have been performed on win95. There is an as yetunidentified runtime error running the 2.6.9 images on win7. Moreinformation here will be forthcoming shortly." - [[[Gcl-devel]] GCL 2.6.8 and 2.6.9 are released](http://lists.gnu.org/archive/html/gcl-devel/2013-08/msg00011.html). Abgesehen davon, dass ich dachte es wäre schon lange tot (ein "paar" Jahre hat der Release ja gedauert), schon lustig, dass jemand noch heute Builds für Windows unter Windows 95 macht ...

Updated Cocoa Contrib. Wow - CCL bekommt damit ganz neue (und deutlich erweiterte) Möglichkeiten unter OSX GUI Programmierung zu machen. Das wächst so langsam.

davazp/jscl · GitHub. Wow, beeindruckend. Ein Common Lisp, das als REPL im Browser läuft. Spannend daran ist, wie vollständig das ist - nach einem (defun anton (a b) (+ a b)) ging direkt ein (disassemble #'anton) ohne Probleme und lieferte mir den generierten Javascript Code. Auch andere Konstrukte aus der CL Welt laufen problemlos. Definitiv weiter beobachten, könnte spannend werden (z.B. ein JSCL auf Node.js?).

lein-droid Wiki. Bin ja mal wieder am Rumspielen mit Alternativen zur nackten Android-Java-Programmierung und das hier wäre ein interessanter Kandidat, da man mit Clojure rumspielen kann.

Write Yourself a Haskell... in Lisp 17 February 2013. Sowas begeistert mich ja immer, auch wenn ich zugeben muss, dass ich aller Wahrscheinlichkeit nach nix damit machen werde. Trotzdem, interessant zu lesen.

Moby ist ein Paket für Racket mit dem man Android Programme erzeugen kann. Integriert in DrRacket hat man auch gleich eine passende IDE in der das meiste auch getestet werden kann. So viel auszuprobieren, so wenig Zeit.

Clojure/core — Reducers - A Library and Model for Collection Processing. Warum eine neue Library? Weil die Standardfunktionen zwar interessant und sinnvoll sind, aber man eben manchmal doch eine striktere Implementierung braucht, die z.B. zwischendurch generierte temporäre Collections vermieden werden und eine direkte out-of-the-box Unterstützung für Parallelisierung geliefert wird. Ohne große Handstände und Umstände, nur ein anderer Namespace.

mtravers/heroku-buildpack-cl. Und noch so ein Lisp-Link - hier hat sich jemand auf Herokus buildpack-capable stack gestützt und für Clozure CL ein Buildpack aufgebaut, so dass man darüber auch Common Lisp in die cloud stellen kann. Wobei das dann weniger Ähnlichkeit mit Google App Engine hat, sondern wohl eher mit sowas ähnlichem wie Amazon EC2.

Ganz tief drinnen bin ich ja immer noch ein Lisp-Fan. Deshalb ist der ecl-iphone-builder von Terje Norderhaug für mich sehr interessant - damit kann man eine Version von Embeddable Common Lisp für das iPhone oder iPad compilieren und dann über XCode auf ein iOS Gerät bringen, dort einen Swank-Server starten und dann remote connecten - und dann mit Lisp auf dem iPhone rumspielen oder programmieren. Ok, die Anbindung an die OSX APIs ist noch ein bischen spröde.

Practical Common Lisp - Crawling InterfaceLift with Common Lisp - second try. Interessanter Durchlauf eines einfachen Projektes in Common Lisp bei Einsatz von Quicklisp. Mach wirklich einiges einfacher als wenn man roh in CL programmiert und die ganzen Pakete und Systeme von Hand verwaltet. Das Beispielscript sollte man allerdings nicht unbedingt laufen lassen, denn es verstößt gegen die Nutzungsbedingungen von Interfacelift (und ist nicht wirklich nett zu deren Servern).

Mac App Store - Clozure CL. Eine der netteren freien Common Lisp Implementierungen ist jetzt im App Store bei Apple. CCL ist im Prinzip die freie und portable Variante des alten Macintosh Common Lisp, mit einer Integration in Objective C Frameworks. Also durchaus interessant damit rumzuspielen wenn man sowohl Lisp als auch Cocoa mag.

Elnode - an Emacs version of node.js. Mal wieder ein Projekt aus der Klasse "weil es geht" - ich glaube jedenfalls nicht, dass irgendjemand auf die Frage "wie will ich meine Webservices betreiben" als Antwort spontan "Emacs" sagen würde. Aber nunja, das Betriebssystem mit eingebauten Basisfunktionen zur Textverarbeitung kann eben auch einen asynchronen Webserver darstellen.

manuel/edgelisp. Weil ich nie die Finger von Klammern lassen kann - ein Common Lisp Dialekt und dessen Implementation, die nach JavaScript compiliert un den Lisp-Code im Browser ausführbar macht. Macht einen recht vollständigen Eindruck - viele andere Projekte zeigen nur die rudimentären Elemente, aber hier gibts auch schon generische Funktionen und Makros.

What Is Inside A Cat. Ein sehr interessantes Dokument, das die Implementierung von Wraith Scheme sehr detailliert beschreibt, speziell auch die Implementierung der parallelen Prozesse.

Clack - Web Application Environment for Common Lisp. Das sieht endlich mal richtig nett und schlank aus - die meisten Common Lisp Webframeworks sind mir einfach zu groß, zu kopfig. Das hier sieht sehr viel pragmatischer aus, ein simples Routing, ein schlanker Request und eine Funktion die drauf reagiert. Da könnte man mal mit rumspielen, Installation ist dank Quicklisp trivial (was bin ich froh, dass es jetzt Quicklisp gibt, das asdf-install Gehampel war wirklich nervig). Vom Ansatz erinnert es etwas an Turbogear für Python - es werden diverse vorhandene Libs mit Clack gebündelt, sozusagen ein schlankes Web-best-practices. Ein Applikationsframework das in dem minimalen Environment auch läuft, gibt es mit Caveman auch schon.

AI art | painting robot | art | expert systems. Mal was anderes - ein richtiger Roboter der mit Lisp (also zumindestens das Prototyping) gesteuert mal. Also nicht so ein virtueller Roboter ala Turtlegrafik, sondern richtige Hardware die sich bewegt.

xmlisp - eXtreme Media Lisp: Rich media cross-platform programming for 3D (OpenGL) and 2D applications. Hatte ich glaube ich schon mal, bin mir aber nicht sicher. Egal, Wiederholungen sind ja nix ungewöhnliches, und das hier ist wirklich interessant - eine Lisp-Umgebung mit besonders guter Unterstützung für 2D und 3D Daten. Hat noch eine ganze Menge mehr auf der TODO - das Ziel ist eine Lisp-Umgebung speziell für Spieleprogrammierung und andere grafische, interaktive Programme. So ein bischen wie Processing.

MilkPack - Edgar Gonçalves. Interessantes Projekt das eine Taskliste implementiert, die mit Remember-the-Milk im Internet kommuniziert. Das interessante daran: es ist in Common Lisp geschrieben und nutzt intensiv die Objective-C Bridge für OpenMCL.

dyoo/moby-scheme. Noch eine interessante Sache für Android: ein PLT Scheme (also Racket) Dialekt und eine passende Toolchain um aus Racket Advanced Student Language + World Primitives (ASL ist ein schon recht weit gehender Scheme-Dialekt in Racket und die World Primitives sind für reaktives Programmieren in Scheme) erstellte Anwendungen in JavaScript laufen zu lassen und diese dann zu Androit-Anwendungen zu bündeln. Also Programmierung von Android-Handys in einem reaktiven Scheme-Dialekt. Oder noch kürzer: Klammern für Android.

spock - The Chicken Scheme wiki. Wem Dylan auf JavaScript nicht passt, wie wäre es mit Scheme? Interessant hieran ist die Verbindung zu Chicken Scheme - chicken scheme ist eine der interessanteren Scheme-Implementierungen der letzten Zeit die sich speziell der Integration in normale Systemumgebungen widmet (FFI und einfaches Linken mit C-Libs), von daher lässt das auch ein bischen was von Spock in Bezug auf JavaScript erwarten. Und die dokumentierten Funktionen schauen auch schon recht gut aus - nicht einfach nur eine Spielzeugimplementierung, sondern scheinbar schon eine Menge von Funktionalität.

turbolent/ralph. Und wem dann unter Flusspferd das JavaScript zu blöd wird, der kann ja einfach Ralph installieren und hat dann ein Dylan-ähnliches Lisp, das seine Funktionsdefinitionen nach JavaScript compiliert. Warum auch immer man das wollen würde, vielleicht einfach nur weil es geht.

IronScheme. Interessant - ein Scheme für .NET. Und im Gegensatz zu einigen toten Projekten die ich gefunden habe, scheint hier auch noch was zu passieren. Ok, ich selber tendiere warscheinlich eher zu IronPython, F# oder wenn es Lisp sein soll, Clojure für .NET (davon gibts mitlerweile auch recht aktuelle binäre Pakete zum Ausprobieren, leider wohl derzeit nur Windows, jedenfalls spuckt es unter Mono Fehler aus).

ABCL - Release notes v0.25. Neue Version raus und ABCL entwickelt sich immer mehr in eine wirklich brauchbare Common Lisp Implementation. Dadurch, dass es auf der JVM läuft, hat man auch leichten Zugriff auf viele Libraries (sofern man es denn will) und seit 0.24 läuft auch Quicklisp sauber mit ABCL und damit hat man auch leichten Zugriff auf viele Common Lisp Libraries. Bei den CL Libraries hakt es aber leider etwas, da viele Programmierer ABCL nicht berücksichtigen (und gerade im CLOS Bereich noch Defizite sind).

Feeding the Bit Bucket» Blog Archive » Common Lisp, Clojure and Evolution. Nein, Clojure wird nicht als Evolution von Common Lisp beschrieben - das ist einfach das Beispielprogramm "Evolution" aus dem Buch "Land of Lisp" in Clojure übersetzt von jemandem der mit dem Buch Clojure lernt indem er eben alle Beispiele in Clojure realisiert mit der Common Lisp Code als Basis. Und von daher eine gute Vergleichsmöglichkeit zwischen Clojure und Common Lisp. Vielleicht ja für 2 oder 3 Leser meines Blogs interessant. Ansonsten für mich als Blogmark um später wieder draufzugucken.

Introduction to Pharen. Ein Lisp, welches nach PHP kompiliert. Weird. Ok, könnte praktisch sein, wenn der Hoster nur PHP als Serversprache anbietet. Aber trotzdem. Weird.

Genau. Wenn man schon sowas langweiliges wie "warum generic functions und nicht single-object-dispatch" erklären will, dann mit solchen Beispielen:

A short example: Imagine you have a class human which is inherited by a class male and female. Now as we all have an urge to reproduce where to put a method for having sex? Create a method haveSex in the human class, duplicate it in male or female? What would the argument to such a class be? What about having sex with people of the same sex, toys, animals, buildings...

via /dev/random - Random Thoughts On Programming In Parentheses - Coops - An introduction to chicken scheme's object system.

App Development Tools Contrib - Jawoll! Das ist eine Sache auf die viele gewartet haben - bessere Werkzeuge für OSX Programmierung mit CCL direjt in der IDE. Ich hoffe die nächste Release von CCL ist bald stable und enthält diese Tools.

CLPython - an implementation of Python in Common Lisp. Einfach weil es zwei meiner Lieblingssprachen verheiratet und pure-Python-Libraries für Common Lisp verfügbar macht. Viellericht sieht jetzt der eine oder andere wohin meine Suche geht - den Kuchen essen und ihn behalten. CLPython ist übrigens zu Python 2.5 kompatibel, also sogar ein recht aktueller Sprachlevel (auch wenn mir sicherlich einige Sachen aus 2.6 fehlen werden, aber das ist bei PyPy nicht anders).

FSet on Common-Lisp.net liefert auch funktionale Datenstrukturen. Diese Library ist auch in Quicklisp verfügbar, also einfacher zu installieren. Und sieht sehr interessant aus.

CL-STM ist einfach Software Transactional Memory für Common Lisp (ja, ich gucke derzeit auf CL-alternativen für diverse Clojure-Features).

CLAZY: Lazy Calling in Common Lisp bietet erweiterte lazy-evaluation für Common Lisp die über das übliche delay/force Pärchen hinaus geht.

Funds liefert voll funktionale Datenstrukturen für Common Lisp. Gerade für multi-threaded Code kann das sehr hilfreich sein. Leider noch nicht in Quicklisp drin.

Welcome to WuWei. Interessante Common Lisp Library, die Ajax User Interfaces rein in Common Lisp programmierbar macht, ohne sich mit der Umsetzung auf JavaScript rumschlagen zu müssen. Allerdings leider nicht für meine präferierte JS-Library jQuery, sondern für Prototype und Scriptaculous.

slimv.vim - SLIME-like Lisp and Clojure REPL inside Vim with Profiling, Hyperspec, Paredit. Ganz interessant, da deutlich leichtgewichtiger und simpler zu installieren als Slime oder VimClojure oder eine der anderen dicken Lösungen. Und man kann einfach aus Vim heraus Common Lisp oder Clojure programmieren. Ist zwar derzeit nur im "rumspielen und gucken" Modus, aber klingt durchaus interessant.

Als Gedankenstütze geblogmarkt: Zach's Journal - Making a small Lisp project with quickproject and Quicklisp. Einfach weil ich sonst quickproject und ähnliches eh wieder vergesse. Mit Clozure CL 1.6 tuts auch Quicklisp recht vollständig (speziell ist cl-fad funktionsfähig und daher kann man einen grösseren Stapel von Paketen endlich zum Fliegen kriegen). So langsam kriegt Zach einen Stapel von Tools zusammen für Common Lisp, mit dem es dann doch wieder Spaß macht damit rumzuspielen. Auch wenn ich warscheinlich nie der große Emacs-Fan werde, egal wie sehr andere auf das Teil für Lisp schwören.

Pixie Scheme III. Für das iPad. Zum Rumdoodlen vielleicht nicht ganz uninteressant (sofern es auch brauchbare Integration in das iOS API hat).

ninjudd's cake at master - GitHub - ob ich mir das mal angucken will? Gerade wegen der persistenten JVM bei Nutzung von Scripten könnte das interessant sein.

JazzScheme - huch? Scheint komplett an mir vorbeigegangen zu sein - es gibt eine IDE für Gambit Scheme die auf mehreren Plattformen läuft und Binaries für OS X, Windows und Linux erstellen kann.

Quicklisp - get started with Common Lisp libraries, quickly - Zach Beane will endlich das Problem der recht chaotischen Library-Situation für Common Lisp beheben und baut an einem zentralen Repository für Libraries mit einfacher Installation auf verschiedenen Lispsystemen. Im Prinzip sowas wie PyPi oder CPAN. Was generell sehr interessant ist - nur wäre es noch interessanter, wenn es irgendwo auf der Site oder der Gruppe oder dem GitHub einen Hinweis gäbe, wie man es eigentlich zum Laufen kriegt und mit welchem Common Lisp ... (ok, ist noch sehr früher Entwicklungsstatus, aber trotzdem - einzige Dokumentation ein Screencast? Hallo?)

nakkaya's static at master - GitHub - statischer Generator für Websites in Clojure.

JEmacs - the Java/Scheme-based Emacs - nur so for future curiosity geblogmarkt.

liebke's clj - ah, jemand hat Paketinstallation und eine anständige REPL für Clojure zusammengeworfen, so dass man auch mal eben schnell interaktiv mit Clojure rumspielen kann, ohne jedesmal ein Projekt anlegen zu müssen. Ganz praktisch um mal fix mit irgendwelchen Java-Libs rumzuprobieren. Macht intern nix anderes als ein verstecktes Leiningen-Projekt anzulegen und zu verwalten, ist also eher Kosmetik, aber die richtige Art von Kosmetik

Racket Released - PLT Scheme hat einen neuen Namen und ein neues Release. Und ist immer noch die coolste Scheme Umgebung.

Henry's EuLisp - da hat jemand EuLisp wiederbelebt und die Sourcen zusammengetragen, sowie die Spezifikation. Mindestens historisch interessant, denn EuLisp war eine der Standardbemühungen für ein moderneres Lisp mit recht guten objektorientierter Unterstützung. Aber auch die Implementierung selber hat einige interessante Features.

clojure-python - interessantes Projekt das die Interoperabilität zwischen Jython und Clojure vereinfachen will und auf einen ähnlichen Level heben will, wie sie zwischen Clojure und Java schon ist. Besonders interessant für mich, weil es mir dann erlauben würde, stärker auf Clojure als Alternative zu setzen - Jython ist schon geplanter Baustein der Werkzeugkiste, hat aber einige Performance-Probleme die Clojure durch direktere Java-Integration nicht hat. Ausserdem schreib ich lieber kompakten Lisp-Code als geschwätziges Java ...

Bill Clementson's Blog: Elephant and Rucksack - Comparison of two CL Open Source Prevalence packages - weil es mich auch im Moment mal wieder interessiert, etwas Common Lisp. Elephant und Rucksack sind wohl die interessanteren Persistenz-Lösungen für Common Lisp im Moment. Rucksack ist leider nicht asdf-install-tauglich, da ist viel Handarbeit nötig.