Einsprachigkeit versus Mehrsprachigkeit

Die Gefahren der polyglotten Programmierung

Michael Thomas

© Shutterstock.com/Doungtawan

Fluch oder Segen? Nicht wenige Entwickler sind der Ansicht, dass die polyglotte Programmierung neben den unbestreitbaren Vorteilen auch teils drastische Nachteile mit sich bringen kann.

Der TechRepulic-Autor Matt Asay etwa postuliert, dass mit der modernen Technologievielfalt das Ende der Fahnenstange – sprich: Die Grenze der menschenmöglichen Geduld erreicht sei und nicht wenige Entwickler nach einer nachhaltigen Konsolidierung und dem Rückgriff auf einen relativ homogenen Mix aus Allzweck-Technologien verlangen. Asay geht sogar so weit, der von IT-Größen wie Martin Fowler einst prophezeiten „polyglotten Zukunft“ generell eine Absage zu erteilen. Denn diese, so Asay weiter, könne nur dann von Dauer sein, wenn man dazu bereit wäre, beträchtliche Zeit- und Aufmerksamkeitskosten in Kauf zu nehmen. Intuitiv sei es zwar richtig, beispielsweise die genau richtige Datenbank für einen bestimmten Datentyp auszuwählen. In der der Praxis bedeutet dies Asay zufolge jedoch, dass sich die Entwickler dazu durch Unmengen von Alternativen wühlen müssen – was weder effizient noch effektiv ist.

API Summit 2018
Christian Schwendtner

GraphQL – A query language for your API

mit Christian Schwendtner (PROGRAMMIERFABRIK)

Ein Standpunkt, dem beispielsweise auch der Redmonk-Analyst Stephen O’Grady zustimmt. Diesem zufolge nähert sich die versammelte Entwicklerschaft langsam aber sicher einem Punkt an, den man mit der Wendung „zu viel des Guten“ umschreiben könnte. In diesem Fall, so O’Grady weiter, sei eine langsamer werdende Fragmentierung und eine anschließende Konsolidierung die logische Folge. Auch den Ex-Google-Mitarbeiter Tim Bray stimmen die Kosten, die eine immer breitere Wissensbasis den Entwicklern abverlangt, eher nachdenklich. Alles Bedenken, die sich Asays Ansicht nach mehr oder weniger von alleine in Luft auflösen dürften. Denn: Bislang hat noch jeder Markt nach einer Phase der Fragmentierung eine gewisse „Bereinigung“ erfahren, in deren Zuge sich einige wenige, besonders robuste und/oder möglichst viele Einsatzzwecke abdeckende Lösungen behaupten konnten – was sich beispielsweise bei relationalen Datenbanken oder Betriebssystemen beobachten lässt.

Ein letzter Punkt, der Asays Ansicht nach gegen eine allzu ausufernde Fragmentierung spricht, ist ein nur allzu menschlicher: Zwar wünschen sich Entwickler wie jedes menschliche Wesen gewisse Auswahlmöglichkeiten. Gibt es jedoch zu viele davon, drohen diese Wahlmöglichkeiten zur Belastung zu werden.

Zwei Hauptgefahren der polyglotten Programmierung

Das Stichwort „Belastung“ könnte auch als Rahmen der Argumentation von Alex Gaynor, einem der führenden Köpfe hinter der Python Software Foundation, bezeichnet werden. Gaynor gibt zwar offen zu, dass die polyglotte Programmierung durchaus große Vorteile bieten kann: Demnach gestalten sich durch die Auswahl passgenauer Tools alle anfallenden Aufgaben etwas leichter und die Kenntnis mehrerer Programmierparadigmen macht ein Individuum unabhängig von der Sprache zu einem besseren Programmierer.

Allerdings prangert Gaynor an, das aus diesen Vorteilen mancherorts der Anspruch abgeleitet wird, immer „das richtige“ Werkzeug zu wählen, selbst dann, wenn ein weniger optimales insgesamt betrachtet die größeren Vorteile bietet. Die beiden von Gaynor identifizierten Hauptgefahren der polyglotten Programmierung hängen denn auch mit der Verhinderung von Nachteilen zusammen: So wird seiner Ansicht nach der etwa der IT-Betrieb zusätzlich – und je nach Anzahl der Sprachen potentiell über Gebühr – belastet, insbesondere dann, wenn die Sprachen nur auf einen Bruchteil des gesamten Lösungsstacks entfallen. Als weiteres Risiko betrachtet Gaynor die für sämtliche am Projekt beteiligten Entwickler steigenden Anforderungen: Schreibt ein Entwickler beispielsweise einige wenige Skripts in einer Sprache, in der nur er wirklich fit ist, ergibt sich das Problem, dass bei seinem Ausfall möglicherweise kein ähnlich qualifizierter Mitarbeiter zur Hand ist, der sich an seiner Statt um den Code kümmern kann.

Gaynor plädiert zwar nicht dafür, nur eine einzige Sprache zu nutzen, doch sollte man seiner Meinung zufolge nach Möglichkeit nie mehr als drei Sprachen gleichzeitig zum Einsatz bringen. Sowohl der IT-Betrieb als auch die Programmierer, die sich künftig um die Wartung des Codes kümmern müssen, werden es danken. Gaynors Parole lautet also: „Maß halten“.

Die Last bewältigen

Für all jene, die sich dennoch in der aus Gaynors Sicht misslichen Lage wiederfinden, sich mit allzu vielen Sprachen herumschlagen zu müssen, hat der Medium-Autor und Thoughtworks-Mitarbeiter „Prasanna“ einige Tipps parat. Prasanna tummelte sich fünf Jahren ausschließlich im Umfeld der Java-Entwicklung, bevor er bei Thoughtworks von der Masse an verschiedene Sprachen und Plattformen förmlich erschlagen wurde – nach eigener Aussage hatte er noch nicht einmal zu Universitätszeiten derart viel Neues in kürzester Zeit zu erlernen. Seine 9 Punkte umfassende Checkliste bietet griffige Ansatzpunkte, an der sich alle ähnlich geplagten Entwickler bei Bedarf entlanghangeln können.

Aufmacherbild: No talking sign von Shutterstock / Urheberrecht: Doungtawan

Verwandte Themen:

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

1 Kommentar auf "Die Gefahren der polyglotten Programmierung"

avatar
400
  Subscribe  
Benachrichtige mich zu:
trackback

[…] Dangers of polyglot programming (in German language) (this is the article inspiring me to write this blog post) Being a polyglot programmer […]