Programmiersprachen
07.03.2016 – André Naef
Programmiersprachen sind fantastisch! Es gibt so viele zur Auswahl.
Für Aussenstehende mag das überraschend sein, doch wenn ein Bewerber als Softwareingenieur zu uns kommt, interessiert es uns nur am Rande, welche Programmiersprachen sie oder er beherrscht. Denn letztlich zeichnet sich ein guter Softwareingenieur durch seine Herangehensweise an eine Fragestellung und die Methodik der Lösungsfindung aus. Diese hart erworbenen Skills sind zeitlos, im Gegensatz zu Programmiersprachen und Frameworks, die stetem Wandel unterworfen sind.
Das soll nicht heissen, dass Programmiersprachen in unserem Alltag keine Rolle spielen. Wir verbringen einen wesentlichen Teil unserer Arbeitszeit mit dem Lesen und Schreiben von Programmcode, der jeweils in einer bestimmten Sprache gehalten ist. Es dauert Jahre, bis man eine Programmiersprache tief und gut beherrscht. Beim Einstieg in ein Projekt erfordern jedoch häufig die eingesetzten Frameworks und Tools den grösseren Lernaufwand - und natürlich das Verständnis der Businessdomäne des Kunden.
Unter den statischen Programmiersprachen ist Java unser vertrautes Arbeitstier. Keine andere Sprache steht in so vielen unserer Projekte und Lösungen im Einsatz. Die Sprache wird stetig weiterentwickelt und bringt alles mit sich, was für die Konstruktion einer komplexen Software erforderlich ist. Weiter wartet Java mit einem der umfassendsten Ökosysteme an Frameworks, Entwicklungsumgebungen, Build Tools und weiteren Hilfsmitteln auf.
Für kleine und mittlere Lösungen setzen wir auch gerne dynamische Sprachen ein, zum Beispiel NodeJS (JavaScript). Die dynamischen Sprachen zeichnen sich durch eine höhere Ausdrucksstärke aus. Der geschriebene Code bezieht sich zu einem grösseren Anteil direkt auf spezifische geschäftliche Anforderungen des Kunden. Die Entwicklung kann so schneller vorangetrieben werden. Weil dynamische Sprachen weniger statische Schutzmechanismen mit sich bringen, ist es jedoch eine grössere Herausforderung, eine Lösung gesund wachsen zu lassen, ohne dabei technische Schuld aufzubauen. In diesem Sinne sind dynamische Sprachen trügerisch: Sie wirken oberflächlich einfacher, benötigen aber tiefergehende Skills, damit eine Lösung langfristig werthaltig bleibt.