ruby-mine

exploring the mine

[RubyConf2009] Tag 2

von bovi am 22.11.2009 (06 Uhr)

Nach einem grandiosen 1. Tag folgte am 20.11.2009 das Bergfest der RubyConf 2009 in San Francisco.

Towards a Ruby compiler

Caleb Clausen sprach über sein Ruby Compiler Projekt, mit dem er versucht Ruby in Maschinencode zu überführen. Der große Fake an diesem Talk war meiner Meinung nach das Eingeständnis am Ende, dass die wirklich harten Dinge (eval z.B.) einfach ignoriert werden, denn sie werden ja sowieso nicht korrekt verwendet.

Polishing Rubygems

Yehuda Katz sprach über die Probleme von Rubygems und wie sein bundler Projekt einige davon bereinigt. Hauptsächlich ging es um besseres Auflösen von Abhängigkeiten und die friedliche Kooexistenz von mehreren unterschiedlichen Versionen ein und desselben Gems auf einem Rechner. Auch ist es mit Bundler möglich, gems direkt aus einem Git Repository zu ziehen anstatt auf einen Index angewiesen zu sein. Eine geniale Sache wenn es sich um Entwicklerversionen handelt. Sein erklärtes Ziel ist, diese Änderungen in das offizielle Rubygems hineinzuführen.

Using Ruby to generate faster Ruby code through partial evaluation

Andy Keep von irgendeiner Universität in Indiana, stellte RubyWriter und RubyC vor. Er arbeitet mit einem teilweisen Übersetzen von Ruby Code und dem Interpretieren aller übrigen Stellen. Der Vorteil ist dadurch natürlich, dass die “schweren” Stellen mit seinem Konzept immer noch funktionieren. Und die einfachen Dinge wiederum kompiliert werden können. Dazu analysieren seine Programme den gesamten Rubycode und bewerten alle Codeabschnitte darauf, ob sie sicher zu übersetzen sind. Das Parsing findet mit Ripper selbst statt.

Aqua: A cool, clear drink of Ruby object persistence

Kane Baccigalupi sprach über das persistente Speichern von Ruby Objekten. Ich fand die Präsentation langweilig. Wahrscheinlich weil sie als Datenhaltungsort CouchDB verwendet hat. Ihre Technik ist hierbei, sämtliche Objekte nach JSON zu serialisieren und dieses dann in CouchDB zu speichern. Die Ruby Bibliothek die sie dafür geschrieben hat, nennt sich Aqua.

Scaling on App Engine with Ruby and Duby

John Woodell & Ryan Brown von Google sprachen über die Google App Engine und wie man auf dieser JRuby Anwendungen zum Laufen bekommt. Die Beiden haben dafür ein gem geschrieben, mit dem man Rails Anwendungen erzeugen kann, die GAP kompatibel sind. Weiterhin wurde der Rubymutant Duby vorgestellt. Welcher syntaktisch an Ruby angelehnt ist aber direkt nach Javabytecode kompiliert werden kann und damit auf GAP ohne weiteres lauffähig ist. Auch wurde die Integration von Duby in GWT vorgestellt.

SOLID Ruby

Jim Weirich, einer der hellsten Köpfe die ich in meinem Leben treffen durfte, sprach über das SOLID Prinzip. Inhalt war also hauptsächlich die Anwendung dieser aus der Javawelt bekannten Architekturempfehlungen auf die Rubywelt.

Rippin’ off Python

Chris Wanstrath von github listete einige stärken der Python Community auf, die er in der Ruby Community vermisst.

Ruby Memory Management Hacks

Koichi Sasada sprach über seine Arbeiten am MRI. Er promotete einige Speichermanagement Verbesserungen der 1.9.2 Version und ebenfalls den verbesserten Profiler der Gleichen. Weiterhin stellte er seine Arbeiten an der multiplen Virtuellen Maschine vor. So erklärte er noch einmal, dass der GIL aus Ruby nicht entfernt werden wird (zu komplex nach seiner Angabe) und statt dessen das Contextswitching verbessert wird. Dadurch wird es in Zukunft leicht möglich sein, mehrere Instanzen von RubyVM laufen zu lassen und parallele Verarbeitungen über diese zu bewerkstelligen. Fiber werden scheinbar auch eine gewichtige Rolle bei der zukünftigen Parallelität spielen. Es scheint also so, dass nicht nur beim Encoding sondern auch bei der verteilten Programmierung Ruby einen merklich anderen Weg einschlägt als andere Programmiersprachen. Informationsmaterial SPANNEND


Kommentar schreiben

Name (notwendig)

Mail (wird nicht veröffentlicht)

Webseite


Kommentare

  1. Johannes schrieb am 23.11.2009 (01 Uhr)

    Wow. Danke für die Zusammenfassungen!