Die Keynote der Scaladays 2013, gehalten von Rod Johnson, ist inzwischen online ansehbar. Ausgehend von der Frage, mit welchen Programmiersprachen man auch Gedichte schreiben kann, stellt er sich die Frage, wie 2018 Scala eine Mainstream-Sprache geworden ist (bzw. was die Entwicklung hierfür begünstigen würde). Dabei stellt er einige interessante Überlegungen über Vor- und Nachteile von Mächtigkeit und Komlexität von Programmiersprachen an, aber allein die Gedichte machen den Vortrag sehenwert.
Es gibt tatsächlich einen Perl Poetry Contest, in dem Gedichte in Perl geschrieben werden. Johnson versuchte sich einleitend analog in einem Gedicht in Scala. Das bringt ihn zu der Frage, daß dies ja nicht in jeder Sprache möglich sei; mit Java beispielsweise wäre so etwas unmöglich.
Anhand verschiedener Beispiele, Zitate und weiterer Programmiersprachen diskutiert er die Vor- und Nachteile der Mächtigkeit von Sprachen. Letztlich läßt es sich auf das „Spiderman-Prinzip“ herunterbrechen: Mit großer Macht kommt große Verantwortung. Mächtige Sprachen erlauben es, sehr elegant und lesbar auf den Punkt zu kommen – aber man kann sie eben auch mißbrauchen (sei es zu Gedichten oder zu vollkommen unleserlichem Code).
Scala attestiert er eine große Zukunft, interessanterweise insbesondere im Business- und Enterprise-Bereich. Meine persönliche Einschätzung wäre gewesen, daß insbesondere Startups und junge Firmen sich auf neue Technik wie Scala stürzen, aber möglicherweise hat Johnson hier einen besseren Überblick.
Im Kontext der Komplexität von Scala erteilt er den funktionalen Puristen eine deutliche Absage; dies ist seiner Meinung nach ein ähnlicher Mißbrauch der Sprache, Scala sei schließlich als Hybrid konzipiert. Im gleichen Zug prangert er an, daß häufig in der Scala-Community eine „objektorientiert schlecht, funktional gut“-Haltung herrsche, mit der insbesondere Anfänger abgekanzelt würden.
Mit etwas Sorge betrachtet er die seiner Meinung nach zu rasante Weiterentwicklung der Sprache. Dies macht es Neueinsteigern immer schwieriger, aber auch die Entwicklung robuster Compiler und Tools wird dadurch erschwert. Eine nicht unvernünftige Anregung finde ich den Vorschlag, ab einem gewissen Punkt ein „Scala Stable“ mit einem abgehangenen Set an Sprachfeatures und ein „Scala Academic“ mit den neuesten Experimenten zu haben – ähnlich wie bei Linux-Distributionen Programme von „testing“ nach „stable“ wandern, könnten so praxiserprobte Funktionen nach einer Vorlaufzeit in den Compiler für die breite Masse wandern.
Positiv bewertet er hingegen die Entwicklung der gesamten Toolchain (Compiler, IDE-Support, etc.): Es gäbe zwar noch immer einiges zu tun, aber es ginge zügig voran.
Alles in allem zeichnet er ein pragmatisches Bild: Es macht keinen Sinn, eine Bibliothek in Scala neu zu erstellen, wenn es eine entsprechende erprobte Java-Bibliothek gäbe; sinnvoller sei es vielmehr, hierauf aufzusetzen und Schnittstellen mit Scala-Feeling zu erstellen. Neuen Nutzern muß der Weg etwas mehr geebnet werden, sowohl in Bezug auf Haltung der Community als auch mit der Flut an neuen Features, welche nebenbei auch dafür sorgt, daß Tutorials und Bücher beinahe rascher veraltet sind als sie geschrieben werden können. Aber all diese Hürden sind lösbar, und 2018 sieht er Scala als Mainstream-Sprache, die Java nicht verdrängt, aber als ebenbürtiger Partner ergänzt (womit sich seine Einschätzung mit der meinen deckt).
(via OIO Blog)