Software-Entwicklung

Welche Sprache sprechen Sie morgen?

Uhr | Aktualisiert

Immer wieder entstehen neue Programmiersprachen, manche setzen sich durch, andere fristen ein Nischendasein. Was bedeutet dies für Softwareunternehmen? Drei Vertreter von Unternehmen sprechen über ihre Erfahrungen.

Die Welt der Programmiersprachen entwickelt sich immer weiter: So hat beispielsweise Apple Anfang Juni mit Swift eine neue, eigene Programmiersprache vorgestellt. Auch Google hat mit Go seine eigene Programmiersprache entwickelt. Und Scala, eine Sprache, die an der ETH Lausanne entwickelt wurde, soll objektorientierte und funktionale Sprachen miteinander verbinden und weist grosse Ähnlichkeiten mit Java auf.

Nebst diesen populären Beispielen gibt es unzählige Programmiersprachen, die von Entwicklern für einzelne Projekte entwickelt werden und dann wieder in der Versenkung verschwinden. Damit eine Sprache also überleben kann, muss sie leben und aktiv in vielen verschiedenen Projekten eingesetzt werden. Erich Oswald, CTO von Ergon Informatik, weist auch darauf hin, dass es für die Verbreitung einer Sprache wichtig sei, dass sie auf einem bestehenden Ökosystem aufsetzen kann.

Viele in den letzten Jahren bekannt gewordenen Programmiersprachen stützten sich deshalb auf bestehende Plattformen wie die Java Virtual Machine (JVM), Microsofts Common Language Runtime oder den POSIX-Standard. «Dies erleichtert die Integration von Komponenten, die in der neuen Programmiersprache geschrieben werden, mit bestehenden Systemen», so Oswald.

Neue Technologien, neue Möglichkeiten

Andrej Vckovski, CEO von Netcetera, sieht in den neuen Sprachen vor allem eine Möglichkeit, die neuen Technologien von heute zu begünstigen. Gerade beim Cloud Computing werde immer häufiger die effektiv verbrauchte Rechenleistung in Rechnung gestellt. Daher sei es notwendig, dass die Software, die man dafür schreibe, effizient sei und nicht zu viele Ressourcen benötige. Dies sei gerade im Zusammenhang mit Skalierungsmöglichkeiten wichtig, sonst eskaliere das Ganze schnell einmal.

Die neuen Möglichkeiten bringen aber nicht nur Vorteile mit sich: «Ich glaube schon, dass Unternehmen diesbezüglich heute eine grössere Auswahl haben als vor 10 oder 20 Jahren. Diese Auswahl bringt aber auch die Qual, die jeweils geeignetste Sprache für ein Projekt zu wählen», gibt Vckovski zu bedenken. Allerdings fänden Entwicklungen selten auf der grünen Wiese statt. Daher entwickle man innerhalb eines bestehenden Kontextes, was die Planungsmöglichkeiten extrem einschränke.

Wartbarkeit und Lebensdauer

Die Wahl der Programmiersprache hat denn auch Auswirkungen auf die Wirtschaftlichkeit eines Projekts, wie Vckovski weiter ausführt: «Wenn ich heute ein Projekt in Cobol mache, ist es sicher weniger gut wartbar als eines, das ich beispielsweise in Java programmiere. Java lebt wahrscheinlich noch länger als zehn Jahre.»

Dieser Meinung ist auch Oswald. «Es gibt Programmiersprachen, die bestens geeignet sind, um sehr schnell zu benutzbarer Softwarezu kommen. Soll die Software dann aber über längere Zeit erweitert und angepasst werden, sind andere Programmiersprachen effektiver, selbst wenn der Aufwand für die initiale Entwicklung höher ist. Solche Überlegungen können die Wahl einer Programmiersprache durchaus beeinflussen.»

Neue Sprachen lernen

Nicht zuletzt besteht auch ein Zusammenhang zwischen der gewählten Programmiersprache und dem bestehenden Entwicklerteam: Entwickler kommen und gehen, die Codebasis eines Projekts bleibt aber meist längere Zeit bestehen: Oder, um es mit den Worten Oswalds zu sagen: «Software lebt fast immer länger als erwartet. Wenn vom ursprünglichen Entwicklerteam niemand mehr verfügbar ist und alle neuen Teammitglieder die verwendete Sprache nicht kennen, wird die Wartung schwierig.

Bewährte, aber in den Augen der Entwickler eher altbackene Programmiersprachen haben hier den Vorteil, dass sie für alle verständlich sind.» Nicht ganz unwichtig sei in diesem Zusammenhang auch die Einarbeitungszeit in eine Programmiersprache. Auch das Verhältnis zwischen neu zu schreibendem Code – was in modernen Programmiersprachen flüssiger vonstatten gehe – und der Verwendung von bestehendem Code – was in der dafür verwendeten Programmiersprache mit weniger Aufwand verbunden sei – spielt laut Oswald eine Rolle.

Neue Codebasis – ja oder nein?

Nicht immer aber hat ein Unternehmen oder ein Auftraggeber bezüglich der Sprache die freie Wahl. Denn in vielen Fällen ist bereits eine Codebasis gegeben, auf die man weiter aufbauen sollte, selbst wenn sich eine neue Sprache für die Weiterentwicklung des Projekts vielleicht besser eignen würde. «Tendenziell ist es schwierig, für ein Projekt eine neue Sprache einzuführen und das Projekt auf dieser Sprache komplett neu aufzubauen. Schliesslich muss man den Kunden vom Nutzen eines solchen Vorhabens überzeugen.

