© iStockphoto.com/P2007, © S&S Media
JavaScript im Land der Fantasie

Olis bunte Welt der IT


Im April 2013 fand eine interessante Diskussion im GitHub Repository für die Planung der Spezifikation Promises/A+ statt [1]. Es wurde vorgeschlagen, dass die für JavaScript zu spezifizierenden Promises als Monaden erkannt und Promises/A+ entsprechend geändert bzw. ergänzt werden sollte. Im Detail waren die Vorschläge für die Änderungen sehr einfach, wurden jedoch von Domenic Denicola kurzerhand für unbrauchbar erklärt.

„Yeah, this is really not happening“, schrieb Herr Denicola, „It totally ignores reality in favor of typed-language fantasy land ...“. Zu Deutsch: Das wird ganz sicher nicht passieren, der Vorschlag ignoriert die Realität vollständig zugunsten eines Fantasielandes von typisierten Sprachen. Die lange Diskussion, die auf diesen kurzen Austausch folgte, ist als unterhaltsame Lektüre für regnerische Nachmittage durchaus empfehlenswert. Es lassen sich daraus mehrere Dinge lernen:

  • Promises sind Monaden, oder können zumindest als solche betrachtet werden.

  • Es gibt zu viele Liebhaber funktionaler Programmierung, die nicht in der Lage sind, einen Zusammenhang ohne Erwähnung komplexer mathematischer Zusammenhänge zu erklären.

  • Auf der anderen Seite gibt es zu viele Menschen, die Argumente anderer nicht im Detail bedenken, wenn sie mit der grundsätzlichen Aussage nicht einverstanden sind.

  • Schockierenderweise waren einige der zuletzt erwähnten Menschen mit der Erstellung von Promises/A+ beschäftigt.

Die Einstellung von Domenic Denicola, mit der alles anfing (und Promises/A+ letztlich endete), ist natürlich bedauerlich, besonders im Rückblick. Ganz offensichtlich hatte der Mann gar nicht verstanden, worum es bei dem Vorschlag eigentlich ging. Mir kamen beim Lesen Zweifel, ob er überhaupt die Idee von Monaden verstanden hatte. Eigentlich waren diese im Jahr 2013 schon seit langem kein Thema nur für funktionale Puristen mehr. In .NET etwa waren die monadischen Aspekte des LINQ API spätestens seit 2008 Gegenstand mancher Diskussionen und erhellender Präsentationen. Allerdings war Domenic Denicola offenbar besonders auf einen völlig anderen Aspekt fixiert: Er meinte, erkannt zu haben, dass die fraglichen Änderungen nur für (strikt?) typisierte Programmiersprachen sinnvoll seien. Das stimmt eigentlich gar nicht, trägt aber dazu bei, dass die weitere Entwicklung heute als besonders unglücklich zu betrachten ist, nachdem TypeScript und andere semitypisierte Ansätze für JavaScript sehr erfolgreich sind.

Das Fantasy Land

Glücklicherweise ergaben sich viele posi...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang