keysAndValuesDo:

Over at Vox, Randal is showing some interesting methods he found in Smalltalk for iterating collections. The really interesting thing he found is that Collections in Squeak support #keysAndValuesDo: .

I was quite surprised by this because the method name is not really intention revealing or hinting at its purpose. If I want to iterate over a collection and also need the index of an element I’d use myList doWithIndex: [:item :index| ...] rather than #keysAndValuesDo:.The latter is of tremendous help when working with Dictionaries and LookupTables (hash collections) and makes life much easier for a code maintainer.

One of the commenters said VA ST implements keysAndValuesDo: only for keyed collections, which I think is a good thing. Using keysAndValuesDo: polymorphically on completely different types of collections is not helping the reader of the code very much. “Heck, what does he mean with a Key, it’s just a list of customers? I must have missed something. What the heck is he doing there?”

Randal also presents a very nice new way of using do:separatedBy:

| index |
index := 1.
myItems do: [:item | ... ] separatedBy: [ index := index + 1 ].

I’d never ever have thought of this one, but this surely looks familiar to many developers. Not that this is actually bad code, but why add so much syntactical noise to a simple job?

One of Smalltalk’s strengths is that it sometimes makes complex things easy to do and – even more important – to read. The messages supported by the Collection hierarchy are a really bright example here.

Das Für und Wider – Teil 1: Nachwuchs

Das Argument:

Eine der großen Sorgen für Smalltalk-Projekte ist es, dass offenbar sehr schwer ist, Nachwuchs zu finden, der zumindest mal Smalltalk-Grundkenntnisse mitbringt. Die Smalltalk-Welt scheint sich hier in Deutschland in erster Linie aus alten Hasen zusammenzusetzen, die sehr viel Erfahrung mitbringen. Neue Leute für ein Projekt zu rekrutieren, ist nicht einfach. Auch und vor allem über den Weg der Freiberufler-Händler sind solche Leute inzwischen relativ teuer geworden – bei allerdings auch sehr hoher Qualität.

Die Diskussion dazu:

Dass Smalltalker zur Zeit wieder sehr gefragt und schwer zu bekommen sind, ist eine Tatsache, die wir auch zu spüren bekommen: Anfragen nach Dienstleistern geistern oft wochenlang durch die Stellenbörsen und es werden teilweise Stundensätze geboten, die manch ein Freiberufler zuletzt erreichen konnte, als die Jahr-2000-Problematik und der Euro-Boom zusammenfielen und alles, was EDV buchstabieren konnte, nach Kilogramm bezahlt wurde. Erfahrene Smalltalker sind derzeit wirklich kaum zu bekommen. Woran liegt das?

Nun, die Situation ist sicher hausgemacht: Vor 4 bis 5 Jahren hatten fast alle Smalltalk-Unternehmen verkündet, dass ihre Smalltalk-Anwendungen unmittelbar vor dem Ausschalten stehen, und man nur noch in die allerletzten, notwendigsten Wartungsaufgaben, keinesfalls aber in die Schaffung neuer Funktionalitäten investieren wolle. Damit wurden nict nur die eigenen Entwickler in andere Projekte getrieben sondern natürlich auch jeglicher Nachwuchs abgeschreckt. Tatsache war aber in den meisten Häusern, dass man mit immer kleineren Budgets immer weiter gemacht hat mit der Weiterentwicklung der Systeme, und in den meisten Fällen ist es mit der Abschaltung bis heute nichts geworden und meist ist sie auch nicht in Sicht. Der offizielle Status der Projekte als Projekt-non-grata wurde aber nicht geändert. Ich kenne mehrere Firmen, in denen sich auch jetzt, wo der Status des Projekts komplett verändert hat, kein internes Personal motivieren lässt, wieder zurückzusatteln. Selbst Kollegen, die mit tränendem Auge an die Entwicklung in Smalltalk zurückdenken, scheuen sich davor, in ihre alten Projekte zurückzukehren. In Firmen, die in ihrem “Marschplan für die kommenden x Jahre” die Smalltalk-Projekte wieder offiziell führen, ist dieses Problem nicht ganz so verbreitet. Ich denke, hier hängt einiges an der eigenen Selbstdarstellung eines Projektes – kaum eines der Projekte muss sich wirklich dafür entschuldigen, dass es seit 7, 8 oder mehr Jahren erfolgreich die Bedürfnisse seiner Anwender befriedigt und nach wie vor stabil läuft. Es muss sich auch nicht dafür entschuldigen, dass es inzwischen technisch mit vielen Systemen kommuniziert, und häufig das Kerngeschäft eines Unternehmens unterstützt. Und eine Entschuldigung dafür, dass es in Smalltalk entwickelt, ist auch nicht wirklich notwendig vor dieser Kulisse. Es liegt klar auf der Hand, dass sich für ein Projekt, das nur noch Aufräumarbeiten zu erledigen hat, keine Elite findet. Für ein Projekt, in dem sehr erfahrene Kollegen eine stabile, erfolgreiche Plattform geschaffen haben, und in dem man von erfahrenen Leuten sehr viel lernen kann, in dem man an dem Erfolg des Systems mitarbeiten kann, finden sich vielleicht schon eher Kandidaten, wenn zudem noch eine Perspektive auf 5, 8 oder 10 Jahre zu sehen ist, in denen man an dem System arbeiten kann.

