Am Rande notiert ...

Self Mallard 4.5.0 released | Self. Es lebt noch. Ist ja immer noch eines der coolsten Systeme die sich aus Smalltalk ergeben haben – sehr exotisch, sehr anders. Aus einigen Aspekten können Systeme auch heute noch lernen – die Umsetzung der prototypischen Vererbung in die grafische Entwicklungsoberfläche ist schon echt cool und wirkt selbst heute noch modern. Das GUI Framework selber hat ja schon vor geraumer Zeit seinen Weg in Squeak gefunden, aber außerhalb der Squeak+Self-Welt kennt es kaum jemand. Was wirklich schade ist. Und der Compiler ist auch immer noch einer der besseren im Feld der Bytecode-Sprachen. Gerade wenn man mal vergleicht wie JavaScript heute sich darstellt und was Self schon seit ewigen Zeiten kann, da kann man glatt traurig werden.

PharoDroid ist eine Implementierung von Pharo, die auf Android Tablets läuft – allerdings wirklich so wie auf dem Desktop, also keine speziell Touch Unterstützung hat. Dadurch eher sperrig zu benutzen, aber es ist ein Anfang.

Room 101: The Miracle of become:. Eine der Ecken, in denen Smalltalk deutlich von allen anderen Sprachen abweicht mit denen ich bisher so zu tun hatte (ausser Common Lisp, aber das ist was anderes, da geht ja eh alles), ist die become: Methode, mit denen zwei Objekte im laufenden System ihre Identität tauschen – so dass nach dem Aufruf alle Referenzen auf a nach einem a become: b dann auf b verweisen und umgekehrt. Hier wird erklärt, was das dann in der Praxis bedeutet.

Learn Smalltalk with ProfStef. Amber hatte ich ja schon mal, das Smalltalk 80 auf JavaScript-Basis. Kommt jetzt mit einem node.js basierten Webserver der minimales WebDAV implementiert und ist von der Sprache zumindestens soweit kompatibel, dass der Autor das ProfStef Tutorial portieren konnte – und das hab ich hier verlinkt. Einfach mal 5 Minuten mit einem Smalltalk in der Webseite spielen.

Zinc HTTP Components. Interessantes Projekt das sich zur Aufgabe gemacht hat eine möglichst vollständige Unterstützung für alle Aspekte des HTTP Protokolls zu liefern. Interessant deshalb, weil sie von der Protokolldefinition ausgehen und nicht wie in vielen anderen Fällen die HTTP Implementierung nur soweit da ist, wie sie für das jeweilige Web-Framework notwendig waren.

GemStone Seaside | About. Apropos Seaside: es gibt eine ziemlich coole virtuelle Appliance (also vorgekautes virtuelles Plattenimage) zum Einhängen in VMWare Installationen mit einer GemStone/S Installation inklusive Seaside und einem Squeak als IDE für die Entwicklung für dieses System. Wer also mal sehen will, wie die großen Kinder mit Smalltalk arbeiten, hier entlang und runterladen und ausprobieren.

Pharo Open Source Smalltalk. Schon oft gepostet, aber einfach mal wieder ein Reminder, dass es immer noch ernstzunehmende Smalltalks gibt, die auch ohne Handstand und durch-Reifen-Springen zu bekommen sind. Und nicht so wild nach Spielwiese aussehen wie das originale Squeak, sondern ein bischen  polierter daherkommen, trotzdem aber die von Smalltalk gewohnte Mächtigkeit bieten. Pharo ist mitlerweile deutlich mehr als nur ein etwas aufgeräumtes Squeak, einfach dadurch dass es dem Benutzer einige Fragen abnimmt (wie z.B. welches Userinterface man nehmen will etc.). Abgesehen davon ist die Installation wirklich nett einfach – und es gibt (wie von Anfang an bei Pharo) für alle Systeme einfach nur ein Installationspaket. Oh, und es gibt ein Online-Buch zu Pharo, das kollaborativ weiterentwickelt wird. Und noch ein weiteres, das mit Beispielen Pharo erläutert. Und dann noch eines, das sich Webapplikationen mit Seaside widmet.

RMoD: Fuel. Und noch ein Smalltalk-Link – hier eine Persistenz-Library komplett in Smalltalk ohne spezielle Unterstützung der VM, aber trotzdem guter Performance und guter Abbildungsmöglichkeit für alle möglichen Arten von Objekten.

SandstoneDb, Simple ActiveRecord Style Persistence in Squeak. Eine sehr simple Ein-Platz-Datenbank für Pharo, die zum Beispiel interessant ist, wenn man kleine Desktop-Anwendungen in  Pharo bauen will. Also so die klassischen GUI-Tools, die man so für den Eigengebrauch zum Beispiel macht. Und ja, heute ist Smalltalk Tag bei rfc1437.

