programmierung - 12.7.2004 - 30.8.2004

Visual Studio Magazine - Guest Opinion - Save the Hobbyist Programmer

Ein schon älterer, aber interessanter Artikel der auf ein wichtiges Problem hinweist: Hobby-Programmierer werden immer mehr ausgeschlossen aus der Erstellung von kleinen Hacks und einfachen Lösungen durch die immer komplexeren Systeminterfaces und ständigen Wechsel von APIs und Programmierwerkzeugen in der Windows Welt. Und das ist nicht nur die Windows Welt, die davon betroffen ist. Linux und OS X leiden teilweise genauso darunter.

Klar, es gibt immer noch kleine Helfer mit einfacher Programmiermöglichkeit. Oder Scriptsprachen, die leicht zu lernen und zu benutzen sind - z.B. Python. Aber das ist nicht wirklich eine Lösung für diese Bastler. Was für Hobby-Bastler früher das omnipräsente Basic war, oder zum Beispiel die - wenn auch kranke - Sprache in DBase, das fehlt heute. Kaum noch eine Programmierumgebung die nicht ohne Objektorientierten Ansatz daher kommt. Kaum noch Lösungsansätze die nicht versuchen gleich eine allgemeine Entwicklungsumgebung für komplette Programme zu sein.

Nette Ausnahmen gibts noch - FileMaker auf dem Mac versucht immer noch den Hobby-Hacker anzusprechen. Aber es stimmt trotzdem: die einfachen Einstiege werden weniger.

Selbst AppleScript ist auf dem Mac mitlerweile dermaßen komplex und überfüllt worden, das es kaum noch einem Seiteneinsteiger möglich ist damit gleich mal loszulegen. Einige Ecken von AppleScript sind selbst für alte Programmierhasen wie mich obskur und kompliziert. Dazu kommt natürlich, das es für die ganzen Scriptsprachen zwar viele tolle Möglichkeiten der Integration von Anwendungen gibt - aber gerade diese Teile ausgesprochen mies dokumentiert sind.

Um beim Beispiel AppleScript zu bleiben: zwar gibt es die Anwendungsdictionaries, in denen die AppleScript-Fähigkeit eines Programms dokumentiert wird, aber nahezu alle dort abgelegten Beschreibungen die ich bisher gelesen habe gingen davon aus, das der Nutzer schon komplettes und weitgehendes Wissen über AppleScript und die AppleScript-Strukturen hat (was sind Objekte in AppleScript, wie arbeitet man mit Containern etc.). Obwohl also diese Dictionaries genau dem Hobby-Programmierer als Startpunkt dienen könnten, werden sie von den Erstellern (und das sind die Profi-Programmierer in den Softwarehäusern) so gestaltet, das oftmals sogar nur sie selber damit was anfangen können.

Ähnlich in der Linux-Welt. TCL war mal die Standardscriptsprache für den einfachen Einstieg mit simpler Struktur, geradezu primitivster Erweiterungsschnittstelle und der Möglichkeit selbst für Nicht-Programmierer schnell zu Lösungen zu kommen. Heute besteht TCL in der Standardauslieferung (die dann netterweise oft Batteries-Included heisst - nur dummerweise fehlt die verständliche Anleitung) schon aus Bergen von Paketen, von denen eine ganze Reihe sich mit Metasprachenaspekten beschäftigen (z.B. incrTCL und den darauf und auf TK aufbauenden Widget-Libraries - herrjeh, allein in diesem kurzen Hinweis auf den Inhalt sind mehr für einen Einsteiger unverständliche Wörter drin als Füllwörter), die ein Einsteiger nie kapieren wird.

Und auf die desolate Situation unter Windows mit dem Scripting-Host und den OLE Automation Schnittstellen (oder wie auch immer die Dinger heute heissen werden) brauche ich garnicht eingehen - wer da einmal einen Versionswechsel einer Anwendung mitgemacht hat und seine komplette Lösung komplett neu schreiben durfte dank des totalen Wechsels des Scripting-Modells von zum Beispiel Access, der weiss wovon ich rede.

