Programmiersprache – das neue Babylon

Der Brancheninformationsdienst Heise.de hat die beliebteste Programmiersprache 2016 ausgerufen. Das Ergebnis: Java. Während das für die eingefleischten Java-Programmierer wenig überraschend sein dürfte, werden gerade jüngere Programmierer das Ergebnis mit Skepsis sehen. Programmiersprachen waren schon immer Gegenstand von religiösen Diskussionen (was man auch in den Kommentaren zu dem Artikel sieht), aber mir kommt es so vor, als ob es in der letzten Zeit durch die Popularität neuer Sprachen diese an Schärfe gewonnen haben.

Schaut man 15 Jahre zurück, dann gab es (zumindest im Webumfeld) eigentlich nur zwei Sprachen: Java und PHP. Während PHP dabei hauptsächlich von Frontendentwicklern eingesetzt wurde, die dann gerne mal SQL direkt in den HTML-Templates verwendeten, machten Java-Programmierer aus jedem kleinen Projekt eine Mammutaufgabe. Einige verwegene Microsoft-Enthusiasten setzten auf ASP und JavaScript wurde nur für kleinere Skripteschnippsel gebraucht. Alles andere spielte eher eine Nebenrolle. Erst mit dem Aufkommen von Rails, womit man innerhalb weniger Stunden prototypisch komplette Webseiten hochziehen kann, etablierte sich auch Ruby. Durch seine Leichtgewichtigkeit fand die Sprache schnell Freunde neben der reinen Frontendentwicklung.

Wie aber schon angedeutet, sind gerade in den letzten fünf Jahren deutlich mehr Sprachen auf den Markt gekommen, die im Webbereich nicht mehr nur in Nischen benutzt werden. Golang, Erlang, Elixir oder Scala haben sich eine feste Fangemeinde erobert. Und gerade in Zeiten, wo immer mehr Anwendungen von monolithischen Strukturen in autonome Services umgebaut werden, können hier theoretisch für jeden Service eine andere Sprache benutzt werden. Eine Ausnahme bilden zurzeit die mobilen Anwendungen, hier sind die Sprachen (Java und Objective-C bzw. Swift) durch die Plattformen festgelegt.

Darüber hinaus erhöht es die Chance bei der Jobsuche, wenn man zumindest eine gebräuchliche Sprache kennt. Da es immer noch eine ganze Reihe an bestehenden Anwendungen in C, Java oder Python gibt (und neue Projekte werden diese auch in Zukunft benutzen, siehe den nächsten Abschnitt) kann man immer mit diesen starten und später vielleicht selber eine neue einführen.

Welche Programmiersprache soll man benutzen?

Was heißt das aber für den angehenden Programmierer, welche Sprache sollte er als erstes lernen? Und welche Sprache sollte ich für mein StartUp oder das Refactoring der Legacy-Anwendung in Betracht ziehen? Für beide Fragen gibt es natürlich keine einfache, universell gültige Antwort. Die hängt viel von den Zielen und den Umständen ab. Aber man kann zumindest einige Tipps geben.

Für den Einsteiger ist natürlich das Lernen einer neuen Programmiersprache leichter, wenn deren Struktur sehr flexibel ist. Ruby oder JavaScript sind hier sicher einfacher als zum Beispiel Java oder C++. Aber gerade für den Anfänger ist es meiner Meinung nach besser, sich eine Sprache mit mehr Strukturen anzueignen, die dann später auch auf andere Sprachen übertragbar sind. Das Problem an PHP zum Beispiel ist nicht, dass es eine schlechte Sprache ist, sondern dass die Sprache es einfach macht, schlecht zu programmieren. Auch in Java kann man unstrukturiert programmieren, es ist aber schwerer. Steigt man dann später von Java auf zum Beispiel Ruby um, kann man viele strukturelle Verhaltensweisen übernehmen, die die Übersichtlichkeit erleichtern. Das ist ähnlich, wie wenn man Autofahren lernt. Natürlich ist ein Kleinwagen einfacher zu überblicken und in einigen Situationen (Parkplatzsuche) einfach praktischer. Aber wenn man auf einem großen Kombi oder SUV gelernt hat, kann man später einen Kleinwagen einfacher fahren als wenn man von dem auf ein großes Auto umsteigt.

Bei neuen Projekten sollte die Wahl gut überlegt sein

Und was ist nun mit dem StartUp? Hier kann die Wahl der Sprache entscheidend für den Erfolg sein. Nicht unbedingt wegen der Sprache selber, sondern vor allem wegen des Ökosystems der Sprache. Ein StartUp wird normalerweise mit zwei, drei Programmierern starten. Jeder einzelne ist dabei sehr wichtig für die Firma und muss im Fall eines Ausscheidens so schnell wie möglich ersetzt werden. Setzt man nun auf eine relativ exotische Sprache so kann es noch schwerer werden, einen geeigneten Nachfolger zu finden, als es sowieso schon ist. Im schlimmsten Fall lässt man sich die erste Version von einer externen Agentur erstellen, die dann die Entscheidung für eine eher unbekannte Sprache getroffen hat, wo man selber dann entsprechende Experten für finden muss.

Des Weiteren sollte man natürlich darauf achten, dass die Anzahl der eingesetzten Sprachen möglichst gering bleibt. Die Möglichkeit, Frontendentwickler auch im Backend einzusetzen und vice versa ist gerade in einem kleinen Team von unschätzbaren Wert. Ist dann im Backend jeder Service in einer anderen Sprache programmiert, ist es für neue Programmierer umso schwerer, sich einzuarbeiten und eine Übersicht zu bekommen.

Eine Besonderheit stellt dabei JavaScript dar. Als reine Frontend-/Browsersprache gestartet, erobert es mittlerweile durch Node.JS immer mehr das Backend. Dadurch können versierte Fullstack-Entwickler schnell im Frontend als auch im Backend entwickeln. Aber man sollte aufpassen, denn nicht jeder Frontend-Entwickler kann auch Backend-Services schreiben (was umgekehrt fast noch mehr für Backend-Entwickler im Frontend zutrifft).

Ein weiterer Aspekt, den man beachten sollte, ist die Verfügbarkeit von Konnektoren für Datenbanken, Dienste und ähnliches. Für fast jede Programmiersprache gibt es zwar oft irgendeine Implementation. Aber manchmal ist genau diese ein Hobby-Projekt von einem einzelnen Entwickler ist, der das zuletzt vor einem halben Jahr aktualisiert hat. Besser ist es auf jeden Fall, wenn es eine rege Entwicklergemeinde gibt. Ansonsten läuft man Gefahr, bei zukünftigen Updates oder Fehlern keinen Support zu bekommen.

Die „beste“ Programmiersprache gibt es nicht

Auch in Zukunft werden Diskussionen um die Wahl der „richtigen“ Programmiersprache immer ideologisch geprägt sein. Aber abseits davon sollte man gerade in kleineren Organisationen vorsichtig sein, hinter jedem Trend hinterherzulaufen, nur, weil es gerade schick ist. Die Wahl einer traditionellen Programmiersprache ist vielleicht langweiliger, aber meist risikoärmer. Gerade das Drängen von einzelnen Programmierern, doch mal diese oder jene Sprache einzusetzen, weil sie ja so viel besser sei, sollte man immer nur dann nachgeben, wenn man auch bedacht hat, was passiert, wenn diese Programmierer einmal nicht mehr da sind.

Du magst vielleicht auch

Kommentar verfassen