Voy a estar aprendiendo Ruby, Haskell y Prolog en la universidad. Ahora, me pregunto qué debería llamar mi atención. Tengo medio año para hacer los tres, lo que significa que tengo que decidir en un idioma para obtener mi tiempo extracurricular. Los demás aprenderé lo suficiente como para hacer un gran bien en el curso.¿Qué ganará un programador de Python aprendiendo Ruby?
Estoy lo suficientemente familiarizado con Haskell y Prolog para saber que aprenderlos me enseñará algunos conceptos muy importantes de la informática. No estoy tan seguro de Ruby.
Pasando por algunos tutoriales y presentaciones, me da la impresión de que el rubí es un montón de magia superficial. Ahora le pregunto a la gente de ruby: ¿Qué habría ganado? Si decidiera no volver a utilizarlo nunca, después de haber pasado medio año aprendiéndolo, Python ya no me había enseñado.
Esta pregunta no pretende "hacer el caso" para ruby, aunque me doy cuenta de que este es un tema potencial de gran argumentación.
Uso Python para todos mis trabajos de CS ahora. He hecho bastante programación funcional con él también. También estoy bastante familiarizado con la programación orientada a objetos (en Java, Python y C#). Y, como dije, haré algo de programación lógica con Prolog.
¿Qué queda entonces para que Ruby me enseñe?
para diluir aún más la pregunta: ¿
No estoy interesado en escribir divertido programas o aplicaciones web fresco. Solo estoy interesado en la Computadora Science bits. Implementando algoritmos, estructuras de datos, etc. (Aunque divertirse seguramente no hará daño)
Idealmente, los conceptos discutidos deben poder aprenderse en aproximadamente 1.000 horas.
No me interesan en absoluto Rails. Cualquier tecnología que oculte la complejidad es, en este caso, perjudicial.
No puedo evitar que esta pregunta sea controvertida. Pero una respuesta ideal a esta pregunta mencionará un concepto profundamente importante de la informática teórica que el rubí ayuda al programador a usar y comprender para obtener conocimiento científicamente adyuvante.
A los candidatos que se me ocurrieron son Meta-programación y Multi-threading. No sé si el rubí es particularmente bueno para aprender alguno de ellos.
¿Una nueva apreciación para Python? :-) – paxdiablo
A veces echo de menos la vieja etiqueta "subjetiva". – Pointy
@Pointy: esta no es una pregunta subjetiva. Puedes dar una respuesta objetiva, cuáles son las características y paradigmas de Ruby, eso sería nuevo para Pythonist. – Nakilon