Letzten Endes nehmen wir (wir == professionelle Programmierer) damit den Endanwendern ein Stück Freiheit weg - die Freiheit rumzuspielen und ja, auch die Freiheit sich selbst in den Fuss zu schiessen. Und ich denke, das gerade in der Welt der freien Software die Programmierer anfangen sollten hieran wieder mal ein paar Gedanken zu verschwenden. Es ist ja nett, das nahezu jedes grössere Programm irgendeine Scripting-Sprache einbettet. Aber weniger nett ist, das nahezu garkeine dieser Einbettungen eine vernünftige Dokumentation ihrer Möglichkeiten hat und nur primitivste Beispiel sowie Komplettlösungen sehr komplexer Anwendungen als Startpunkt fürs Lernen da sind. Gerade Hobby-Programmierer lernen nun mal am einfachsten durch das Lesen vorhandener Tools. Und ja, auch ich bin da nicht unbedingt ein gutes Beispiel, denn der Python Desktop Server hat zwar eine Reihe von Erweiterbarkeiten, die auch gerade für Endanwender gedacht sind - aber auch ich hab da viel zu wenig Dokumentation geschrieben. Irgendwie schade, denn so werden viele Projekte zu inzestuösen Veranstaltungen, weil die eigentlichen Endanwender aussen vor bleiben. Nein, eine echte Lösung hab ich keine - denn gerade bei freien Projekten ist nunmal die Dokumentationserstellung ein oftmals nerviger und unbeliebter Anteil des Projektes und wird deshalb stiefmütterlich behandelt. Ausserdem sind die meisten Programmierer sowieso nicht in der Lage allgemeinverständliche Dokumentationen zu erstellen. Vielleicht ist das aber auch eine Chance für Projekte, die versuchen die Aktivität in Grossprojekten der Open Source Gemeinschaft auf bisher geringer beteiligt sind. Mir fällt da spontan debian-women ein (da Jutta sich damit derzeit beschäftigt). Denn einer stärkeren Beteiligung von Frauen wäre sicherlich auch Dokumentation und Information die nicht unbedingt einen vollausgebildeten Master-Hacker voraussetzt hilfreich. Schliesslich hat nicht jeder Mensch Lust sein ganzes Leben auf das Lernen von immer neuen APIs und Tools zu verwenden ... Hier gibts den Originalartikel.

USB-Cams: Der K(r)ampf mit der GPL

Schade. Auch der Heise-Ticker hats nicht verstanden. Die Webcam-Nutzer müssten nicht auf dem Trockenen sitzen, wenn der Modul-Maintainer nicht beleidigte Leberwurst spielen und sein armes Ego pflegen würde. Denn als Modul ausserhalb des Kernels wäre es weiter ohne Probleme möglich den Support zu bieten (und wenn die Hardware wirklich so verbreitet ist, würden sicherlich Distributionen wie Suse etc. das in den Distributionskernel mit reinnehmen).

Niemand hat ein festes Anrecht im eigentlichen Kernelsource zu sein mit seinem Modul. Oft macht es nichtmal Sinn - denn manche direkte Kernelsource-Module sind nicht brauchbar gepflegt und damit ein steter Quell des Ärgernis bei Änderung von Kernelschnittstellen.

Und rein binäre Anteile eines Kernelmoduls sind nunmal ein Sicherheitsrisiko, da ihre Funktion nicht überprüft werden kann. Und sie widersprechen direkt der GPL - das hat nix mit überpenibler Auslegung zu tun. Binäre Kernelmodule oder auch nur Anteile daran sind immer ein Problem. Und Hooks, die nur dazu dienen einem solchen Teil den Zugang zum Kernel zu bieten sind nicht unbedingt das was ich unter sicherem Kerneldesign verstehe ...

Bei heise online news gibts den Originalartikel.

librep - Sehr schlanker Lisp-Interpreter speziell für einbettung von Lisp in Programme als Scriptsprache

Lush: Lisp Universal SHell - Interessanter Lisp-Dialekt mit eigenem statisch getypten Lisp-Derivat für effizienten Compiler

mod_rep - Integration von librep (Lisp-Interpreter) in Apache ähnlich mod_perl

SourceForge.net: Projektinfo - Common Lisp JPEG-Bibliothek - JPEG-Encoder/Decoder in Common Lisp

thunk webserver - interessanter Webserver komplett in Scheme - zur Portierung von TooFPy geeignet?

Bigloo homepage - Bigloo ist eine der mächtigsten Scheme Implementierungen mit verschiedenen Codegeneratoren (.NET, JVM und C-Code)

