2010-06-20 16 views
6

He jugado con IronRuby últimamente, pero también me gustaría instalar la implementación de referencia. No hace falta decir que soy un novato cuando se trata de Ruby, así que tengo una pregunta muy estúpida.Tres versiones "finales" de Ruby?

En la RubyForge download page, hay tres diferentes finales versiones del instalador Ruby (para Windows):

  • RubyInstaller-1.8.6-p398.exe
  • RubyInstaller-1.8.7-P249 .exe
  • RubyInstaller-1.9.1-p378.exe

no entiendo cómo puede haber tres versiones finales diferentes. 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?

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?

Estoy confundido ...

+0

Supongo que significan "estable" en este contexto – bragboy

Respuesta

7

El razonamiento detrás de 3 versiones diferentes de los instaladores final se basa en los siguientes criterios:

1.8.6 ha sido la versión más extendida, que se utiliza en los servidores de producción, por lo que el lanzamiento se ha hecho para la compatibilidad con éstos

casos

1.8.7 es el estándar más reciente estable definido por Rubí-Core, y es la mayoría probablemente recibir atención por parte de los desarrolladores de Ruby para la rama 1.8

1.9.1 es la nueva versión de Ruby, basado en una nueva máquina virtual llamada YARV. Esta rama (1.9) es la que recibe la mayor parte del tiempo la atención de los desarrolladores de Ruby-Core.

El motivo de los paquetes es que, se pueden satisfacer 3 tipos diferentes de usuarios. Los que intentan imitar entornos de producción, comenzando con el trabajo 1.8 y otros que usan características más nuevas.

También hay 1.9.2-preview3, que es una de las versiones candidatas con funciones más nuevas que se lanzarán en agosto.

Espero que ayude.

-

+2

Nota: Luis es el autor y mantenedor de RubyInstaller. Él sabe una cosa o dos al respecto. –

4

1.9.1 es la última versión de rubí, no es el "mejor". Normalmente, las versiones de bleading-edge contienen incompatibilidades con versiones anteriores y nuevas funcionalidades. Esto hace que la versión más nueva NO sea compatible con versiones anteriores. La conclusión es que desea las versiones "anteriores" si planea ejecutar el código que se escribió en base a esas versiones.

Además, una versión, generalmente más antigua, se reconoce extraoficialmente como la versión "estable" y "portátil". En el caso de Ruby, creo que es la versión 1.8.7. La buena forma de comprobar esto es ver qué tienen las versiones más recientes de linux u os x como la versión de ruby ​​preinstalada.

Estos son solo algunos de los factores que debe tener en cuenta al elegir qué versión instalar. Tenga en cuenta que puede tener múltiples versiones de ruby ​​en el mismo cuadro. Una herramienta decente para hacer esto es rvm.

+0

¿Por qué 1.8.6 también aparece como una versión "final" en la página de descarga? –

+1

Eso simplemente significa que es el lanzamiento final de la rama 1.8.6 – ennuikiller

+0

Algunas personas usan 1.8.6 Por ejemplo, los usuarios de fedora 12 tienen 1.8.6 debido a una desisión por parte del equipo de fedora. – thomasfedb

4

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.

+0

Gracias por su minuciosa respuesta. Tiene un poco más de sentido ahora –