Er hingegen sieht vor allem den Vorteil einer bestehenden Codebasis und des bestehenden Know-hows», sagt dazu Vckovski. Und selbst wenn der Auftraggeber der Idee einer Neuentwicklung mit einer anderen Sprache offen gegenübersteht, kann es sein, dass sich die Entwickler querstellen, denn sie finden meist diejenige Sprache am besten, die sie selbst gut kennen. Das hat aber nicht nur Vorteile: «Wenn man es sich in einer Programmiersprache zu bequem macht, bekommt man auch eher einen eingeengten Blickwinkel. Deswegen ist es wichtig, dass man sich auch immer wieder neu orientiert », zeigt sich Vckovski überzeugt.

Netcetera unterstützt diese Entwicklung, wenn das Team auf der grünen Wiese anfangen kann. «In diesen Fällen versuchen wir herauszufinden, welche Sprache wirklich am besten zur Aufgabenstellung passt.» Zwar gebe es in solchen Situationen unter den Entwicklern die üblichen Widerstände gegen Veränderungen, aber sobald dieser Widerstand einmal überwunden sei, seien die Entwickler meist auch sehr daran interessiert, etwas Neues zu lernen. «Das macht ihre Arbeit letztlich ja auch interessant», so Vckovski.

Ruby on Rails

Auch Bernhard Bühlmann, CEO des Berner Softwareunternehmens 4Teamwork, hat für sein Unternehmen mit Ruby on Rails eine neue Programmiersprache entdeckt, mit der er nun seit einem Jahr entwickelt: «Ruby on Rails eignet sich hervorragend für die agile Entwicklung von Webanwendungen», schwärmt Bühlmann. Zudem könne man Ruby on Rails für Projekte einsetzen, bei denen man schnell ein Ergebnis benötige und die Anforderungen nicht ganz klar seien. Daher sei die Sprache auch für die Entwicklung mit Scrum interessant.

Daneben arbeitet das Entwicklerteam von 4Teamwork seit etwa 13 Jahren mit Python, einer Sprache, die in der Schweiz noch keine grosse Bedeutung hat, sich aber zu einer der wichtigsten Programmiersprachen für Internetapplikationen gemausert hat. Man komme damit sehr schnell zu einem Ergebnis, so Bühlmann. Die Sprache sei zudem sehr einfach zu lernen und zu lesen, auch wenn man zum ersten Mal einen Python-Code sehe.

Services, die kommunizieren

Bühlmann glaubt, dass die Zukunft der Softwareentwicklung in modernen, serviceorientierten Anwendungen liegt. «SOA ist vor zehn Jahren gescheitert. Heute hat man aber neue Technologien, mit denen man SOA perfekt umsetzen kann.» Daher spiele es eigentlich keine Rolle mehr, in welcher Sprache Services entwickelt würden. «Man muss einfach die verschiedenen Dienste miteinander verknüpfen können, damit sie Daten miteinander austauschen können. Auf diese Art und Weise hat man getrennte Services, das erleichtert die Wartung und Pflege der Anwendung. Denn so kann man die einzelnen Services unabhängig voneinander weiterentwickeln», zeigt er sich überzeugt.

In der Schweiz habe man bisher eher traditionell mit Java und .NET entwickelt. Das werde sich aber in den nächsten Jahren ändern. Die Zeiten monolithischer Anwendungen mit zig Millionen Codezeilen sind laut Bühlmann vorbei. Auch Apples Einführung von Swift steht Bühlmann positiv gegenüber: «Objective-C war mühsam. Mit Swift hat Apple das korrigiert. » Daher werde Apple sicherlich einen Boost für die App-Entwicklung erleben, da das Unternehmen für Entwickler attraktiver werde.

ETH Zürich vermittelt Sprachkonzepte

Auch die ETH Zürich sieht die Zukunft nicht in einzelnen Programmiersprachen allein. Sie vermittelt daher ihren Informatikstudenten primär die Sprachkonzepte und nicht nur die einzelnen Sprachen. «Wir wollen, dass unsere Studenten sich leicht in die verschiedensten neuen Sprachen einarbeiten können, statt dass sie nur auf die Sprachen trainiert sind, die zurzeit ‹in Mode› sind», sagt Sebastian Nanz, Informatikdozent an der ETH Zürich.

Dies bestätigt auch sein Berufskollege Bertrand Meyer, der ebenfalls an der ETH in Zürich doziert und die Programmiersprache Eiffel entwickelt hat: «Hat man einmal die grundlegenden Sprachkonzepte erlernt, kann man gut eine neue Programmiersprache lernen, das ist für einen guten Informatiker kein Problem», so Meyer. Zu diesen Konzepten gehören beispielsweise Design Patterns oder das Konzept der Datenkapselung (Encapsulation).

Entwickler gibts genug

Meyer weist auch darauf hin, dass heutzutage die Fähigkeit, Programme zu schreiben, nichts Besonderes mehr sei. «Es gibt viele Leute auf der Welt, die programmieren können und dafür auch weniger Lohn verlangen als dies ein Schweizer Entwickler tun würde.» Viel wichtiger sei es, gut und sauber programmieren zu können und Programme zu schreiben, die man einfach erweitern oder wiederverwenden könne.

Viele Unternehmen scheinen allerdings noch sehr auf einzelne Sprachen ausgerichtet zu sein. Laut dem Personaldienstleister Hays legt ein Softwareunternehmen, das nach einem Entwickler sucht, meist Wert darauf, dass dieser sich in einer bestimmten Sprache auskennt. Bei 95 Prozent der Firmen, die Softwareentwickler suchen und einstellen, müsse eine spezifische Softwaresprachen-Kenntnis vorhanden sein, so ein Sprecher von Hays. Manchmal werde allerdings auch eine Ausnahme gemacht, wenn sich jemand nur mit einer älteren statt der neuesten Version der gesuchten Sprache auskenne.