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.
smalltalk
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.
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.
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).
Dynamic Web Development with Seaside - wer mal mit Seaside loslegen will, findet hier vielleicht den Ansatz dazu. Freies Online-Buch (gibts auch als kostenpflichtiges PDF oder print-on-demand über Lulu) über ein ziemlich beeindruckendes Web-Framework für Smalltalk. Und da es mitlerweile auch mit GNU Smalltalk läuft, ist auch der Betrieb als headless Server auf einer eigenen Root-Kiste kein großes Problem mehr.
bamboo-language - "Bamboo is intended to provide an implementation of Smalltalk and Strongtalk for both the iPhone and Mac OS X, leveraging Apple's Objective-C runtime, LLVM, and Clang.". Gibt noch nicht viel Inhalt dort, also wohl eher als Absichtserklärung zu betrachten.
pier - wer auf dem Mac mal mit Seaside und Anwendungen dafür rumspielen will, hier ist ein Projekt das eine Mac-Anwendung rund um ein Squeak mit Seaside und einem CMS gebaut hat. Macht einen ganz interessanten Eindruck (und ja, heute ist mal wieder wühlen-in-google-code-projekten Tag ...)
Clamato: A Smalltalk Dialect for JavaScript - keine Ahnung ob ich das schon hatte und zu faul das nachzugucken, aber interessant genug ist es alle mal, auch für einen Repost.
Dynamic Web Development with Seaside - und weils mir gerade untergekommen ist, ein offenes Buch über Seaside. Damit man gleich so richtig loshacken kann. Seaside sollten sich alle mal angucken, auch wenn sie aus Ruby oder Python oder PHP-Ecken kommen, es ist einfach eines der spannendsten Webframeworks da draussen.
GNU Smalltalk - als alter Smalltalker (Methodworks anyone??) guck ich immer mal wieder was da so passiert. GNU Smalltalk war lange eher das Stiefkind der Smalltalks, aber mitlerweile hat es ganz gewaltig zugelegt. Speziell die Unterstützung von Cairo und LibSDL bringt einige Möglichkeiten für Grafik und Seaside ist ja das Teil für Webanwendungen schlechthin (mit Swazoo als Webserver darunter). Und ein eigenes natives Webframework liegt mit Iliad auch schon vor. Und mit SandstoneDB gibt es eine Persistenzschicht für Objekte. Und der größte Nachteil von GNU Smalltalk - die fehlende grafische Umgebung - wird bei Webanwendungen zum echten Vorteil, denn headless GNU Smalltalk ist trivial. Die nächste Version 3.2 wird echt spannend.
Pharo Open Source Smalltalk - ein Projekt um als Squeak eine etwas professioneller anmutende Umgebung zu machen. Sieht gut aus, und wenn die über reine Optik hinausgehen (und z.B. Bridges zu nativen Bibliotheken einbauen), könnte das sehr interessant werden.
iSqueak - und hier die Entwicklungsumgebung, mit der man das iPhone in Smalltalk programmieren kann.
Sup dawg, we heard you like Smalltalk so we put Smalltalk in your Factor so you can send messages while you roll - eine Implementation von Smalltalk in Factor. Durchaus ausbaufähig und könnte diese nette Umgebung auch Leuten nahe bringen, die Factor noch garnicht kennen (manchmal ist der Start mit einer bekannten Sprache halt einfacher).
Squeak by Example - wer mit Squeak mal loslegen will, aber nicht weiss wo er anfangen soll, findet in diesem freien Buch vielleicht Anregungen.
Content:
Étoilé - interessantes Projekt, das auf GNUStep basierend eine Umgebung mit Libraries, Frameworks, Programmiersprachen (ein Smalltalk, das mit Objective-C direkt kombiniert eingesetzt werden kann) und Tools. Schön, dass es im GNUStep-Umfeld immer wieder Aktivitäten gibt, es läuft ja etwas unter dem vom Gnome und KDE definierten Horizont der Desktopumgebungen.
Squeak on the iPhone! - und Apple ist scheinbar einverstanden. Wooot!
Cog Blog - faszinierendes Blog eines Programmierers, der eine neue Squeak Smalltalk VM baut, und dabei über die Probleme der Blue Book Architektur und mögliche Lösungen schreibt - und er kommt aus der VisualWorks VM Entwicklung, sollte also wissen, wovon er schreibt. Sehr interessant zu lesen und das Ergebnis könnte auch interessant sein, da er deutliche Performance-Gewinne für seine neue VM prognostiziert.
Magma - Objekt Datenbank als Open Source für Squeak.
SeasideXUL - interessantes Projekt, das aus Seaside (dem Smalltalk Webapp Server) direkt XUL Interfaces erzeugt und darüber die Erstellung von Anwendungen mit nativem Interface erlaubt. Sehr interessant, da hier eine Webserver-Technik für lokale Anwendungen Einsatz findet (und ja, das klingt verdammt ähnlich zu AIR, nur mit Smalltalk und XUL statt Javascript/Actionscript und HTML/Flash)
Seaside development with GNU Smalltalk - sehr schön. GNU Smalltalk ist einfach eine der besseren Batch-Smalltalk Varianten. Die anderen sind einfach nur vom GUI befreite Images, GNU Smalltalk ist von vornherein weitaus besser auf Textmode ausgerichtet. Und für einen dynamischen Webserver ist das eben die bessere Umgebung. Kombiniert mit den recht mächtigen Web-basierten Tools von Seaside könnte das auf Dauer eine richtig nette Umgebung werden.
FSClass 3.0 - erlaubt die Erweiterung von Objective-C Klassen und die Neuerstellung von Klasse in F-Script, ohne direkt auf Objective-C zurückgreifen zu müssen. Wenn da noch einer einen anständigen Classbrowser drumherum bauen würde, mit dem man die Methoden interaktiv erstellen kann, anstelle über Files gehen zu müssen, dann wär OSX fast schon sowas wie ein Smalltalk-System.
Learn F-Script in 20 Minutes...and Have Fun Playing with Core Image - nettes Tutorial für F-Script. Anhand von Image-Spielereien interaktiv die OSX API erforschen.
GLASS: Gemstone, Linux, Apache, Seaside and Smalltalk - Gemstone/S als frei verfügbare Version (Freibier) und darauf mit Seaside eine nette API aufgesetzt, um Webanwendungen komfortabel in Smalltalk zu entwickeln. Klingt gut!
Spoon - interessanter Ansatz: ein auf Squeak aufbauendes System mit minimalem Objektsystem und dynamischen Laden von weiteren Klassen/Objekten/Methoden auf Abruf zu erstellen.
Freie Smalltalk Bücher - als PDFs
Vista Smalltalk Wiki - hatte ich zwar schon mal, aber es gibt einen Grund für die Wiederholung: hab erst heute bemerkt, das Vista Smalltalk ein Smalltalk nicht nur in Flash (ActionScript) ist, sondern das es einen eigenen Lisp-Layer enthält, auf dem es aufbaut. Also ein Smalltalk in Lisp in ActionScript ...
Vista Smalltalk - eigentlich ein auf Windows Vista zielendes Smalltalk, jedenfalls nach der Doku. Nur ist es mit Flash lauffähig - und damit im Safar Browser oder mit auch mit der Apollo Runtime auf anderen Systemen. Und das Smalltalk ist nichtmal so übel - und enthält auch noch ein kleines Lisp. Witzige Sache.
Open Croquet SDK 1.0 - nicht mehr Beta, sondern Release jetzt. Es bleibt spannend.
Strongtalk: A High-Performance Open Source Smalltalk With An Optional Type System - jetzt komplett Open Source, inklusive der VM (die wesentliche Impulse für die Java Hotspot Technik geliefert hat).
StepTalk(GNU Scripting Framework) - jetzt in einer Version für Mac OS X!
Stéphane Ducasse :: Free Online Books - eine ganze Reihe von freien Büchern über Smalltalk. Zum Teil nur gescanned, zum Teil als echte Text-PDFs. Eine ganze Reihe von Klassikern sind dabei.
[GOODIE] Headless Squeak for OS X (Re: Mac VM 3.2.X) - wie man unter OS X ein headless Squeak (Smalltalk-Umgebung ohne GUI-Anteil) für Serverdienste hinbekommt. Besonders interessant für den Einsatz von Seaside.
Learning Seaside - coole Demo was mit Seaside (Smalltalk-Webframework) und AJAX gemacht werden kann. Im Prinzip eine Datenbankoberfläche mit frei konfigurierbarem Datenbankmodell - sowas wie Google Base, nur in Cool.
Seaside ist ein flexibles und sehr interessantes Web-Framework in Smalltalk. Tutorials hatte ich schon mal dazu gelinkt, aber das Framework selber noch nicht - jedenfalls nicht an seiner neuen Adresse. Läuft auf Squeak und Visual Works - und durch deren breite Verfügbarkeit fast auf allem das sich Computer nennen darf und eine TCP/IP-Verbindung zur Aussenwelt hat.
The Hitch Hiker's Guide to the Smalltalk Compiler ist eine schon ältere aber immer noch gute Beschreibung der Compilerklassen in Smalltalk-80 Abkömmlingen wie VisualWorks Smalltalk und Squeak.
Bistro Intro ist eine Smalltalk-Variante die auf der Java VM läuft. Kannte ich bisher noch nicht.