Zum 10. mal trafen sich nun Rubyisten aus der ganzen Welt in den Vereinigten Staaten (das liegt unterhalb von Kanada) um über Ruby zu sprechen, zu singen und zu philosophieren. Mit knapp 800 Teilnehmern, drei parallelen Tracks und 61 Vorträgen über drei Tage war es wohl eine der größte Ruby Veranstaltungen jemals. Hier ein paar Notizen von den Events die ich mir angeschaut habe.
Die Eröffnungskeynote hielt kein geringerer als Dave Thomas. Er sprach darüber, wie sehr Ruby sein Leben verändert hat. Was für Hoch- und Tiefpunkte er beim Schreiben der PickAxe hatte. Dabei gab er auch bekannt, dass er eine neue Ausgabe für 1.9.2 direkt nach seiner Keynote veröffentlichen wird, welche auf totem Baum gedruckt für nur 10$ verkauft wird. Den zweiten Teil seiner Keynote nahm das Thema des Nachwuchses ein. Er appellierte an die Teilnehmer, dass sie sich dafür engagieren sollten, neues Blut in die Ruby Community zu bringen. Mit Nachwuchs verstand er dabei nicht nur Menschen jüngeren Alters sondern zielte auch stark auf den geringen weiblichen Anteil der Ruby Community bzw. der gesamten Open Source Szene.
Eric Hodel, seines Zeichens RubyGems und RDoc Maintainer sprach über die Geschichte dieser beiden Programme. Er addressierte die Wachstumsprobleme des Gem Indexes und wie er diese löste. Er erwähnte, wie wichtig eine gute API bei Bibliotheken ist und verteidigte ein aggressives Refactoring um diese zu verbessern. Am Ende erwähnte er noch auf die Frage was er von YARD hält, dass keiner der dortigen Entwickler auf Ihn zugekommen wäre und er sämtliche Features von YARD auch in RDoc implementieren könnte aber viele als nicht sinnvoll empfindet.
Nathaniel ist die einzigste Person, welche jede einzelne RubyConf besuchte und dazu auch noch jeweils einen Vortrag hielt. Dies nahm er als Thema seines diesjährigen Vortrages und erzählte Geschichten aus 10 Jahren RubyConf. Z.B. wie er zusammen mit anderen die erste Version von RubyGems erstellte. Wie _why in 2002 von YAML berichtete und das Konferenzen seiner Meinung nach hauptsächlich zur Unterhaltung da sind und Erkenntnisse sich nur als Nebenprodukt daraus ergeben.
Jeremy hat sich alle Gem Logs geholt und über diese verschiedene Statistiken laufen lassen. Hauptsächlich anhand der Metadaten der Gems berichtete er von interessanten und auch uninteressanten Details aus dem Gem Index. Z.B. das die meißten Gems im Durchschnitt am Dienstag veröffentlicht werden.
Aaron Patterson sprach über ARel und wie er dessen Quelltext zu erst mithilfe von Ruby Internas optimierte, am Ende jedoch zu der Erkenntnis kam, dass er alles neuschreiben muss um einen wirklichen Performancegewinn zu erhalten. Wie immer war die Aussage, dass nicht die Implementierungsdetails für die Geschwindigkeit wichtig sind, sondern der implementierte Algorithmus.
Yehuda machte mal wieder Werbung dafür wie cool Rails 3 ist und wieviel arbeit darin steckt. Nichts neues hier.
Peter sprach über GIS, Spatial DBMS (PostGIS, Oracle Spatial und MySQL Spatial GIS), spatial_adapter, GeoRuby und OpenLayers. Wie immer wurde darüber geredet was für tolle Dinge man mit all den verfügbaren Geo Daten machen könnte wenn man eine Idee hätte. Das Thema ist echt schon ausgewaschen. Nichts neues.
David sprach in seiner Keynote von Freiheit, die er durch Monkey Patching erhalten würde. Deshalb schlug er den neuen Begriff Freedom Patching vor. Er verglich dabei den Zwang von Sprachen wie Java mit den Einschränkungen im Flugverkehr, wo Millionen von Leuten gequält werden, weil ein Idiot mit einem Flugzeug in ein Haus fliegt. Genauso werden weltweit Millionen von Entwickler mit Typdeklarationen gequält, weil irgendwo mal irgendjemand mit diesem Mist einen angeblichen Fehler gefunden hat.
Die JRuby Leute sprachen über die Internas von JRuby und wie es jedem ermöglicht wird, Patche für JRuby zu schreiben. Weitehrin wurde Mirah erwähnt (ehemals Duby) welches einen begrenzten Ruby Dialekt darstellt, der sich vollständig nach Java Bytecode übersetzen lässt.
Evan gab einen Statusbericht über Rubinius und stellte einige nette Tools vor, die beim Ruby entwickeln helfen. Wie z.B. Benchmarking oder eine Rubinius Konsole mit der man sich direkt in einen Prozess remote einloggen kann.
Die Maglev Leute sprachen über Ihre Schwierigkeiten bei der Implementierung von Ruby in Smalltalk. Ihre Hoffnung, dass sich Ruby in Smalltalk extrem einfach mappen lässt, hatte sich nicht bewahrheitet und so konnten sie in der Vergangenheit nicht Ihre angezielten Releaszyklen einhalten. Sie präsentierten weiterhin das Persistierungsfeature von Maglev, welches es ermöglicht einen gesamten Ruby Prozess auf die Platte zu Dumpen und später wieder zu laden.
Matt besprach den aktuellen Zustand von MacRuby und das Potential für Ruby im AppStore. Zum Thema Ruby auf dem iPhone versuchte er sich herumzuwinden, gab jedoch an, dass es aus technischer Sicht nichts gibt, was gegen eine MacRuby Version auf dem iPhone spricht. Es gibt nur politische Gründe.
Shugo präsentierte die absolut coolste Neuigkeit auf der RubyConf. Und zwar das Feature Refinement welches ich etwas detailierter in einem vorherigen Beitrag angesprochen habe. Absolut beachtenswert!
Brian präsentierte mit seinen handgemalten Folien eine Homage an _why in dem er dessen Programmiersprache Potion innerhalb der Rubinius VM implementierte.
Matz blickte in seiner Keynote auf die letzten 17 Jahren von Ruby zurück und gab einen kleinen Ausblick auf Ruby 2.0 und Features wir Traits und Refinement. Weiterhin sprach er über eine neue Implementierung namens Rite welche ähnlich wie LUA ein reduziertes Ruby darstellen soll, welches sich in andere Programme einbetten lässt oder auf embedded Hardware läuft. Diese Implementierung wird von der japanischen Regierung in einem zweijährigen Programm gesponsert und Anfang 2012 das Licht der Öffentlichkeit erblicken.
James präsentierte einige sehr abgedrehte Anwendungsbeispiele für Blocks, die jedoch nicht für den praktischen Alltag gedacht waren, wie z.B.:
1 2 3 4 5 6 |
require "sinatra" q = [] get("/enqueue/:arg", &q.method(:push)) get("/dequeue", &q.method(:shift)) get("/peek", &q.method(:first)) |
Kommentare
Danke für die Übersicht :) Ich hab mal die Ligatur im Codebeispiel am Ende korrigiert…
Wie genau soll das mit den Mädels jetzt funktionieren?
Vielen Dank, schöne Übersicht. Hab mich wegen diesem Artikel bei Flattr angemeldet und zum ersten Mal etwas geflattrt :)