JAXenter: Hallo Herr König. Zurzeit entstehen ja viele neue Programmiersprachen, die auf der JVM lauffähig sind (Scala, JRuby, Clojure, Groovy, JavaFX etc.). Warum sollte ein Entwickler sich diese neuen Sprachen ansehen?
Dierk König: Allein schon aus zeitlichen Gründen kann man sich nicht alles ansehen. Als Entwickler hat man schon genug damit zu tun, die Sprachfeatures, Frameworks und Komponenten zu beherrschen, die man im aktuellen Projekt braucht.
Eine neue Sprache für ein Projekt zu erlernen, macht nur dann Sinn, wenn man sie nach ein paar Tagen Einarbeitung schon gewinnbringend einsetzen kann. Im Rahmen einer langfristigen Ausbildungsplanung kann die Einarbeitung in eine neue Sprache den Horizont erweitern.
JAXenter: Sind wir nicht bald in der babylonischen Situation, dass sich bei der Sprachenvielfalt niemand mehr versteht?
Dierk König: Das Verständnis über Sprachgrenzen hinweg ist schon heute schwierig. Das Build-System (Ant, Maven), die Persistenz (ORM, SQL), die Services (REST, SOAP), die Präsentation (HTML, CSS, JavaScript) und das Domänenmodell (Java) nutzen häufig verschiedene Sprachen. Oftmals gibt es sogar Projekt-spezifische Sprachen in Form von Domain Specific Languages.
JAXenter: Die JVM vereinigt die vielen Sprachen auf einer Plattform. Sind wir schon so weit, dass sich verschiedene Sprachen tatsächlich produktiv in einem einzigen Projekt verwenden lassen - gemäß dem Prinzip: für jeden Aufgabentyp die geeignete Sprache verwenden? Wo liegen hier die Vorteile, wo die Gefahren?
Dierk König: Heterogenität gibt es heute schon in vielen Projekten. Man ist sich dessen nur nicht so bewusst, weil es gerade im Web-Umfeld wenig Alternativen dazu gibt. Für den Einsatz verschiedener Sprachen in einem Projekt, gilt es drei Dimensionen abzuprüfen:
- Art des Projekts (Wichtigkeit, Anzahl Entwickler, Stabilität des Teams, Skill-Profil, Zeitrahmen, ...)
- Art der Aufgabe (Standard Datenverwaltung bis zu hochspezialisierten Anwendungen)
- Art der eingesetzten Sprachen (Reichhaltigkeit an zur Aufgabe passenden Features und Nähe zu Java)