Coral — Pharo Smalltalk for scripting. Oh, das ist nett, das ist eines der Probleme die ich immer mit Smalltalk habe: ich kann zwar in der IDE und im Image arbeiten und dann eine headless-Anwendung exportieren für den Server, aber sobald ich ausserhalb des Images mal schnell ein Script brauche, muss ich die Sprache wechseln. Coral liefert für dieses Problem die Antwort: ein kleiner Wrapper, eine minimale Syntaxerweiterung und ein minimales Image um mit Pharo Smalltalk normale Scripte schreiben zu können.

tode – tODE – the Object centric Development Environment. Ein bischen stagnant in der Entwicklung, aber trotzdem interessant: eine IDE, die auf Pharo Smalltalk aufbaut. Das Besondere: sie läuft im Browser, bietet aber dort die ganzen Smalltalk-üblichen Entwicklungswerkzeuge an. Im Prinzip könnte man damit also sich ein gehostetes Smalltalk-Image als Entwicklungsumgebung für das iPad installieren und von unterwegs damit spielen (Pharo und Squeak passen gut in die Browseroberfläche, weil sie ja auch sonst in der Regel nicht als native Windows daher kommen, sondern als Windows-in-Windows – und hier halt einfach Windows-im-Browser).

Jtalk Smalltalk. Keine Ahnung wieso das bisher an mir vorbeigeschlichen ist – aber eine recht vollständig wirkende Smalltalk-Implementation in JavaScript inklusive IDE mit Class-Hierarchy-Browser ist schon durchaus bemerkenswert, auch wenn es nicht das erste Projekt dieser Art ist (Clamato wäre ein anderes, aber das scheint größtenteils tot zu sein).

QuickSilver Network. Hmm, hatte ich das schon? Egal, ist cool. Und zwar ist es eine Smalltalk-ähnliche Entwicklungsumgebung, aber mit JavaScript als Sprache und im Webbrowser anstatt in einer Anwendung. Allerdings alles noch sehr roh und einige der Sachen tun nicht so richtig (zumindestens im Safari), aber irgendwie trotzdem nett. Irgendwie könnte ich mir jetzt vorstellen, dass jemand das mit TiddlyWiki verheiratet (für die Persistenz) und dann daraus ein JavaScript Imagesystem ala alten Smalltalk-Systemen machen könnte, nur halt im Web. Wäre irgendwie witzig. Sinnlos, aber witzig.

Home – Redline Smalltalk – Smalltalk for the Java Virtual Machine.. Noch nicht sehr weit, aber könnte irgendwann mal interessant werden – und als alter Smalltalk-Fan muss ich da natürlich ein Blogmark setzen.

F-Script Home Oldy but Good! wird sogar fleissig weiterentwickelt. Ich wünsche mir ja immer noch native Klassenbrowser mit Editmöglichkeit, um F-Script zu einem „echten“ Smalltalk für OSX zu machen, aber auch als Ersatz für AppleScript (mit drastisch weiter gehenden Möglichkeiten, da es nicht nur die ScriptinBridge sonder alle Objective-C Frameworks unterstützt) taugt es. Und ist für viele Zwecke nah genug an Smalltalk dran.

Lively Kernel – Lively. Sowas ähnliches wie ein Smalltalk System, aber es läuft im Browser, lebt in Webseiten und benutzt JavaScript als Sprache. Gibt typische Smalltalk Werkzeuge wie die Klassenbrowser und Inspektoren. Und ein Test auf dem iPad war nicht rasend schnell, aber benutzer. Von Dan Ingall, dem Smalltalk-Implementor neben Alan Kay.

Open Cobalt Website. Was aus OpenCroquet geworden ist – sind scheinbar jetzt auch benutzbare Downloads und nicht mehr nur ein SDK verfügbar. Peer2Peer virtual worlds in Smalltalk.

The Art and Science of Smalltalk ist jetzt frei im Web verfügbar (PDF Link). Und da wo das Buch liegt gibts noch mehr Bücher über Smalltalk zum Freien Download.

Dynamic Web Development with Seaside. Hatte ich schonmal, aber da ich mich in der nächsten Zeit evtl. mal wieder mehr mit Smalltalk und SeaSide  beschäftigen möchte, nochmal als Erinnerung geblogmarkt.

Pharo Open Source Smalltalk. Sollte ich mir mal wieder angucken, denn es sieht mitlerweile sehr schick aus und die Installation ist wirklich trivial geworden. Pfiffig wie da ein Pharo.App Verzeichnis geladen wird, welches für OSX gleich die App ist und für Linux und Windows einfache Startwerkzeuge (LNK für Windows und .sh für Linux) mit enthalten sind. Ausserdem gibt es eine neue VM und das ganze ist schon richtig fix geworden. Und sieht auch nicht mehr so altbacken aus (leider immer noch GUI-im-Fenster und keine nativen Fenster).