Definition

Polyglotte Programmierung

Was ist polyglotte Programmierung?

Unter polyglotter Programmierung versteht man das Schreiben von Code in mehreren Sprachen, um zusätzliche Funktionen und Effizienz zu erreichen, die in einer einzelnen Sprache nicht verfügbar sind.

Im weitesten Sinne ist ein Polyglott (griechisch für vielsprachig) eine Person, die mindestens vier Sprachen spricht und verwendet. Möglicherweise können sie auch andere Sprachen verstehen. Der Begriff polyglott lässt sich auf die Praxis der Programmierung übertragen.

So ist polyglotte Programmierung ein Ansatz, bei dem Programmierer Code in mehr als einer Sprache schreiben, um die Vorteile oder die Effizienz all dieser Sprachen zu nutzen und die Funktionalität des zu erstellenden Softwareprodukts zu erweitern. Aus denselben Gründen können sie auch mehrere Frameworks, Dienste, Datenbanken und Modularitätsansätze wie objektorientierte Programmierung (OOP) und funktionale Programmierung verwenden, um eine Anwendung zu entwickeln.

Der Bedarf für polyglotte Programmierung

Polyglotte Programmierung wird als notwendig erachtet, wenn eine einzige Sprache nicht das gewünschte Maß an Funktionalität oder Geschwindigkeit bieten, nicht richtig mit der Datenbank oder der gewünschten Bereitstellungsplattform interagieren oder die Erwartungen der Endbenutzer nicht erfüllen kann.

Die Konzentration auf eine einzige Sprache kann in mancher Hinsicht von Vorteil sein. So können beispielsweise Programmierer, die sich auf Python oder Java spezialisieren, ihr Fachwissen bei der Entwicklung von Anwendungs-Backends ausbauen. Ebenso sind Programmierer, die sich auf HTML oder Cascading Style Sheets (CSS) spezialisiert haben, in der Regel Experten für die Erstellung von Websites und Webanwendungen.

In manchen Fällen kann es jedoch notwendig sein, Paradigmen und Ideen aus verschiedenen Sprachen zu verwenden, um eine nützlichere Anwendung zu erstellen. Hier kommen die polyglotte Programmierung und polyglotte Programmierer ins Spiel.

Abbildung 1: Verschiedene Programmiersprache und ihre Vor- beziehungsweise Nachteile.
Abbildung 1: Verschiedene Programmiersprache und ihre Vor- beziehungsweise Nachteile.

Polyglotte Programmierung in der realen Welt

Die Verwendung von domänenspezifischen Sprachen (Domain Specific Language, DSL) ist zu einer Standardpraxis für die Entwicklung von Unternehmensanwendungen geworden. Ein mobiles Entwicklungsteam kann zum Beispiel Java, JavaScript und HTML5 verwenden, um eine voll funktionsfähige Anwendung zu erstellen. Andere DSLs – wie Structured Query Language oder SQL (für Datenabfragen), Extensible Markup Language oder XML (eingebettete Konfiguration) und CSS (Dokumentenformatierung) – werden ebenfalls häufig in Unternehmensanwendungen integriert.

Wenn jedoch einige oder alle diese Sprachen in einer Anwendung kombiniert werden müssen, ist eine polyglotte Programmierung erforderlich. Ein Entwickler kann mehrere Sprachen beherrschen, oder ein Team mit unterschiedlichen Sprachkenntnissen kann zusammenarbeiten, um polyglotte Programmierung durchzuführen. In jedem Fall bietet die polyglotte Programmierung eine größere Auswahl an Sprachen, so dass die Teams die Sprachen auswählen können, die für sie (und die Anwendung) am besten geeignet sind.

Was sind die Vorteile polyglotter Programmierung?

Die Befürworter der polyglotten Programmierung behaupten, dass die Verwendung der effektivsten Sprache für jeden Aspekt eines Programms eine schnellere Entwicklung, ein besseres Verständnis für die Geschäftsinteressenten und ein optimaleres Endprodukt ermöglicht. Darüber hinaus bedeuten kürzere Entwicklungszeiten oft eine vereinfachte Codebasis, die die Wartung und Aktualisierung des Codes vereinfacht. Auch die Kommunikation und Zusammenarbeit zwischen den Entwicklern während des Softwareentwicklungszyklus (Software Development Lifecycle, SDLC) wird verbessert.

