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:
-
Best of Open Source Software 2010: Enterprise-Software
-
Best of Open Source Software 2010: Netzwerke
-
Best of Open Source Software 2010: Plattformen und Middleware
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.
Alumni
Hier finden Sie die Gewinner in der Kategorie Entwicklungs-Tools aus den vorangegangenen Jahren:
-
Bossie Awards 2009: Die besten Entwicklungs-Tools
-
Bossie Awards 2008: Die besten Entwicklungs-Tools
Google Go
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
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
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
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
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
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
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
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
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
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.