Ruby 2.0: Refinements nur in abgespeckter Form

Ein Haupt-Feature von Ruby 2.0, die Refinements zur Beseitigung von Monkey-Patch-Problemen, werden aller Voraussicht nach nicht im ursprünglich angedachten Umfang in der nächsten Sprachversion landen.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Alexander Neumann

Rund einen Monat nach der Veröffentlichung einer ersten Preview für Ruby 2.0 ist nun eine zweite Vorschau erschienen. Eine gewichtige Entscheidung wurde im vergangenen Monat gefällt: Und zwar wird eine der wichtigsten Neuerungen der nächsten großen Version der Skriptsprache, die sogenannten Refinements, nicht in der ursprünglich geplanten Weise in Ruby 2.0 einziehen.

Refinements sind eine Spracherweiterung, die das Problem des sogenannten Monkey-Patching angehen sollen. Darunter versteht man einen Prozess, bei dem etwa Klassen um Methoden erweitert, Methoden von Klassen verändert oder bestimmte Objekte mit zusätzlichen Methoden ausgestattet werden. Das ist ein Vorgang in zahlreichen Ruby-Bibliotheken. Die Refinements wurden nun entworfen, um die Arten der Änderungen festzustellen, die durch das Monkey-Patching entanden sind, und wie man mit ihnen umgehen kann.

Nach einer Analyse des eingebrachten Vorschlags zur Implementierung der Refinements von JRuby-Erfinder Charles Nutter und der daraus entstandenen Diskussion ist nun die Entscheidung gefallen, dass sie nicht im ursprünglich angedachten Umfang Einzug halten werden. Yukihiro "Matz" Matsumoto, Schöpfer von Ruby, hat sich nämlich aufgrund ihres nicht eindeutigen Verhaltens und damit einhergehender Performanceprobleme nun dagegen entschieden, sie vollständig in Ruby 2.0 aufzunehmen.

Die Diskussion ist letztlich immer noch im Gange, auch sind noch keine finalen Entscheidungen darüber gesprochen, welcher Gestalt die Refinements im für Februar 2013 versprochenen Ruby 2.0 tatsächlich annehmen. Herunterladen kann man die zweite Preview hier. (ane)