Open Source Awards 2010

Die besten Entwickler-Tools

28.09.2010 von Stefan Überhorst
In der Kategorie Programmierwerkzeuge erhalten in diesem Jahr zehn Open-Source-Tools einen Bossie-Award. Bei den meisten handelt es sich um Vertreter aus der Web-Entwicklung.
Infoworld präsentiert die besten quelloffenen Entwickler-Tools.

Quelloffene Werkzeuge haben in der Softwareentwicklung eine lange Tradition, insbesondere im Java-Umfeld. Eine ausgeprägte Community-Bildung wie die Apache Software Foundation oder die Eclipse Foundation leisten hier wertvolle Arbeit, um Entwicklern das Leben zu erleichtern. Ob Bibliotheken, Frameworks oder Plug-ins: In den Projekten blühen die Sammlungen vorgefertigter Module, aus denen sich Entwickler bedienen können. Dies gilt vor allem für die Web- beziehungsweise Web-2.0-Entwicklung mit Skriptsprachen, zunehmend aber auch für mobile Anwendungen.

Bossie 2010 Kategorien

Auch in den Kategorien Enterprise-Software, Netzwerke sowie Plattformen und Middleware hat Infoworld wieder Preise vergeben. Hier gehts zu den Gewinnern:

Wie bereits in den vergangenen zwei Jahren hat das Testcenter der CW-Schwesterpublikation „InfoWorld“ nun wiederholt seine "Best of Open-Source-Software Awards" (Bossies) ausgelobt. Dabei betont die Jury, dass es sich nur um eine Auswahl des ohnehin großen Spektrums hervorragender Open-Source-Tools handelt. Neben den Werkzeugen zur Erstellung von Web- und mobilen Anwendungen kommen in diesem Jahr die Programmiersprachen „Google Go“, das Statistik-Tool „R“, das hochskalierbare Daten-Processing „Hadoop“ und wiederholt das verteilte Versionskontrollsystem „Git“ zum Zuge.

Open Source Awards 2010: Entwicklung
Google Go
Die Kombination von Einfachheit und Leistung ist das Ziel von Go. Die Programmiersprache selbst ist noch im Aufbau, aber der momentane Status zeigt bereits, in welche Richtung es künftig gehen kann.
JRuby
JRuby bringt die ohnehin verbreitete Skriptsprache Ruby auf die Java-Plattform und damit auf die Ebene unternehmensweiter Business-Anwendungen.
Zend Framework
Wer den bequemsten Weg zu PHP-Anwendungen sucht, ist laut Community mit dem Zend- oder PHP-5-Framework und seinen hochwertigen Komponentenbibliotheken für die Web-Entwicklung bestens bedient.
jQuery
Ein reichhaltiges JavaScript-Framework, das sich durch seine komfortablen Funktionen für die DOM-Manipulation und -Navigation auszeichnet, kommt mit JQuery.
jQTouch
jQTouch erweitert jQuery in Form eines Plug-ins um Mechanismen für die Entwicklung mobiler Web-Anwendungen. Leicht anpassbar und stylisches Design sind nur zwei der geschätzten Eigenschaften.
Ext Core, Ext JS, Ext GWT
Sencha Ext bietet eine leichtgewichtige JavaScript-Bibliothek zur Entwicklung von Feature-reichen und skalierbaren Web-Anwendungen beziehungsweise Rich Internet Applications. Unterstützt wird auch das Google Web Toolkit.
Sencha Touch
Mobile Anwendungen für iOS und Android lassen sich mit dem HTML5-Framework Sencha Touch erstellen. Auch Offline-Applikationen sind damit möglich.
Apache Hadoop
Das in Java geschriebene Framework Hadoop ist eine skalierbare, verteilt arbeitende Software, deren hochverfügbares und performantes Dateisystem sich zur Speicherung sehr großer Datenmengen eignet.
R
R ist ein Open-Source-Werkzeug zur statistischen Analyse und grafischen Darstellung von Daten beziehungsweise der Ergebnisse. Das Tool lässt sich über die vielen verfügbaren Pakete erweitern oder anpassen.
Git
Git ist ein freies verteiltes Versionskontroll-System, das sich für ein schnelles und effizientes Handling großer und kleiner Entwicklungsprojekte eignet. Jeder lokal laufende Git-Clone enthält ein komplettes Repository mit vollständiger Dateihistorie.

Alumni

Hier finden Sie die Gewinner in der Kategorie Entwicklungs-Tools aus den vorangegangenen Jahren:

Google Go

Go basiert auf der C-Sprachenfamilie.

