ruby-mine

exploring the mine

RubyConf X

von bovi am 15.11.2010 (21 Uhr)

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.

Keynote von Dave Thomas

Slides

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.

“History of RubyGems and RDoc” von Eric Hodel

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.

“RubyConf Decathlon” von Nathaniel Talbott

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.

“Anthropology of Ruby: Excavating its Gems” von Jeremy Hinegardner

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.

“ZOMG WHY IS THIS CODE SO SLOW?” von Aaron Patterson

Slides

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.

“Making Your Code Better, the Rails 3 Way” von Yehuda Katz

Yehuda machte mal wieder Werbung dafür wie cool Rails 3 ist und wieviel arbeit darin steckt. Nichts neues hier.

“Spatial Programming for the Rubyist” von Peter Jackson

Slides

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.

Keynote von David Heinemeier Hansson

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.

“JRuby Hacking Guide” von Charles Nutter and Thomas Enebo

Slides

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.

“Rubinius – What Have You Done For Me Today?” von Evan Pheonix

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.

“TANSTAAFL – Implementing Maglev Ruby on top of GemStone” von Monty Williams and Peter McLain

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.

“MacRuby – Why and how” von Matt Aimonetti

Slides

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.

“Classboxes, nested methods, and real private methods” von Shugo

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!

“Posioning Rubinius: The _why and how.” von Brian Ford

Brian präsentierte mit seinen handgemalten Folien eine Homage an _why in dem er dessen Programmiersprache Potion innerhalb der Rubinius VM implementierte.

Keynote von Matz

Slides

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.

“Unblocked” von James Edward Gray II

Slides

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

  1. murphy schrieb am 16.11.2010 (02 Uhr)

    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?

  2. Tobi schrieb am 16.11.2010 (14 Uhr)

    Vielen Dank, schöne Übersicht. Hab mich wegen diesem Artikel bei Flattr angemeldet und zum ersten Mal etwas geflattrt :)