Nun aber zum Nachwuchs: es gibt praktisch keine neuen Smalltalker mehr.  Zugegeben, die Masse der Studenten und Auszubildenden lernt heute Java, und vielleicht noch ein bisschen C, aber Smalltalk steht nicht oft auf dem Ausbildungsplan. Auch hier hat der “Herdentrieb” schon lange eingesetzt: lehren wir unseren Studenten Java, kriegen sie besser Jobs.

Und doch gibt es ein paar Bildungseinrichtungen, die anders denken, und es lohnt sich sicher, auf diese zuzugehen, wenn man Smalltalk-Nachwuchs sucht. Auch das kann sicher dazu beitragen, dass die Professoren sich in ihrer Entscheidung bestätigt fühlen. Ich bin kein großer Kenner der akademischen Landschaft, aber mir fallen im universitären Bereich zunächst mal folgende Einrichtungen ein:

  • TU Ilmenau
  • FH Nordakademie (Prof. Brauer, hat auch ein erfolgreiches Smalltalk-Nuch geschrieben)
  • FH Darmstadt
  • Hasso-Plattner-Institut an der Uni Potsdam

Hier wird Smalltalk gelehrt, und es werden Smalltalk-Projekte durchgeführt. Überhaupt ist vor allem Squeak im akademischen Umfeld recht verbreitet. Dazu später mehr…

[Update:] kennt jemand weitere Bildungseinrichtungen, an denen Smalltalk gelehrt wird? An wen kann sich eine Firma wenden, die gerne junge Absolventen mit Smalltalk-Kenntnissen kennen lernen wollen?

Smalltalk – Das Für und Wider…

Eine stressige Woche liegt hinter mir, und mein Blog war dabei ein Opfer meiner Prioritäten. Jetzt gibt es hier ein bisschen was aufzuholen, und dies ist der erste Aufholbeitrag ;-)

Letzte Woche Montag fand der Münchener Smalltalk-Stammtisch statt. Diesmal an einem neuen Ort und mit einigen neuen Teilnehmern. Die wurden gleich ganz schön auf die Probe gestellt: Der Abend war der längste, bei dem ich je dabei war. Wir sassen bis irgendwann rund um Mitternacht zusammen und haben diskutiert. Interessant war es, dass diesmal nicht nur Smalltalk-Fans dabei waren, sondern auch ein Manager, der relativ frisch einen Entwicklungsbereich übernommen hat, in dem eben auch ein paar (sehr erfolgreiche) Smalltalk-Projekte durchgeführt werden. Es war interessant, auch mal aus diesem Blickwinkel zu hören, welche Sorgen, Ängste und Nöte vielleicht damit verbunden sind, eine Smalltalker-Truppe zu führen und in einem Unternehmen zu stecken, das sich eine klare strategische Landschaft zum Ziel gesetzt hat, in der Smalltalk nicht auf der Prioritätenliste vorkommt.

Einige der Argumente kommen mir da sehr bekannt vor, und ich dachte mir, vielleicht setze ich mich mit dem einen oder anderen mal in meinem Blog auseinander. Die nächsten Tage sind zwar sicher nicht minder stressig (das VA Smalltalk Forum 2008 is schon in 8 Tagen…), aber ich hoffe,ich finde die Zeit, das eine oder andere Thema mal hier aufzugreifen.

Steffen zeigte die Architektur und die Arbeitsweise eines bei der VSA entwickelten Smalltalk-Anwendungsservers, der, wenn ich es recht verstanden habe, vor allem zur Steuerung und Überwachung von Batch-Prozessen genutzt wird. Die Datenmengen und vor allem das Volumen an Geld und Verantwartung, was da nachts bewegt wird, ist ziemlich beeindruckend. Es ist einfach immer wieder überraschend,was mit Smalltalk so alles gemacht wird. Hoffentlich finden sich mal ein paar solche Projekte in der Fachliteratur oder auf Konferenzen wieder. Auch das haben wir mal sachte andiskutiert…

Die Teilnehmer mussten aber noch mehr über sich ergehen lassen: Ich hatte die Chance, meinen Integrationsvortrag für das VA Smalltalk Forum mal zur Probe zu halten. Ich habe auch einiges sehr wertvolles Feedback und einige sehr gute Anregungen bekommen, um den Vortrag zu verbessern. Dafür möchte ich mich hier nun ausdrücklich bedanken. Zwar hatte das nicht unwesentlichen Einfluss daruf, dass meine letzte Woche ein bisschen stressig war, aber ich habe inzwischen das Gefühl, dass mein Vortrag (und auch mein zweiter) von dem Stammtisch profitiert hat. Wir werden es ja schon bald sehen ;-)