Eclipse, Spring, Tomcat, Hibernate

Java-Entwickler lieben Open Source

26.01.2009 von Joachim Hackmann
Java-Entwickler nutzen laut Umfrage vor allem Open-Source-Tools, insbesondere die Entwicklungsumgebung Eclipse. An ihrer täglichen Projektarbeit kritisieren sie dürftige Qualitätssicherung, Dokumentation und Anforderungsanalyse.

Java hat sich seit Jahren in der Softwareentwicklung von Unternehmensanwendungen etabliert. Daher ist es umso erstaunlicher, dass es bisher noch keine systematische Erhebung zu den Vorlieben der Entwickler, Verbreitung von Tools und Trends bei den Frameworks gibt.

Die Lücke versucht das vorliegende Trendbarometer des Softwareentwicklungshauses Expeso GmbH zu schließen. Es soll helfen, neue Entwicklungen frühzeitig zu erkennen. Der Fokus ist darauf gerichtet, welche Relevanz die Trends für die praktische Arbeit in den Unternehmen haben. Das gilt insbesondere für Open-Source-Projekte (beispielsweise Eclipse, Tomcat, Spring Framework, Hibernate), denn hier gibt es ständig interessante Neuerungen. Um aussagekräftige Ergebnisse mit einem großen Praxisbezug zu erhalten, wurden ausschließlich Java-Experten befragt. Damit möchte das Beratungshaus gewährleisten, dass sich die empfohlenen Technologien bereits in der täglichen Projektarbeit bewährt haben.