Entwickler und ihr Unverständnis von Open Source

Schon erstaunlich. Hier ist ein Entwickler eines Kerneltreibers für Phillips Webcams. Dieses Kernelmodul funktioniert, aber um vollständig die Kameras zu unterstützen, braucht es ein binary-only Modul. Die Kernel-Entwickler aber haben entschieden mit den binary-only Modulen aufzuräumen. Auch das Phillips Webcam Modul ist davon betroffen. Als Ergebnis hat der USB Subsystem Maintainer einen Hook aus dem Kernel-Modul rausgeworfen, über den das binary-only Modul sich an den Kernel anhängen kann.

Der Entwickler des Moduls heult jetzt rum, das sein Modul dann zum 2. Klasse Modul degradiert würde, weil es nur als extern verwaltetes Modul verteilt werden könnte, aber nicht im Kerneltree direkt - denn ohne den Hook kann ja sein binary-only Modul nicht geladen werden. Aus Trotz wirft er die Brocken hin und will das Modul garnicht mehr unterstützen.

Wo ist jetzt der Denkfehler? Bei den Kernel-Entwicklern, die binar-only Module ablehnen und auch keine Backdoors für binary-only Module im Kernel wollen? Wohl kaum.

Der Modulentwickler könnte einfach sein Modul ausserhalb des Kernels weiter betreiben und verteilen. Er kann nur nicht mit dem Hook direkt im Kernel verteilt werden. Er könnte Kernel-Patches verteilen, die den Hook in den Kernelsource patchen. Beide Möglichkeiten lehnt er ab.

Solche oder ähnliche Diskussionen kommen immer wieder hoch, wenn einzelne Entwickler mit ihrer tollen Idee scheitern - und ja, manchmal kommt das Scheitern erst nach ein paar Jahren, weil vorige Maintainer das ganze lockerer gesehen haben. Aber die binary-only Module im Linux-Kernel sind ein ständiges Ärgernis: nicht nur das man sie nicht reparieren kann, weil man den Source nicht hat. Man kann auch keine Security Reviews machen. Und sorry, aber Hooks über die sich unprüfbare binäre Module in den Kernel einklinken können, will ein anständiger Admin eh nicht auf seinem System.

Letzendlich läuft das ganze darauf hinaus, ob Linux jede Hardware unterstützen muss, auch wenn es keine Open Source Treiber für diese Hardware gibt. Das Linux auch proprietäre Schnittstellen bedienen kann, ist klar - einfach Subsysteme ausserhalb des Kernels entwickeln und in den Kernel integrieren. Der Support dafür ist im Kernel drin. Aber muss der Kernel selber solche Module unterstützen?

Meiner Meinung nach nein. Es ist natürlich eine Degradierung von Modulen mit rein binären Anteilen, wenn diese nicht im Kernel mitverteilt werden können. Aber Module mit rein binären Anteilen sind sowieso schon Module zweiter Klasse in einem Open Source System.

Klar, für den Anwender ist es unter Umständen komplizierter (wobei es z.B. bei Debian GNU/Linux ziemlich trivial ist, Modulsubsysteme zum Kernel dazu zu installieren), aber es kann kaum das Ziel eines Open Source Systems sein, seine eigenen Grundsätze aufzuweichen um etwas einfacher zu machen, das gar nicht im Fokus dieses Systems liegt.

Die wirkliche Ursache in dem Problem liegt nicht im Verhalten der Linux Subsystem Maintainer. Die wirkliche Ursache liegt in der Sturheit von Phillips, Teile des Treibers nicht freigeben zu wollen.

Das der Modul-Autor jetzt auf verbrannte Erde macht (löschen der Downloads, löschen der Mailbox, löschen der Sourcen, der FAQ etc.) beweist nur, das er es nicht kapiert hat. Nunja, irgendjemand anderes wird vermutlich den Source und das ganze Geraffel nehmen und weiter betreiben - vermutlich ausserhalb des Kernels. Auch das hat der Autor nicht kapiert. Statt dessen spielt er Trotzköpfchen.

Hier gibts den Originalartikel.

Linda and Service Oriented Architectures - Beschreibung von TupleSpaces - PDF Version

Optimal syntax for Python decorators - eine deutlich bessere Alternative zur derzeitigen Decorator-Syntax in Python