Polyglotte Programmierung bedeutet, einen technologieunabhängigen Ansatz für die Softwareentwicklung zu wählen. Dieser Ansatz ermöglicht es Unternehmen, sich nicht auf eine bestimmte Sprache oder ein bestimmtes Tool festzulegen, sondern die beste Sprache und das beste Tool – oder Sprachen und Tools – für ihre Anforderungen zu wählen.

Dieser Ansatz ermöglicht es den Entwicklern auch, bei der Wahl der Sprachen flexibler zu sein. Eine solche Flexibilität bedeutet, dass sie sich nicht darauf beschränken müssen, mit nur einer Sprache zu arbeiten, um ein Produkt zu entwickeln oder ein Problem zu lösen. Der Wegfall dieser Beschränkungen verbessert ihre Kreativität, Effizienz und Produktivität, so dass sie letztendlich ein besseres Produkt entwickeln können.

Polyglotte Programmierung ist auch für Unternehmen wichtig, die von Infrastructure as Code (IaC) profitieren wollen. IaC steht für die Bereitstellung und Verwaltung der Unternehmensinfrastruktur durch Code, insbesondere durch Konfigurationsdateien. Die Kodifizierung der Infrastruktur führt zu einer Automatisierung der Bereitstellungsabläufe und erleichtert die Verwaltung der Infrastruktur. Die Abschaffung manueller Prozesse sorgt für mehr Transparenz und Versionskontrolle bei der Bereitstellung und verhindert Ad-hoc-Konfigurationsänderungen. Allerdings erfordert die Implementierung von IaC, dass Systemadministratoren und Site Reliability Engineers (SREs) mehrere Programmiersprachen beherrschen. Mit anderen Worten: Sie müssen polyglotte Programmierer sein.

Was sind die Nachteile polyglotter Programmierung?

Die Integration einer Vielzahl von Sprachen in eine einzige Anwendung kann zusätzliche Komplexität mit sich bringen. Der Ressourcenverbrauch kann durch Schulungen, Tests und Wartung steigen. Die polyglotte Programmierung kann auch dazu führen, dass der Code nur schwer eingesetzt werden kann, wenn der Betrieb nicht mit denselben Sprachen vertraut ist, die bei der Entwicklung verwendet werden.

Aber im Allgemeinen überwiegen die Vorteile der polyglotten Programmierung ihre Nachteile. Und Teams, die sich aus erfahrenen polyglotten Programmierern zusammensetzen, entwickeln in der Regel qualitativ bessere Softwareprodukte als Teams, die sich aus Sprachspezialisten zusammensetzen.

Was ist die Zukunft der polyglotten Programmierung?

Das Aufkommen und die zunehmende Verbreitung von agilen Entwicklungsmethoden haben zum Wachstum der polyglotten Programmierung beigetragen. Aufgrund der Dominanz von Agile arbeiten immer mehr Softwareingenieure über den gesamten Stack hinweg – eine Idee, die als Full-Stack-Entwicklung bekannt ist – anstatt sich auf einen bestimmten Teil davon zu beschränken. Das ist nur möglich, wenn sie sich mit mehreren Sprachen und Frameworks auskennen, das heißt wenn sie polyglotte Programmierer sind. Wenn Entwicklungsteams und Organisationen agile Praktiken übernehmen, werden sie der Idee und den Vorteilen der polyglotten Programmierung gegenüber offen sein.

Die Verfügbarkeit von Low-Code-Entwicklungsplattformen erleichtert ebenfalls die polyglotte Programmierung. Diese Plattformen ermöglichen es Entwicklern, die zuvor auf eine Frontend- oder Backend-Sprache spezialisiert waren, sich problemlos an eine neue Sprache anzupassen und Full-Stack-Anwendungen in beiden Sprachen zu erstellen. Außerdem können sie eine Anwendung schneller erstellen und testen und so die Markteinführung und die Wertschöpfungszeit beschleunigen.

Diese Definition wurde zuletzt im April 2024 aktualisiert

Erfahren Sie mehr über Softwareentwicklung