Mit "Go" hat der Internet-Konzern Google eine eigene Programmiersprache eingeführt. Go soll aus Sicht von Google Leistung und Geschwindigkeit in optimaler Weise kombinieren. Die unter eine Open-Source-Lizenz gestellte Sprache basiert in ihren Grundzügen auf der C-Sprachenfamilie. Sie beinhaltet darüber hinaus aber Elemente der Skriptsprache Python (bei Google selbst gern genommen) sowie der Pascal/Modula/Oberon-Familie, um dynamischere und schnellere Applikationen zu ermöglichen.

Als Vorteile von Go gelten unter anderem, dass sich auch ein großes Programm auf einem einzelnen Rechner in wenigen Sekunden kompilieren lässt. Go bietet zudem ein Modell zur Software-Konstruktion an, das die Analyse von Abhängigkeiten erleichtert und den bei C häufigen Overhead durch Include-Dateien und Bibliotheken vermeidet.

Das Type-System von Go verzichtet auf eine Hierarchie, der Entwickler muss mithin auch keine Zeit damit verbringen, die Beziehungen zwischen Types zu definieren. Außerdem sollen sich Types leichtgewichtiger gestalten lassen, als dies bei typischen objektorientierte Sprachen der Fall ist.

JRuby

JRuby bringt Ruby auf die Java-Plattform.

Obwohl sich Ruby einen festen Platz unter den Skriptsprachen gesichert hat, konnte es sich in den Tool-Sammlungen der Entwicklungsabteilungen größerer Unternehmen nicht durchsetzen. Ein Grund dafür dürfte die Nutzung einer eigenen VM sein, hier würden sich Programmierer mehr Freiheit wünschen. Dieses Problem löst JRuby, eine Implementierung des Ruby-Interpreters in Java. Damit positioniert sich Ruby als eine weitere Sprachalternative auf der Java-Plattform, deren Laufzeitumgebung (JVM) einem deutlich größeren Entwicklerkreis vertraut ist. Der 2007 in JRuby zusätzlich zum Interpreter eingebrachte Compiler übersetzt Ruby-Klassen in Java-Klassen.

Zend Framework

Zend bietet einen bequemen Weg zu PHP-Anwendungen.

Das Zend Framework, auch PHP-5-Framework, wird von der Community als der bequemste Weg zu PHP-Anwendungen bezeichnet. Die Software umfasst die neuesten Web-2.0-Funktionen, zeichnet sich durch eine flexible, ausführlich getestete und zuverlässige Codebasis aus und bietet eine unkomplizierte und unternehmensfreundliche Lizenzierung. Besonders geschätzt werden die professionellen, objektorientierten Werkzeuge und Vorlagen für die Erstellung von Web-Anwendungen. Die lose gekoppelten Komponenten der Bibliotheken reichen von der Authentifizierung über Session-Management und Web-Services bis hin zu APIs für populäre Web-2.0-Sites. Unterstützt wird auch das MVC-Design-Pattern (Model-View-Controller) sowie RAD-Tools zum schnellen Aufbau einer Projektstruktur, um diese dann mit MVC-Komponenten anzureichern.

jQuery

jQuery hat viele Funktionen für die DOM-Manipulation und -Navigation.

Das umfangreiche JavaScript-Framework jQuery stellt komfortable Funktionen zur DOM-Manipulation und -Navigation zur Verfügung. Die jQuery-Basis besteht aus einer einzigen JavaScript-Datei, in der alle grundlegenden DOM-, Ereignis-, Effekt- und Ajax-Funktionen enthalten sind. Das von John Resig entwickelte Framework ist leichtgewichtig, CSS3-konform und unterstützt die gängigen Browser. Es gibt zahlreiche Erweiterungen in Form von Plug-ins, UI-Effekten, UI-Widgets und Themes. Sollte die Vorlagengalerie nichts Passendes bieten, erlaubt der ThemeRoller den Entwurf eigener Themes.

jQTouch

jQTouch erweitert jQuery in Form eines Plug-ins.

Ein jQuery-Plug-in zur Entwicklung mobiler Web-Applikationen etwa für das iPhone oder für iPodTouch ist jQTouch. Die Lösung eignet sich für alle Endgeräte, erlaubt eine einfache und unkomplizierte Entwicklung, ist leicht anpassbar und bietet von anfang an ein stylisches Web-Design. Als Nachteile werden in einschlägigen Foren genannt, dass sich die Apps nicht in die verschiedenen Marketplaces einbinden lassen und die vielen Funktionen der Geräte nur begrenzt genutzt werden können.

Ext Core, Ext JS, Ext GWT

Sencha Ext unterstützt auch das Google Web Toolkit.

