Smalltalk

Smalltalk

Ich hatte mich ja schon einmal kurz mit Smalltalk beschäftigt, aber leider nie wirklich den Einstieg gefunden. Ich hab im Internet jede Menge Anleitungen zur Sprache an sich gefunden, aber Umstieg von jemanden, der durch andere Sprachen schon „verdorben“ ist, ist einfach schwer. Irgendwie fehlt eine Anleitung von jemandem, der genauso wie ich von einer klassichen Programmiersprache kommt und nun den Sprung ins kalte Wasser wagt und Smalltalk lernt. Mir hat man auf der Mailingliste der gsug indirekt nahe gelegt mal sowas zu verfassen.

Ich werde also in der nächsten Zeit in lockerer Folge hier und auch in meinem Blog mal schreiben was ich so gemacht habe und was mich weiter gebracht hat.

Erstmal grundsätzlich gibt es unter Linux mindestens zwei Möglichkeiten zu smalltalken.

  • Cincom VisualWorks, welches für nichtkommerzielle Nutzung kostenfrei ist
  • Squeak - eine Umgebung an der Alan Kay, einer der Begründer von Smalltalk, immer noch mitarbeitet.

Da ich vielleicht auch komerzielle Sachen machen will und auch sonst lieber auf freie Software setze will ich mich lieber mit Squeak beschäftigen. Ich kann aber jedem empfehlen die Tutorials von VisualWorks mal durchzuspielen. Diese sind sehr gut angelegt, wenn auch nicht immer auf Squeak übertragbar. Weiterlesen »

Tips for beginners

From a today's post on the squeak-beginners mailing list:
  1. Squeak image is like a 'software computer' - an entire computer, not just an IDE. The 'quit' doesn't shutdown, it only suspends this computer and the vm resumes it from where you left off next time you start it. Objects created in this image can live on for years! This soft computer even crashes like a real one. I always work with copies of images when experimenting with it.
  2. Commands take the form "<subject> <verb> .." instead of the usual "<verb> <subject>". Though, this sounds simple, it takes some time to switch mental models from imperative mode to message sends.
  3. Most tutorials exhort beginners to "doIt". Please don't. Use "debugIt", so you can see trace the execution and learn a lot from it. Tracing something even as simple as "3+4" can be very illuminating as it takes you through compiler, string conversions, primitive calls and so on. After a few hours browsing code, DNU pop-ups are no longer scary :-(. Morphs (like menus) can be traced by using the debug halo item.
  4. I find the "explain" menu item very handy while browsing code (e.g. Is SoundPlayer a class or a variable?). It is buried one level deep in content menu :-(. I also make liberal use of "implementors of" and "senders of" to understand the larger context.
  5. The "browse protocol" is another useful menu item listing all messages (including inherited ones) for an object. Here again, the most useful category, '--all--', comes in the end :-(.
Thanks Subbu

Smalltalk, Squeak und mehr

So, ich habe mir gestern die beiden Videos von Alan Kay angesehen, wo er über Smalltalk und User Interfaces spricht. Sehr beeindruckend.

Außerdem hab ich mir die Videos zu Squeak angesehen und das Tutorial einen BankAccount zu schreiben. Die Sprache an sich ist eher unproblematisch. So langsam bekomme ich auch ein Gefühl dafür was ein Programm (im klassischen Sinne) in Squeak ist. Squeak fühlt sich eher an wie ein Betriebsystem wo man dann Programme starten kann. Vielleicht am ehesten zu vergleichen mit dem Emacs, wo man ja auch zwischen den Major Modes wechselt.

Ich habe dann noch mein Image getuned, weil das standard Image nicht wirklich für Entwicklung ausgelegt ist. Ich habe also das DEVImageInstaller Package installiert (und mir dabei leider die Flaps entfernt - wie bekomme ich die wieder?). Dabei werden jede Menge andere Packages aus dem Netz geladen und installiert. Danach gibt es an allen möglichen Stellen Syntax-Highlightning, was schon sehr angenehm ist. Außerdem habe ich noch das Skylark Theme installiert. Das ganze läuft jetzt ein wenig schneller (und sieht außerdem noch schick aus).

Smalltalk beginLearn.

Nachdem mir nun Smalltalk empfohlen worden ist und ich leider keine Anleitung von Null zum fertigen Programm gefunden habe, werde ich hier und auf meiner Homepage in lockerer Folge mal meine Entdeckungen und Lernfortschritte berichten. In der Hoffnung anderen Einsteigern mit Vorkenntnissen in klassischen Programmiersprachen hilft es die teils doch sehr anderen Konzepte schneller zu verstehen.

Gerade wo ich das hier schreibe sehe ich, dass die neue 3.9 von Squeak herausgekommen ist. Also kann ich gleich richtig neu starten.

Inhalt abgleichen