Smalltalk ist zu langsam |
In letzter Zeit werden vermehrt Sprachen populär, die entweder von einem Interpreter oder durch eine VirtuelleMaschine ausgeführt werden. Mit diesen Sprachen können moderne Smalltalk-Systeme i. A. locker mithalten, denn die VM-Entwicklung ist bei Smalltalk nicht in den 80er Jahren stehengeblieben. Die schnellste Smalltalk-VM ist wahrscheinlich die von VisualWorks. Von Smalltalk nach C übersetzter Code ist in der Ausführung nicht schneller als ein durch moderne Just-In-Time-Compiler interpretiertes Smalltalk, was z. B. die Ausführungsgeschwindigkeiten von Smalltalk/X zeigen. Dass Smalltalk zu seiner Entstehungszeit langsam war, ist eine auch von Smalltalkern akzeptierte Tatsache.
Einige Smalltalk-Systeme haben eine konkrete Zielplattform, andere sind sehr portabel. Hohe Portabilität ist in der Vergangenheit oft durch Verzicht auf native Widgets (GUI-Elemente) erreicht worden. Das macht sich bei den Laufzeiten bemerkbar und dies wird z. T. bei der Weiterentwicklung bestehender Smalltalk-Systeme berücksichtigt. Ähnliche Erfahrungen wurden bei Java gemacht aber Smalltalker werden sich vehement dagegen wehren, wenn hier Vergleiche gezogen werden. Die Implementation von Swing genießt unter Smalltalkern keinen guten Ruf.
Ob Smalltalk im konkreten Fall tatsächlich zu langsam ist, muss je nach Art und Größe der Anwendung, Betriebssystem und Rechnerausstattung individuell entschieden werden. Da im Zweifel auch eine Auslagerung von Routinen in C-Bibliotheken möglich ist, lassen sich solche Vorurteile in den allermeisten Fällen ad absurdum führen. Hat meine Anwendung z. B. einen hohen GUI-Anteil aber auch einen gut isolierbaren numerischen Kern, kommt Smalltalk als Implementationssprache für den Großteil der Anwendung immer noch in Frage. Über Prototyping und Profiling ist die Information über Laufzeitengpässe schnell verfügbar und es müssen nicht etwa Teile der Anwendung komplett neu geschrieben werden.
Smalltalk hat eine schwere Syntax |
Siehe dazu den lesenswerten Essay von Niall Ross: http://wiki.cs.uiuc.edu/CampSmalltalk/new+code+syntax.
Jüngere Sprachen sind moderner |
Für Smalltalker höchst ärgerlich sind Annahmen, die Smalltalk-Entwicklung stagniere. Das ist leicht zu widerlegen. Viele, wenn auch nicht alle, bestehenden Dialekte werden derzeit aktiv weiterentwickelt; und es entstehen neue! Dabei wird natürlich auch der Markt beobachtet und Trends aufgegriffen.
Charts, in denen SpracheJava als Nachfolger von Smalltalk (und SpracheCpp) präsentiert wird, sind ähnlich irreführend, wie solche, in denen C++ als besseres SpracheCee gefeiert wird. Sicher, Smalltalk kann als Vorlage für vieles dienen, aber man kann gut oder schlecht abschreiben. SpracheRuby ist ohne Zweifel näher an Smalltalk als Java. Trotzdem wird niemand Ruby als Nachfolger von Smalltalk bezeichnen. Ruby ist eine in gleichen Teilen von SprachePerl und Smalltalk beeinflusste Sprache mit eigener Entwicklungskultur.
Ohne auf Details einzugehen: Gemessen an einigen Trends der letzten Jahre müsste Smalltalk als modern gelten. Leider wird selten auf rein technischer Ebene argumentiert und stattdessen der Grad der Popularität als Maß der Fortschrittlichkeit missbraucht.