Psyche - Ein Scheme in Python, das mit Python-Funktionen erweitert werden kann

QScheme - kompaktes und schnelles Scheme auf Basis einer eigenen VM

Schemix - Scheme als Kernel Modul im Linux Kernel

Welcome to Myghty! - Perls HTML::Mason nach Python portiert

A Conversation with Manfrend von Thun - Faszinierend wenn ein K (APL-Descendant) Fan den Macher von Joy (einer Art funktionales Forth) interviewed.

Candygram - Erlang Thread Primitives für Python - interessant für ToofPy

Main page for the programming language JOY - Joy ist so eine Art funktionales Forth

vnunet.com - Micro Focus lifts and shifts Cobol to Linux

Der Horror lässt mich nicht los: die ersten 10 Jahre meiner beruflichen Tätigkeit habe ich genau mit diesem Compilersystem programmiert. Ein Warenwirtschaftssystem. Und jetzt kommt das Monster nach Linux ...

Hier gibts den Originalartikel.

Paolo Amoroso: Update on McCLIM's Beagle backend

Aus dem verlinkten Artikel geht am Rande hervor, das jemand an einem McCLIM Backend für OpenMCL arbeitet. Und zwar aufbauend auf Cocoa. Das wäre wirklich der Knaller - eine CLIM-basierende Oberfläche. Ok, das wäre im Moment erstmal nur ein Listener und etwas Spielkram, aber auf Dauer vielleicht mal die Werkzeuge wie man sie von den alten Lispmaschinen her kennt. Zumindestens wäre sowas überhaupt denkbar.

Ausserdem ist CLIM eine ziemlich coole GUI-Bibliothek mit Features, die den ganzen Java-Schnickes vor Neid erblassen lassen - selbst wenn CLIM viele Jahre älter ist

Bei Planet Lisp gibts den Originalartikel.

Form submission and the ENTER key? - Diskussion des Problems von Enter=Submit in HTML Formularen

Modeling Object-Relational Bridge for python - Datenbankmodellierung und Mapping nach Python

Things to make you go "Ow, stop, my head hurts!"

Wenn der Programmierer der neuen Virtual Machine für Perl über Continuation Passing und Multimethod Dispatch redet, begeistert mich das. Wenn er dann einen Schwenk zu Intercal und das COME FROM Statement macht, macht mir das Angst

Bei Squawks of the Parrot gibts den Originalartikel.

Perl.com: The Evolution of Perl Email Handling

Wer mit Perl eMails verwursten will und mit der Mail:: Hierarchie von Perlmodulen nicht so ganz zufrieden ist - speziell die Performance lässt oft zu wünschen übrig - kann sich mal die Email:: Hierarchie angucken.

Hier gibts den Originalartikel.

brickOS at SourceForge - Alternatives Betriebssystem für den Lego RCX Baustein

mySTEP - aktuelle Version 1.7

Heute vor genau einem Jahr ( P1140) schrieb ich was über mySTEP 1.1, einer Portierungshilfe für Cocoa-Anwendungen auf den Sharp Zaurus PDA. Um dem Linkrot zu begegnen (der alte Links ist tot, dank Newsisfree ), und weil sich eine Menge getan hat seit dem, mal der neue Link. Das Projekt ist noch cooler geworden und hat definitiv einen neuen Link verdient Hier gibts den Originalartikel.

Textpattern und punycode

Was mich immer wieder erstaunt - nicht nur bei Textpattern, aber das muss jetzt halt mal dran glauben weil ich es ausprobieren wollte - ist die Ignoranz von Punycode in Software. Ok, ich weiss, Punycode (die internationalisierten Domainnamen) ist krank. Das weiss ich. Nur die komplette Ignoranz dieses - leider recht kranken - Standards macht manches nette Paket kaputt.

Bei Textpattern ist das ganze jetzt besonders witzig: einige Teile funktionieren tadellos, einige andere absolut nicht. Mal wird eine gültige URL generiert, mal eine kaputte. Zum Beispiel tun es weite Teile des Admins absolut tadellos, nur die kleinen Popupfenster in der Präsentationsadministration kommen nicht mit Umlaut-Domains klar.

Klar, ich könnte da jetzt die xn-... Form der Domain einbauen. Aber dann würde diese auch nach außen sichtbar, weil TXP scheinbar diese auch teilweise absolut generiert und damit diese Basis-URL mit reinrutscht. Hmm. Unschön.

