No tengo claras las diferencias entre la versión "actual" de Ruby (1.8) y la versión "nueva" (1.9). ¿Existe una explicación "fácil" o "simple" de las diferencias y por qué son tan diferentes?
Supongo que te refieres a Ruby 1.8.6 - Ruby 1.8.7 tiene muchas construcciones de bibliotecas desde 1.9.
Andrew Grimm
Más considero que las versiones 1.8 son las versiones "antiguas" y 1.9.2+ las "actuales". Solo uso 1.8.7 para verificaciones de compatibilidad, pero desarrollo en 1.9.2.
Con el fin de incorporar esta información en línea para facilitar la referencia, y en caso de que el enlace falle en un futuro abstracto, aquí hay una descripción general de las diapositivas de Sam. La presentación de diapositivas es menos abrumadora de revisar, pero tener todo en una lista como esta también es útil.
Ruby 1.9 - Características principales
Actuación
Hilos / Fibras
Codificación / Unicode
las gemas están (en su mayoría) integradas ahora
si las declaraciones no introducen alcance en Ruby.
HTH == "Espero que ayude". Tenía que ver eso. ¿Puede señalarme una respuesta que proporcionó, en la que no esperaba que ayudara?
Chris Wesseling
¿O te refieres a Happy to help? Edite en consecuencia. O elimínelo, si su felicidad / esperanza cuenta para todas sus respuestas. ;-)
Chris Wesseling
10
No, lo dejaré como está. Como porcentaje de la respuesta total, es minúsculo y cualquier interpretación me parece bien. Gracias.
Tim Sullivan
Según el enlace que proporcionó, el cambio en la delegación fue un error y se ha corregido.
Kyle Strand
¿Qué pasa con la inconsistencia entre "Range.include?" ¿método? Ruby v1.8.7 da un resultado diferente al v1.9
Lucas Pottersky
12
Una gran diferencia sería el cambio del intérprete de Matz a YARV , una máquina virtual de código de bytes que ayuda significativamente con el rendimiento.
Me gustan los dos. El libro Pickaxe analiza algunas cosas con más detalle, pero el lenguaje de programación Ruby es bueno cuando quieres buscar algo rápidamente. Está más cerca de un libro "en pocas palabras".
The Tin Man
1
Algunos cambios más:
Devolviendo una matriz de singleton splat:
def function
return*[1]end
a=function
rubí 1.9: [1]
rubí 1.8: 1
argumentos de matriz
def function(array)
array.each {|v| p v }end
function "1"
Respuestas:
Sam Ruby tiene una presentación de diapositivas genial que describe las diferencias .
Con el fin de incorporar esta información en línea para facilitar la referencia, y en caso de que el enlace falle en un futuro abstracto, aquí hay una descripción general de las diapositivas de Sam. La presentación de diapositivas es menos abrumadora de revisar, pero tener todo en una lista como esta también es útil.
Ruby 1.9 - Características principales
¿Qué ha cambiado?
Cadenas de un solo carácter.
Rubí 1.9
Ruby 1.8.6
Índice de cadena.
Rubí 1.9
Ruby 1.8.6
{"a", "b"} Ya no es compatible
Rubí 1.9
Ruby 1.8.6
Acción: convertir a {1 => 2}
Array.to_s
Ahora contiene puntuaciónRubí 1.9
Ruby 1.8.6
Acción: utilice .join en su lugar
Los dos puntos ya no son válidos en declaraciones cuando
Rubí 1.9
Ruby 1.8.6
Acción: use punto y coma, luego o nueva línea
Las variables de bloque ahora sombrean las variables locales
Rubí 1.9
Ruby 1.8.6
Hash.index
ObsoletoRubí 1.9
Ruby 1.8.6
Acción: Use Hash.key
Fixnum.to_sym
Ahora idoRubí 1.9
Ruby 1.8.6
(Continuación) Ruby 1.9
svn.ruby-lang.org/repos/ruby/trunk/lib/rake.rb
Teclas hash ahora desordenadas
Rubí 1.9
Ruby 1.8.6
El pedido es un pedido de inserción
Expresiones regulares Unicode más estrictas
Rubí 1.9
Ruby 1.8.6
tr
yRegexp
ahora entiende UnicodeRubí 1.9
pack
yunpack
Ruby 1.8.6
BasicObject
Más brutal queBlankSlate
Rubí 1.9
Ruby 1.8.6
Acción: Use :: Math :: PI
Cambios de delegación
Rubí 1.9
Ruby 1.8.6
Defecto 17700El uso de $ KCODE produce advertencias
Rubí 1.9
Ruby 1.8.6
instance_methods
Ahora una matriz de símbolosRubí 1.9
Ruby 1.8.6
Acción: ¿ Reemplazar instance_methods.include? con method_defined?
Codificación del archivo de origen
Básico
Emacs
El asunto
Enhebrado real
¿Qué hay de nuevo?
Sintaxis alternativa para símbolo como teclas hash
Rubí 1.9
Ruby 1.8.6
Bloquear variables locales
Rubí 1.9
Métodos de inyección
Rubí 1.9
Ruby 1.8.6
to_enum
Rubí 1.9
¿Sin bloque? Enum!
Rubí 1.9
Taquigrafía Lambda
Rubí 1.9
Ruby 1.8.6
Números complejos
Rubí 1.9
Decimal aún no es el valor predeterminado
Rubí 1.9
Regex "Propiedades"
Rubí 1.9
Ruby 1.8.6
Splat en el medio
Rubí 1.9
Fibras
Rubí 1.9
Romper valores
Rubí 1.9
Métodos "anidados"
Rubí 1.9
HTH!
fuente
Una gran diferencia sería el cambio del intérprete de Matz a YARV , una máquina virtual de código de bytes que ayuda significativamente con el rendimiento.
fuente
Muchos ahora recomiendan The Ruby Programming Language sobre el Pickaxe; más concretamente, tiene todos los detalles de las diferencias 1.8 / 1.9.
fuente
Algunos cambios más:
Devolviendo una matriz de singleton splat:
argumentos de matriz
fuente