Codesprint OpenLayers 3.0
Bereits seit vergangenem Montag arbeiten und debattieren im französischen Chambéry sieben Entwickler unterschiedlicher Firmen in den Räumen von camptocamp, um die nächste Hauptversion der populären JavaScript Kartenbibliothek OpenLayers zu designen.
Im einzelnen fanden sich die folgenden Entwickler zu diesem „Code Sprint OpenLayers 3“ ein: Mike Adair (DM Solutions Group), Andreas Hocevar (OpenGeo), Marc Jansen (terrestris), Éric Lemoine (camptocamp), Tom Payne (camptocamp), Petr Přidal (Klokan Technologies) und Tim Schaub (OpenGeo). Neben Kernentwicklern von OpenLayers zählen damit auch Entwickler von WebGL Earth, OpenWebGlobe und Proj4JS zum Team.
Da die Entwicklungen noch bei weitem nicht abgeschlossen sind, kann dieser Zwischenbericht nicht an allen Stellen ins Detail gehen; vieles ändert sich derzeit noch auch am grundlegenden Design der neuen Bibliothek. Am ersten Tag wurden vor allem die Infrastruktur zum Entwickeln sowie die zu verwendenden Bibliotheken definiert und aufeinander abgestimmt. Ein Hauptaugenmerk lag auch auf der neuen Benutzerschnittstelle (API), die OpenLayers 3 bieten wird. Es wird in Zukunft vermutlich deutlich einfacher sein, les- und wartbaren Applikationscode zu schreiben, der die volle Funktionalität von OpenLayers ausschöpft.
Am Dienstag wurden wesentliche Entwicklungen an interner wie externer API vorgenommen und einige Hürden in Konfigurations- und Entwicklungsarbeit genommen. Einige Klassen (Etwa eine Basis Map-Klasse, eine Loc-Klasse, die die ungeliebte OpenLayers.LonLat-Klasse ablösen wird, sowie Geometrieklassen) wurden prototypisch entwickelt. Die Arbeiten an den Renderern – darunter später wahrscheinlich auch neben auf SVG, VML sowie Canvas basierenden auch ein WebGL-Renderer für 2,5 & 3D – wurden konzeptioniert und begonnen. Auch für Applikationsereignisse (Events) und Vektortransformationen existiert bereits vollständig mit Unit-Tests versehener Code.
Für den Mittwoch war das Tagesziel, ein lauffähiges Beispiel mit einem Renderer, ein bis zwei Layertypen und einigen Controls zu erstellen. Stand 22:00 h Ortszeit ist uns dies noch nicht gelungen. Viele unserer ersten Entwicklungen wurden gleich mehrfach wieder verworfen und neu konzeptioniert.
Ziel der Neuentwicklung von OpenLayers vom Grunde auf war es ja, eine solide Basis für zukünftige Entwicklungen zu schaffen, daher haben wir uns bewusst vor keiner Diskussion gescheut, die uns natürlich vom reinen Entwickeln zunächst abhielt.
Mittlerweile sind wir uns einig, ein Basissetup und Klassen- wie API-Design entwickelt zu haben, welches tragfähig für die Zukunft von OpenLayers ist. Ab morgen werden wir mit Hochdruck an Implementierungen unserer gemeinsamen Gedanken arbeiten und wir hoffen die Demoanwendung und deren Code am Freitag oder Montag veröffentlichen zu können.
Unsere Arbeit findet vornehmlich in folgendem git-repository statt: https://github.com/openlayers/ol3 Weitere Informationen gibt es auch in diesem Blogpost: https://groups.google.com/forum/?hl=en#!forum/ol3-sprint