Update: auf jeden Fall sollte man den Aufruf zum Setzen des Zeichensatzes auf utf-8 auch in der textpattern/index.php Datei machen. Diese ist für das Admin-Interface verantwortlich, wenn man das nicht macht, gibts Konflikte zwischen den Admin-Seiten und den Content-Seiten. Denn bei den Content-Seiten wird der entsprechende Call gemacht, diese werden also mit utf-8 als Zeichensatz in den Serverheadern ausgeliefert. Die Adminseiten aber nicht - also wird das iso-8859-1. Ergebnis: viele moderne Browser ziehen (korrekterweise) den Zeichensatz vom HTTP-Header dem vor, der in der Datei selber angegeben ist. Und schon gibts komische Umlaute.

Was ich zugefügt habe, ist die folgende Zeile:

 header("Content-type: text/html; charset=utf-8");

Und zwar vor dem $textarray = load(.....) Call. Damit wird dann wenigstens dieses Problem behoben. Am besten einmal die vorhandenen Elemente aufrufen und neu speichern, damit die richtig im utf-8 Zeichensatz sind. Das gilt bei internationalen URLs auch für die Preferences, wo man die Domain der Site eingibt.

Was immer noch klemmt, sind die Tagbuilder Fenster - die Popups werden falsch aufgerufen, scheinbar mit falsch kodierten Umlauten. Leider kann ich das aufgrund eines Bugs im Camino nicht verifizieren, der weigert sich Seiteninhalte von internationalen Domains im Source anzuzeigen

verwirrtes Gesicht

Internationale Domains sind ein Hack. Und wie bei jedem üblen Hack, gibts haufenweise üble Probleme. Update 2: wie um zu beweisen wie Hacky Punycode und vor allem dessn Unterstützung in Browsern ist, ich hab heute mal diverse weitere Browser getestet. Zusammen mit denen von gestern:

  • Safari auf Jaguar kann überhaupt kein Punycode
  • Camino 0.8 kanns weitestgehend, kann aber keinen Source anzeigen und die Tag-Popups in TXP tuns nicht (wie ich mitlerweile weiss ist es ein Browser-Bug)
  • Mozilla Firefox 0.8 kommt ebenfalls weitgehend damit klar, nur tuns Popups und Sourceanzeige nicht - gleicher Bug wie bei Camino (war zu erwarten, ist ja die gleiche Sourcebasis)
  • IE kann eh kein Punycode, braucht dafür ein Plugin. Weiter hab ich mit dem Misthaufen nicht getestet.
  • diverse Textbrowser (lynx, w3m, links) tuns auch nicht mit Punycode.
  • Opera kommt mit allen Aspekten klar.

Klarer Sieger: Opera. Wer also mit internationalen Domains arbeiten will (vor allem halt mit Textpattern - aber nicht nur dort), sollte Opera benutzen. Denn sonst gibts Probleme an allen Ecken und Enden, wo Hostnamen ermittelt/generiert werden - z.B. die JavaScript-Links für die Popups in TXP enthalten keinen Hostnamen. Der wird vom Browser intern dazugepappt. Und zwar falsch - aber nur, wenn das Popup gemacht wird. Wird statt dessen über das Kontextmenü der Link in einer neuen Registerkarte geöffnet, funktioniert alles bei Firefox und Camino.

Sorry, aber das ganze Thema ist absolute Moppelkotze.

From Python to PLT Scheme

Wow. Das ist jetzt wirklich der Hammer: ein Python nach DrScheme Compiler, der als Paket in das DrScheme integriert wird und dann Python Entwicklung mit den Werkzeugen von DrScheme erlaubt. Ok, der Compiler hat noch einige Defizite und der Code ist noch sehr langsam, aber das ist ausbaufähig. Und wäre natürlich eine wirklich interessante Python-Implementation, da man einerseits die ganzen Python Libraries und andererseits die MzScheme Libraries mischen könnte. Für mich wäre das System in Vollendung fast schon Nirvana

Hier gibts den Originalartikel.

The Python Paradox

Paul Graham findet Python Programmierer smart. Sind wir auch.

Hier gibts den Originalartikel.

Datenbanken und Scsh - PostgreSQL-Client in Scheme

