© Excellent backgrounds/Shutterstock.com
Muss es immer Java sein?

Kolumne: EnterpriseTales


Als Programmierer versuchen wir Software zu schreiben, um unsere spezifischen Probleme zu lösen. Wo einst maschinennahe Programmiersprachen wie C++ dominierten, erhoben sich Java und dessen Sprachdesign zu einer echten Alternative. Mit der Zeit haben sich jedoch Umwelt und Erfahrung verändert. Neue Sprachen, wie z. B. Kotlin, haben sich dank Google und JetBrains in der breiten Masse etabliert. Doch vor welchen Problemen steht Java heute und wie kann Kotlin überzeugen?

Java und seine Stärken

Eigentlich sollten sich Programmierer darauf konzentrieren, Businesslogik umzusetzen. Dazu sollten sie sich weniger mit technischen Herausforderungen der jeweiligen Programmiersprache auseinandersetzen müssen. Maschinennahe Sprachen sind für Geschäftsanwendungen deshalb meistens eher hinderlich, da sie eine gewisse Komplexität mitbringen. Auch deshalb erlebte Java Anfang dieses Jahrtausends einen regelrechten Hype. Verbessertes Pointer Handling, Standardisierungen in Verbindung mit dem Web, die Plattformunabhängigkeit und eine vollständige Rückwärtskompatibilität und damit verbundene Investitionssicherheit machten die Sprache unter anderem interessant für Unternehmen.

Durch Javas Verbreitung entstand eine riesige Community. Aus dieser ergab sich in der Folge ein Ökosystem mit einer Vielzahl von nützlichen Bibliotheken und Programmiersprachen rund um die Java Virtual Machine (JVM).

Doch so wie Java Spracheigenheiten von C++ verbessert hat, sind bei der Nutzung von Java selbst über die Jahre neue praktische Erfahrungen entstanden. Grundlegende Designentscheidungen, wie z. B. der „Billion Dollar Mistake“ (die Null-Referenz), die im Nachhinein hätten anders getroffen werden sollen, sind aufgrund der Rückwärtskompatibilität nur schwer wieder rückgängig zu machen. Auch Unternehmensentscheidungen und Hypes wie der Weg zum Cloud-Computing – das Auslagern von Infrastruktur an externe Anbieter, das Auftrennen von Software in kleine Dienste (Microservices) oder der Wegfall von klassischen Desktopapplikationen hin zu Single Page Applications (Applikationen, die vollständig im Browser laufen) beeinflussen die Technologiestacks heutzutage stark. Dazu kommen Konzepte und Methoden der Softwareentwicklung selbst, wie das Domain-driven Design, die Verwendung von bestimmten Entwurfsmustern oder der immer weiter ansteigende Anteil funktionaler Konzepte im Sprachdesign. Programmiersprachen unterliegen deshalb gewissen Anforderungen von Entwickler- und Unternehmensseite.

Dynamik in der Umge...

Neugierig geworden?

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