Trendbarometer Java
Ältere Java-Versionen sind beliebt
Obwohl die heute <b>aktuelle Version 6</b> nun schon seit zwei Jahren verfügbar ist, wird eine Vielzahl von Projekten noch mit älteren Ausführungen betrieben. Die Abbildung zeigt, dass die vorletzte Version (<b>JDK 5 von 2004</b>) immer noch die größte Verbreitung hat und häufig eingesetzt wird. Die Version 6 wird hauptsächlich in neuen Projekten eingesetzt. <br/> Der Hauptgrund dürfe in dem nicht zu unterschätzenden <b>Migrationsaufwand</b> beim Umstieg auf eine neue Java-Version liegen. Eine Strategie könnte daher sein, Inkompatibilitäten zu identifizieren und den Umstieg auf eine neue Java-Version langfristig zu planen. Eine Migration kann beispielsweise schrittweise inkompatible Drittbibliotheken durch neuere Versionen ersetzen.
J2EE dominiert
Mit der <b>Java Platform Enterprise Edition</b> (Java EE) steht eine Software-Architektur zur Entwicklung verteilter, mehrschichtiger Anwendungen zur Verfügung. Dabei bezeichnet <b>J2EE</b> die Versionen 1.0 (Dezember 1999) bis 1.4 (November 2003). Mit der Version <b>Java EE 5</b> (Mai 2006) folgte dann ein deutlich überarbeiteter Standard, der sehr stark durch zwei Open-Source-Produkte beeinflusst wurde: Das <a href="http://www.springframework.org/" target="_blank"> Spring Framework</a> als leichtgewichtige Enterprise Plattform revolutionierte die Art und Weise, mit der Enterprise Anwendungen entwickelt wurden. Und <a href=" http://www.hibernate.org/" target="_blank">Hibernate</a> etablierte sich als Persistenzlösung. Die Erhebung zeigt, dass J2EE bislang noch die Projektwelt dominiert.
Skriptsprachen sind selten
Seit 2007 treten vermehrt auch Skriptsprachen auf der Basis der <b>Java Virtual Machine</b> (JVM) in Erscheinung. Offenbar sind sie aber im Kontext der Java-Entwicklung noch nicht weit verbreitet (siehe oben). Groovy liegt in dieser Statistik klar vorne - sie wird von zirka 30 Prozent der Befragten eingesetzt. Die Entwicklung in diesem Umfeld bleibt sicher spannend. Interessant wird auch sein, in welchen Bereichen diese Skriptsprachen sich bewähren werden. Erleichtert wird eine erste Annäherung an Skriptsprachen durch die enge Integration mit Java. So können einzelne Funktionen in aktuellen Projekten mit Skriptsprachen realisiert werden, ohne das gesamte Projekt zu beeinflussen. Solche Skripte können gegebenenfalls wieder recht einfach entfernt werden.
Abseits von Java gibt es wenig
Der Vollständigkeit halber: Dargestellt sind Techniken, auf die die Java-Experten ebenfalls zurückgreifen.
Alle nutzen Eclipse
Bei der Frage nach den Software-Entwicklungswerkzeugen zeigt sich, dass <b>Eclipse</b> (beziehungsweise eine auf Eclipse basierende Entwicklungsumgebung) die bevorzugte Wahl praktisch aller Java-Entwickler ist. Der Vergleich der anderen beiden bedeutenden Tools zeigt, dass <b>IntelliJ Idea</b> mehr häufige Nutzer als <b>Netbeans</b> hat. Allerdings hat Netbeans die Nase vorn, zählt man häufige und gelegentliche Nutzer zusammen.
Entwickler bauen auf Open Source
Bei den Build-Tools hat <b>Ant</b> die größte Verbreitung. Das neuere <b>Maven</b> (in Version 1 seit Ende 2004 verfügbar) findet schon Akzeptanz bei zwei Drittel der Entwickler. Der Trend zeigt also Richtung Maven.
Trend zur neuen Lösung
<b>Subversion</b> ist inzwischen das beliebteste System zur Quellcode-Verwaltung. Es hat damit das ältere <b>CVS</b> überholt. Doch der Vorsprung ist relativ klein. Immerhin nutzen fast 80 Prozent der Entwickler noch CVS. Doch auch hier gibt es einen Trend zur neueren Lösung Subversion.
Fehlerverfolgung ist üblich
Mehr als zwei Drittel der befragten Entwickler greift regelmäßig auf Werkzeuge zur <b>Fehlerverfolgung</b> zurück. Der Grund dafür ist vermutlich, dass Entwickler-Teams ohne solche Tools gar nicht sinnvoll zusammen arbeiten können. Dagegen ist der Einsatz einer <b>Integrationsumgebung</b> deutlich weniger verbreitet. Fachlich ist eine kontinuierliche Integration jedoch empfehlenswert, um mögliche Fehler frühzeitig entdecken zu können.
Swing für Desktop-Anwendungen
In der Java-Welt gibt es eine Vielzahl von Frameworks, die einem Entwickler das Leben erleichtern. Aus dem Projektalltag sind sie nicht mehr wegzudenken; sie sind also essentielle Bestandteile der Software-Entwicklung mit Java. Für die Entwicklung von Desktop-Anwendungen ist nach wie vor <b>Swing</b> bevorzugte Wahl. Vermutlich wird bei Neuentwicklungen aber auch häufig eine jüngere Technologie eingesetzt.
Viele Tools für Web-Anwendungen
In der Entwicklung von Web-basierenden Anwendungen sieht das Bild anders aus. Auch hier hat Spring die Nase vorn, gefolgt von <b>Ajax</b> und <b>JSF</b>. Aber auch <b>Struts</b> und Eigenentwicklungen sind noch relativ häufig im Einsatz. Wicket und JBoss Seam sind nicht so stark vertreten.
Herkömmliches DHTML im Einsatz
Die obige Abbildung zeigt, dass für die Entwicklung von Rich-Internet-Applikationen meistens herkömmliches <b>DHTML</b> und <b>Javascript</b> zum Einsatz kommen. Andere Technologien folgen mit deutlichem Abstand.
Servlet Container auch für kritische Anwendungen
Als Container werden bei Server-Entwicklungen tendenziell eher <b>Servlet-Container</b> wie beispielsweise Tomcat statt vollwertiger Application-Server eingesetzt, wenngleich Letztere auch häufige Verwendung finden. Die Praxis zeigt, dass sehr große und geschäftskritische Systeme auch heute schon zuverlässig auf Servlet-Containern betrieben werden.
Alle schätzen Open Source
Entwickler stehen auf <b>Open Source</b>, das belegt die Erhebung sehr eindrucksvoll. Die Beispiele Spring Framework und Hibernate zeigen zudem, welchen Einfluss Open-Source-Projekte nehmen können und welche Innovationskraft sie haben.
Keine Qualitätprobleme
Auch die Qualität der <b>Open-Source-Lösungen</b> steht außer Frage. Beide Ergebnisse untermauern die Bedeutung der Open-Source-Projekte für die kommerzielle Softwareentwicklung. Quelloffene Lösungen haben sich etabliert.
Es gibt keinen typischen Entwicklungsprozess
Befragt nach den <b>Prozessen und Vorgehensweisen</b> antworteten viele Experten, sie programmieren gemäß <b>agiler Softwareentwicklung</b>. Allerdings zeigt sich, dass es nicht das typische Vorgehen im Entwicklungsprozess gibt.
Vorgaben zum Teil falsch dosiert
In größeren Projektteams ist es wichtig, dass alle Team-Mitarbeiter die gleiche Entwicklungsumgebung und zugehörigen Plugins verwenden. Manche Auftraggeber schreiben in ihren Projekten die Entwicklungsumgebung vor, um die Teamarbeit zu fördern. Andere Arbeitgeber lassen den Entwicklern Freiräume, die bevorzugte Umgebung zu nutzen. Drei Viertel der befragten Java-Experten sind mit den Vorgaben zur <b>integrierte Entwicklungsumgebung</b> beziehungsweise mit den gewährten Freiräumen zufrieden sind. Im Umkehrschluss bedeutet dies, dass bei jedem vierten Projekt die Vorgaben ungenau oder unvollständig beziehungsweise falsch sind.
Kundenwünsche sind unklar
Die <b>Anforderungsanalyse</b> ist die Basis jedes Software-Entwicklungsprojekts. Nur wenn die Wünsche des Kunden bekannt sind, kann eine optimale Lösung entwickelt werden. Im Projektalltag gelten solche Überlegungen offenbar wenig. 58 Prozent der Java-Experten glauben, der Anforderungsanalyse werde zu wenig Bedeutung beigemessen. Der Hinweis ist wichtig, denn der Software-Entwickler ist in der Regel der Erste, dem eine ungenügender Spezifikation in Sonderfällen oder fehlende Prozessschritte auffällt.
Dokumentation unzureichend
Ähnliches gilt für die <b>Entwicklerdokumentation</b>. Sie ist wichtig für die Wartung einer Anwendung, da sie neuen Mitarbeitern auch nach Monaten und Jahren einen Überblick über die Software geben soll. Eine fehlende Dokumentation führt zu einem erhöhten Einarbeitungsaufwand für neue Entwickler und zu einer schwierige Weiterentwicklungen der Software. Zwei Drittel der befragten Java-Experten sind der Meinung, dass die Dokumentation vernachlässigt wird. Für die kurzfristigen Projektziele (Termintreue und Budgeteinhaltung) ist sie nicht von Bedeutung. Mittel- und langfristig führt eine fehlende oder schlechte Dokumentation zu erheblichen Mehrkosten.
Qualitätssicherung wird vernachlässigt
Auch um die <b>Qualitätssicherung</b> scheint es nicht gut bestellt. 62 Prozent der Befragten glauben, die Bedeutung der Qualitätssicherung werde unterschätzt. Dass eine gute Qualitätssicherung Geld spart, sollte hinlänglich bekannt sein, wird im Projektalltag aber offenbar gerne verdrängt. Hier sind die Unternehmens- und IT-Leiter gefordert, entsprechende Prozesse einzuführen. Wer sie nicht selbst betreiben möchte, kann auf Dienstleister zurückgreifen. Inzwischen gibt es auch <b>Offshore-Anbieter</b>, die sich auf die Qualitätssicherung von Softwareentwicklungen spezialisiert haben. Möglicherweise ist die Trennung der Entwicklung und Qualitätssicherung ohnehin vorteilhaft. Sie reduziert die Gefahr, dass Mitarbeiter der Qualitätssicherung bei Projektengpässen ins Entwicklerteam abgezogen werden.