Die Browser-übergreifende, leichtgewichtige und Feature-reiche JavaScript-Bibliothek Ext Core erlaubt die Aufwertung von Web-Seiten. Sie stellt Funktionen zur DOM-Manipulation/Traversierung, für das Event-Handling und die asynchrone Server-Kommunikation (Ajax) zur Verfügung. Hinzu kommen Animationen, OO-Mechanismen und vieles mehr. Bei Ext JS handelt es sich um eine ebenfalls Browser-unabhängige JavaScript-Bibliothek zum Aufbau von Rich-Internet-Applications (RIA). Zusätzlich zu den Core-Funktionen bietet JS eine Bibliothek für hochperformante, anpassbare Widgets und ein Komponentenmodell. Die Java-Bibliothek Ext GWT dient ebenfalls der RIA-Entwicklung, allerdings speziell mit dem Google Web Toolkit (GWT). Für gewöhnlich erfolgt die Nutzung der Ext-Bibliotheken in Kombination mit jQuery.

Sencha Touch

Sencha Touch erstellt mobile Anwendungen für iOS und Android.

Mit dem HTML5-Framework Sencha Touch lassen sich mobile Web-Anwendungen für iPhone, iPad und Android entwickeln. Sencha Touch basiert vollständig auf HTML5, JavaScript sowie CSS3 und wartet mit einer einfachen Verwaltung für Touch-Ereignisse sowie einer umfassenden UI-Bibliothek auf. Mit Ausnahme von Icons verzichtet die Library weitgehend auf Bilder und nutzt CSS3-Stylesheets zur grafischen Gestaltung der Benutzeroberflächen. Animationen lassen sich mit Hilfe von so genannten CSS-Transitions realisieren. Zudem macht das Framework von neuen HTML5-Funktionen Gebrauch, um die Entwicklung von Offline-Applikationen zu ermöglichen. Dabei können Anwendungsressourcen lokal auf dem Gerät gespeichert werden, so dass sich die Anwendung auch ohne Internet-Verbindung nutzen lässt. Die Firma Sencha, die von den Machern der bewährten JavaScript-Bibliotheken jQTouch, Ext JS, und Raphaël gegründet wurde, bietet das Framework unter der GPLv3-Lizenz an.

Apache Hadoop

Hadoop eignet sich zur Speicherung sehr großer Datenmengen.

Software für hochskalierbares und verteiltes Daten-Processing ist im Prinzip nichts Neues. Eine Herausforderung der letzten Jahre sind dagegen die weltweit verteilte Verarbeitung zum Beispiel der riesigen Datenaufkommen im Google-Umfeld, das Cloud-Computing und das rapide wachsende Volumen unstrukturierter Daten in sozialen Netzwerken. Ein auf Java basierendes Open-Source-Framework für derart skalierbare und verteilt arbeitende Programme ist "Hadoop". Das inzwischen unter dem Dach der Apache Software Foundation angesiedelte Projekt stützt sich auf den Google-Algorithmus "MapReduce" sowie auf Vorschläge des Google-Dateisystems. Damit sind Rechenprozesse in Datenhaltungen bis in den Petabyte-Bereich möglich.

R

R kann Daten statistisch analysieren und grafisch darstellen.

Die Statistiksoftware R, eine freie Implementierung der Programmiersprache S, hat sich inzwischen in allen wesentlichen Bereichen der angewandten Statistik etabliert. Der R-Funktionsumfang lässt sich über eine Vielzahl von Paketen erweitern und an spezifische statistische Problemstellungen anpassen. Komfortabel ist, dass viele dieser Pakete aus einer über die R-Console abrufbaren Liste ausgewählt und automatisch installiert werden können. Für erfahrene Anwender bietet R eine Möglichkeit, auf kommerzielle Programme wie SAS oder SPSS zu verzichten. Unter den Betriebssystemen werden Linux, Unix, Windows und Mac OS unterstützt.

Git

Git ist ein Versionskontroll-System, das sich für ein schnelles und effizientes Handling großer und kleiner Entwicklungsprojekte eignet.

Ursprünglich für die Quellcode-Verwaltung des Linux-Kernels entwickelt, hat sich die freie Software Git inzwischen vielfach zur verteilten Versionsverwaltung etabliert. Vor zwei Jahren schon einmal als Bossie gekürt, soll in diesem Jahr die nochmals ausgebaute Verwaltung verteilter Codeentwicklung gewürdigt werden. Hervorzuheben ist der schnelle Zugriff auf die Dateihistorie sowie die Möglichkeit, sehr schnell neue Entwicklungszweige (branching) und diese auch wieder zu verschmelzen (merging). Gute visuelle Tools sowie frei verfügbare Repositories wie GitHub haben die Software zu einer populären Versionskontrolle aufsteigen lassen.