Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I can't believe that this hasn't been mentioned yet: the single biggest feature of Ruby 1.9.2+ is that for the first time in 17 years, Ruby will have a specification.</p> <p>You might have heard that all release schedule for Ruby 1.9.2 (which was supposed to be released in the Spring of 2010) <a href="http://Ruby-Forum.Com/topic/195825/#853518" rel="noreferrer">has been canceled</a>, and this is the reason: first, a complete specification of Ruby 1.9.2 will be developed in the RubySpec project, then Ruby 1.9.2 (the programming language) will be released, and only then will YARV 1.9.2 be released, <em>after</em> it passes the RubySpec testsuite.</p> <p>This is exactly backwards from how it worked before: first MRI was released, then all the other implementors read the (not very well designed, and generally badly documented) C source code of MRI, to try and figure out what the heck that new feature was supposed to do, then they tried to write executable specifications, and only then did they even have a remote chance of actual compatibility. But by that time, generally, a new version of YARV had already been released, and the cycle began anew ... Not to mention that the maintainers of MRI and YARV didn't even run the RubySpecs.</p> <p>This has <em>huge</em> ramifications. For example, despite the fact that currently more than a dozen different Ruby implementations are in active development, and over the years of its existence there have been more than 30 different implementations of the Ruby programming language, this fact has <em>not</em> been acknowledged by the maintainers of the Ruby programming language. For them, Ruby and MRI (or more recently Ruby and YARV) have always been one and the same thing: MRI was both the language and the execution engine, Ruby was both the execution engine and the language. The "specification" of the Ruby programming language was the C source code of MRI.</p> <p>As of five weeks ago, this has changed: now, the official specification of the Ruby programming language (at least version 1.9.2 and later) is the executable testsuite of the RubySpec project. And YARV is just another Ruby implementation, completely equal to MacRuby, IronRuby, JRuby, Cardinal, tinyrb, SmallRuby, BlueRuby, MagLev and the others.</p> <p>This means that so called "alternate" implementations (which as of now should no longer be called "alternate" because YARV has lost its special status) now have a chance to actually catch up with the latest language features implemented in YARV. In fact, since most of the other implementations are actually both much better designed and implemented in much better languages than YARV (which is basically a huge spaghetti mess of C), plus having more manpower, it is entirely plausible that other implementations will actually be Ruby 1.9.2 compliant <em>before</em> YARV.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload