No entiendo cómo puede haber tres versiones finales diferentes.
no hay tres versiones finales diferentes, sólo hay una: "final" en este caso significa la versión del instalador , no el intérprete . Solo hay un instalador para las tres versiones de ambos intérpretes.
Puedo entender que hay una versión 1.8 y una versión 1.9, pero ¿por qué puedo elegir entre 1.8.6 y 1.8.7?
En Ruby, un cambio en un número menor indica una importante incompatibilidad hacia atrás y/o características importantes de un nuevo idioma. La transición 1.8 → 1.9 tiene tanto incompatibilidades como nuevas características. Mientras que Ruby 1.9 es la versión actual, todavía hay mucho código por ahí, que aún no se ha actualizado a Ruby 1.9. Además, muchos sistemas operativos aún no incluyen Ruby 1.9 como predeterminado, y algunos no envían Ruby 1.9 en absoluto.
Es por eso que hay 1.9 y 1.8.
¿Por qué dos versiones de 1.8? Bueno, 1.8.7 es esta extraña versión de nether. 1.8.7 obtuvo un respaldo masivo de características de 1.9 para facilitar la transición. Sin embargo, durante mucho tiempo, 1.8.7 no recibió mucha aceptación y 1.8.6 sigue siendo la versión recomendada por el equipo de Rails. (Esto cambiará con Rails 3 que requiere 1.8.7 o 1.9.2 aún no lanzado).
Ruby 1.8.6 sigue siendo la versión predeterminada (y de hecho) en muchos de los Linux de movimiento más lento. distribuciones que ofrecen contratos de soporte de 3 años o 5 años. Ruby 1.8.6 también fue la última versión del OneClick Installer que fue el predecesor de RubyInstaller. Si el RubyInstaller va a ser un reemplazo para OneClick Installer, debe ofrecer la misma versión. Y por último pero no menos importante, simplemente hay un tonelada de código que fue probado y validado en 1.8.6.
Además, Ruby 1.8.6 era la versión implementada por JRuby 1.0, 1.1, 1.2, 1.3 y 1.4. Solo el recientemente lanzado JRuby 1.5 se actualizó a 1.8.7. JRuby 1.6 implementará tanto 1.8.7 como 1.9.2. Además, IronRuby 1.0 implementa Ruby 1.8.6.
En otras palabras: el RubyInstaller para MRI 1.8.6 sigue ahí por el mismo motivo por el que Microsoft todavía es compatible con Windows XP, después de haber intentado matarlo dos veces: hay personas que lo usan que se molestaría si no lo hicieran. 't.
Lo que realmente me gustaría saber es qué versión es la "mejor"? Si la respuesta es "1.9.1", ¿por qué elegiría 1.8.6 o 1.8.7?
Personalmente, creo que el "mejor" es Ruby 1.9. , que aún no se ha lanzado.
Aquí es mi crisis personal:
- si usted está recién empezando con Ruby y jugar un rato con él, 1.9.2 es la mejor versión: Ruby 1.9 es la última versión de la lengua y 1.9.2 es considerada como la versión de función completa del 1.9 rama; arregla algunos descuidos y molestias en 1.9.1 y agrega algunas características agradables. Además, la mayoría de las implementaciones de Ruby no implementan 1.9.1, IronRuby irá directamente de 1.8.6 a 1.9.2, JRuby implementará tanto 1.8.7 como 1.9.2 y Rubinius también irá a 1.9.2.
- si realmente desea implementar y/o distribuir aplicaciones de Ruby, 1.9.1 y 1.8.7 son las mejores versiones, simplemente porque 1.9.2 aún no se ha lanzado oficialmente: use 1.9.1 si puede escapar con él (es decir, si las bibliotecas de terceros de las que depende lo admiten), de lo contrario 1.8.7.
- si tiene una gran base de código heredada, use 1.8.6. (En realidad, si usted tiene gran base de código legado, actualizarlo a 1.9.2 y hellip;)
Tenga en cuenta que usted tiene que ser muy cuidadosos para distinguir entre la versión de la lengua , la aplicación , la versión de la implementación y la versión del instalador .
Por ejemplo, el primero en su lista es la versión 1.8.6 del idioma, el intérprete de MRI, la versión 1.8.6-p398 de MRI y la versión "Final" del instalador. El tercero en su lista es la versión 1.9.1 del lenguaje, el compilador/VM de YARV (es decir, una implementación diferente de los otros dos), la versión 1.9.1-p378 de YARV y también la versión "Final" del instalador.
La versión 1.0 de IronRuby implementa la versión 1.8.6 de Ruby, la versión 1.5 de JRuby implementa tanto la versión 1.8.7 como (un subconjunto de) 1.9.2 de Ruby, seleccionable mediante un interruptor de línea de comando.
Supongo que significan "estable" en este contexto – bragboy