Scheme Underground Network Package - Webserver in Scheme für die Scheme Shell

Tsearch2 - full text extension for PostgreSQL - Volltextindizes für PostgreSQL

Bill Clementson: Mandelbrot Set ASCII art

Apfelmännchen. In 11 Zeilen Common Lisp. Als Ascii-Art.

Bei Planet Lisp gibts den Originalartikel.

CLiki : Armed Bear Lisp

Eine Common Lisp Implementation die für die Java VM kompiliert. Ich bin kein Fan der JVM, aber für portabilität von Programmen ist das natürlich trotzdem praktisch.

Hier gibts den Originalartikel.

MzTake - a Scriptable Debugger

Ein interessantes Konzept: ein programmierbarer Debugger für MzScheme (die Plattform von DrScheme). Im Prinzip eigentlich eher ein Monitor - es überwacht das laufenden Programm und nach Vorgabe durch Scripts können verschiedenste Aktionen ausgelöst werden. Dazu wird eine speziell für Eventsteuerung optimierte Variante von Scheme verwendet. Mich spricht sowas an, da ich in der Regel normale interaktive Debugger nicht benutze - irgendwie sind die nicht mein Ding. Ich lasse lieber Programme laufen und sammel Informationen wärend dieses Laufs. In Lisp ist sowas ja sowieso schon recht elegant möglich - einfach entsprechende Wrapper um Funktionen legen (oder in Common Lisp mit advise den Debugging-Code an Funktionen binden). MzTake ist jetzt einfach dieses Konzept weiter gedacht.

Hier gibts den Originalartikel.

Python on Smalltalk VM?

Jemand strickt an einer Python-Implementation die auf der Smalltalk Virtual Machine von Visual Works läuft. Auch nicht uninteressant - die Visual Works VM ist eine der besten, was effiziente Garbage Collection und gute Just-in-Time-Compilation angeht. Von der könnte sich die Java VM noch einiges abschneiden bevor sie auch nur annähernd in die Liga kommt ...

Bei Python owns us gibts den Originalartikel.

blog: bknr-devel

Ein Web-Application-Framework mit Object-Datenbank und Templates und allem was man so braucht. Klingt sehr nett.

Hier gibts den Originalartikel.

Mikel Evins: Clotho status

Cool. Mikel Evins arbeitet jetzt aktiv an einer grafischen Umgebung für OpenMCL. Auf Basis von Carbon, so das es nicht an spezifische OS X Versionen gebunden ist. Und natürlich komplett in Common Lisp geschrieben - als Nebeneffekt gibts dann als Abschluss auch einen CLOS-Wrapper um das Carbon API. Ich bin schon sehr gespannt auf die ersten Beta Versionen

Bei Planet Lisp gibts den Originalartikel.

Cyclone

Ein interessantes C-Derivat das bei vielen anderen Sprachen - unter anderem denen der ML-Familie - geräubert hat. Ein C mit Typsicherheit, Speichermanagement (allerdings weiterhin manuelles Speichermanagement), polymorphen Funktionen, Pattern-Matching, Typ-Inferenz und noch vielen weiteren netten Eigenschaften. Verpackt in einer perverse aufgeblasenen Syntax, die auf der schon perversen C-Syntax aufbaut

Hier gibts den Originalartikel.

dude, where's my python?

Dem kann ich nix hinzufügen. Wenn die Python-Community anfängt Features in die Sprache zu bringen in dem sie Guido argumentativ belagert, und wenn diese Kompromisse dann nach dem Motto "eine Syntax die allen gleich wenig gefällt" realisiert werden, dann wird es Zeit die Sprache zu wechseln. Ruby sieht nett aus und die verfügbaren Module für verschiedenste Zwecke kommt locker an Python heran. Oder Prothon - da sind allerdings die verfügbaren Module noch sehr dünn. Oder einfach wieder good old MzScheme? Hier gibts den Originalartikel.

Ambrai Smalltalk

Ein neues Smalltalk für OS X. Integriert in Aqua. Mit allen Werkzeugen die man sich wünschen kann. Leider erst ab OS X 10.3 - schade, ich hätte es mir gerne mal angeguckt, aber ich bin ja noch auf 10.2.8 ...

