Vom drittbesten Scheme der Welt - Gambit Scheme System - gibt es eine neue Beta für die Version 4.0. Besonders interessant an Gambit-C ist - neben der hohen Performance des Codes - die wirklich geniale Threading-Implementation. Es werden normale Scheme Continuations benutzt und darauf dann ein Dispatcher aufgesetzt. Als Ergebnis brauchen Threads unter Gambit-C fast keinen Speicher (in einer 2G Maschine kann man ohne Probleme über eine Million Threads laufen haben) und Resourcen (und ja, das Switchen bei der Million von Threads ist ebenfalls recht ordentlich). Als Ergebnis ist Gambit-C für massives Multithreading auf Single-Prozessor-Systemen die absolute Nummer 1 - und Webserver lieben viele Threads.
Und bevor jemand fragt: das beste Scheme ist natürlich PLT Scheme (Dr. Scheme) und das Zweitbeste ist Chicken Scheme - denn Chicken Scheme hat immer noch nach PLT Scheme die beeindruckendste Library an mitgelieferten Code. Gambit-C könnte sich da gut einiges abgucken und mehr Libraries mitliefern, denn Libraries sind erst das, was die Sprache wirklich benutzbar macht. Im Moment ist es da bei Gambit-C doch noch arg duster.
Übrigens ist auch die Lizenz endlich gelöst: man kann jetzt bei Gambit-C zwischen LGPL und Apache Lizenz wählen, was wirklich alle Lizenzdiskussionen erübrigen sollte.
HB Jan. 9, 2006, 9:37 p.m.
Da sollt man vielleicht noch erwähnen, daß PLT-Scheme sowas wie Packages/Namespaces mit "module" unterstützt. Namespaces gibt's bei Gambit zwar auch, aber nur als undokumentiertes Feature. Für ernsthafte Projekte ist so ein Mechansismus in halbwegs anständiger Form einfach notwendig, selbst wenn die konkrete Implementierung vielleicht nicht so toll ist wie die eventuelle, zukünftige in R6RS, hier ist ganz klar "worse better than good". "Worse" soll jetzt allerdings keine Aussage über den Modul-Mechanismus von PLT-Scheme sein soll, eher eine über Standard-Scheme im Vergleich zu anderen Programmiersprachen. Wie's da bei Chicken aussieht, weiß ich nicht.
Gruß HB
HB Jan. 9, 2006, 9:46 p.m.
hmm, ich glaube den Satz habe ich nicht ganz richtig hinbekommen, anstatt "eher eine über Standard-Scheme im Vergleich zu anderen Programmiersprachen" sollte es wohl eher heißen: "ehere eine über manch andere Programmiersprachen im Vergleich zu einer perfekten Lisp-ähnlichen Programmiersprache". Oder man streicht den Teil nach dem Komma einfach.
hugo Jan. 10, 2006, 12:18 a.m.
Naja, Gambit-C 4 ist ja halt noch Beta, das trifft auch die Dokumentation. Es gibt aber definitiv erste Ansätze an Dokumentation für die Namespaces - auch wenn die fast nur auf Verweise auf die Beispiele bestehen ;-)