Categories: None [Edit]
rubymirrors
## A mirror API for Ruby
In various [research][p1] [projects][p2] the advantages of having a [mirror
API][p3] to separate reflection from a language implementation have
been discussed, and "industry grade" implementations exist for
[Java][p4] and [C#][p5]. This project aims at providing a number of
specs and classes that document a mirror API for Ruby. The mirror
implementation that is part of this project will use only those
language facilities that are available across Ruby implementations.
The specs, however, will also test behavior that cannot be provided in
such a manner. The idea here is that in time, all implementations
provide their own implementation of the mirror API, and all
implementations collaborate on this one spec.
Why do this, you ask? Because Ruby needs tools, and those tools need
to be written in Ruby. If they are not, then people will be excluded from
tinkering with their tools, thus impeding innovation. You only have to
look at Emacs or Smalltalk to see what's possible when programmers can
extend their tools, all tools, in a language they feel comfortable
in. If we have a standard mirror API, all tools that are written **for**
Ruby, **in** Ruby, can be shared across implementations, while at the same time
allowing language implementers to use the facilities of their platform
to provide optimal reflective capabilities without tying them to
internals.
[p1]: http://www.cs.virginia.edu/~lorenz/papers/icse03/icse2003.pdf "Pluggable Reflection: Decoupling Meta-Interface and Implementation"
[p2]: http://bracha.org/newspeak-spec.pdf "Newspeak Programming Language Draft Specification, Version 0.06, pages 40 onward"
[p3]: http://www.hpi.uni-potsdam.de/hirschfeld/events/past/media/100105_Bracha_2010_LinguisticReflectionViaMirrors_HPI.mp4 "Linguistic Reflection Via Mirrors"
[p4]: http://bracha.org/mirrors.pdf "Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages"
[p5]: http://oreilly.com/catalog/progcsharp/chapter/ch18.html "See esp. 18-3, highlighting how C# r...
Total
Ranking: 81,605 of 183,147
Downloads: 10,027
Daily
Ranking: 51,220 of 183,139
Downloads: 0
Downloads Trends
Ranking Trends
Num of Versions Trends
Popular Versions (Major)
Popular Versions (Major.Minor)
Depended by
Rank | Downloads | Name |
---|---|---|
64,625 | 14,215 | maglev-webtools |
Depends on
Rank | Downloads | Name |
---|
Owners
# | Gravatar | Handle |
---|---|---|
1 | MagLev |