Wer sich das mal antun kann - die Beta ist frei verfügbar. Würde mich mal interessieren wie es ist. Früher war Smalltalk eine meiner Lieblingssprachen - allerdings war das vor meinem Kontakt mit Lisp-Maschinen und noch zu DOS Zeiten

Hier gibts den Originalartikel.

Bosco HOWTO

Ein Tutorial und Beispielcode um mit OpenMCL Carbon und Cocoa Applikationen zu bauen. Sehr interessant, damit könnte es langsam was werden das OpenMCL auf dem Mac eine vollwertige Umgebung wird.

Ja, ich träume immer noch von einer freien Lisp-Implementierung mit anständiger Entwicklungsumgebung

Hier gibts den Originalartikel.

IronPython - A fast Python implementation for .NET and Mono

IronPython ist jetzt Open Source und in der Version 0.6 verfügbar. Für .NET oder Mono Programmierer vielleicht eine interessante Alternative zu den üblichen Dingens# Sprachen.

Hier gibts den Originalartikel.

Current Books about Icon

Wow! Sowohl die letzte Ausgabe der Icon Programming Language Referenz als auch das The Implementation of The Icon Language Buch gibt es als freies Download. Hingehen, downloaden und schwelgen - Icon ist einfach eine wunderschöne kleine Sprache mit sehr interessanten Features. Vieles in Icon hat mir immer schon viel besser als in Perl gefallen - Regular Expressions sind nämlich nicht der einzige Weg um Strings zu analysieren. Das Stringscanning in Icon ist mindestens ebenso mächtig, aber wesentlich eleganter aufgebaut und lange nicht so kryptisch. Ich hab die Bücher natürlich in Printform zu Hause stehen, aber da sie nicht mehr in Papierform zu kriegen sind, ist der Download natürlich eine gute Lösung. Und da sie frei - im Sinne von Public Domain - sind, auch noch eine wirklich günstige Gelegenheit

Hier gibts den Originalartikel.

Unicon.org - the Unicon Programming Language Home Page

Und weil ich gerade bei Icon bin: es gibt auch eine Nachfolgesprache, die jetzt auf Sourceforge entwickelt wird. Da wird auch ein Buch in öffentlicher Zusammenarbeit zu erstellt und das ganze macht einen sehr interessanten Eindruck. Ich glaub ich werd da mal ein Auge drauf haben - eine Icon Implementierung mit einer besseren Klassenbibliothek wäre definitiv eine Alternative für mich für viele kleine Projekte. Icon selber krankte ja etwas an der doch eher schmalen Bibliothek - z.B. fast nichts im Bereich TCP/IP und auch für DB-Anbindung und ähnliche Zwecke nur sehr rudimentäre Bibliotheken im Gegensatz zu Python, Perl oder Ruby. Unicon könnte da was dran ändern.

Icon war übrigens sowas wie eine Nachfolgesprache zu Snobol. Snobol wiederum war der erste Versuch einer auf Textvermanschung ausgelegten Programmiersprache - deutlich bevor es Regular Expressions oder gar Perl gab. Hatte eine ziemlich kranke Syntax (bzw. gleich zwei von der Sorte), aber einen sehr liebenswürdigen Charme. Eine der wenigen Sprachen die ich kenne in der strukturierte und übersichtliche Programmierung nahezu unmöglich war

Icon hat viele der Probleme von Snobol behoben - vor allem hatte es eine recht anständige Syntax. Und die Stringverarbeitung war bei Icon auch nicht eine Huckepack-Syntax, sondern war in die Sprache voll integriert. Ausserdem hat Icon noch so nette Sachen wie Generatoren - die jetzt (so in den 2.xern) in Python dann auch mal entdeckt wurden.

Hier gibts den Originalartikel.

Boo - Home - dynamische Sprache für .NET mit Python-ähnlicher Syntax und erweiterten Features speziell im Bereich Datentypen

gppl's nest - Hierarchische Queries mit PostgreSQL

Gwydion Dylan: Overview - freier High-End Dylan Compiler

LWN: Oracle patents content management systems

Und wieder ein idiotisches US-Patent. Diesmal auf Content-Management-Abläufe wie sie in so ziemlich jedem CMS vorkommen werden. Ganz tolle Aussichten auf die EU-Softwarepatente

Hier gibts den Originalartikel.

Marlais Sourceforge Projekt - tragbarer Dylan Interpreter