Esta pregunta es extremadamente subjetiva y abierta. Incluso puede sonar como algo que debería investigar por mí mismo y tomar mi propia decisión. Pero me gustaría publicarlo y obtener algunos pensamientos de otros.
Larga historia corta: me quemé con la carrera de ratas y estoy en un año sabático autofinanciado este año. Gran parte de esto es tomar un descanso de la rutina corporativa y viajar, pero también quiero jugar con las nuevas tecnologías y hacer algunos proyectos de autoaprendizaje, estar al día en la programación y, bueno, me encanta jugar con programación, cuando no hay presión!
Aquí está la cosa: soy un programador de C / C ++ / Java de por vida. Soy un poco snob de corchetes desde que he estado trabajando con esta familia de lenguajes durante toda mi carrera de programación. Así que me gustaría aprender un idioma que no esté tan estrechamente relacionado sintácticamente con este grupo. Lo que básicamente estoy buscando es un lenguaje que tenga un propósito relativamente general, divertido de aprender, tenga algunos conceptos nuevos que sean diferentes de C ++ / Java y tenga una buena comunidad. Una consideración secundaria es que tiene buenos marcos de desarrollo web. Una consideración terciaria es que no es totalmente académica (léase: hay trabajos del mundo real que la usan).
Lo he reducido a Ruby o Python. Mi impresión de Ruby es que está extremadamente orientada a la web, que su única aplicación real es como un lenguaje de script del lado del servidor para hacer cosas web (principalmente Ruby on Rails). No tengo mucha impresión de Python en absoluto, excepto que parece tener una base de fanáticos apasionados y parece ser un lenguaje bastante versátil.
TL; DR y para decirlo de la manera más sucinta posible: ¿cuál de estos sería mejor para que un chico de C ++ / Java aprenda a obtener nuevas perspectivas sobre la programación? ¿Y cuál es el propósito más abierto y general y aplicable a un conjunto más amplio de aplicaciones? Me estoy inclinando hacia Ruby en este momento, pero me preocupa hasta cierto punto que parezca que se usa como nada más que un lenguaje web del lado del servidor.