Ruby obviamente le dará una mejor inversión por su dinero si su objetivo es hacer cosas y reutilizar bibliotecas maduras. Debe tener uno de los ecosistemas más vibrantes considerando el desarrollo web. La cantidad de cosas nuevas es grande y, lo más importante, la calidad es a menudo sorprendente.
Tiene una muy buena package distribution system, y una serie de herramientas que hacen que el desarrollo web práctico sea muy fácil en todos los niveles.
En los marcos web pesos pesados que tiene:
- Rails, que usted ha oído necesariamente se trata. Es probablemente uno de los mejores compromisos actuales entre la gran comunidad y el diseño inteligente. El otro sería django en mi opinión, pero es un marco pitón
- Merb, que es una alternativa más ligera en el departamento marco completo soplado
y tiene una tonelada de los más ligeros, como Sinatra, que es probablemente uno de los frameworks web más pequeños y elegantes que he visto, o Camping, que es pequeño y muy divertido de usar.
Esto es solo el comienzo. Ya sea para ORM, motores de plantillas o cualquier otra cosa que quieras hacer con ellos relacionados con la web, tienes un montón de opciones de calidad.
En el lado negativo para el rubí:
- Es un lenguaje muy denso, con un montón de cosas que aprender, y una inclinación distinta para las construcciones "mágicas". Es bastante hermoso, pero está lejos del lenguaje más simple.
- Es lento. Si quiere hacer algo que necesite rendimiento, probablemente Ruby no sea el idioma que necesita.Eso puede o no ser un problema dependiendo de lo que quiera hacer con él
- No tiene tanta biblioteca para "programación regular" como para programación web, aunque claramente tampoco es el desierto. Sin embargo, un lenguaje como Python tiene una gama más amplia de bibliotecas si sales de la programación web.
Clojure es una bestia muy diferente. Es un lenguaje muy nuevo, y es completamente funcional. Si nunca antes has programado un estilo funcional, puede ser un cambio de paradigma que te hará menos productivo por un tiempo, pero seguramente aprenderás mucho en el proceso.
También es un ceceo, y al igual que con la programación funcional, probablemente significará muchas cosas nuevas que aprender, pero mucha iluminación al final del proceso.
Es un lenguaje muy elegante, con una comunidad muy vibrante. También es mucho más rápido que el rubí, y solo está mejorando con la nueva versión 1.2.
Así que en el lado positivo:
- Es un lenguaje inteligente. Contiene muchas ideas interesantes, especialmente con respecto a la concurrencia. No está orientado a objetos
- Es rápido para un lenguaje dinámico
- Se ejecuta en la JVM y tiene un sistema de interoperabilidad muy fuerte y fácil de usar con Java. Eso básicamente significa que tienes todo el ecosistema de Java a tu disposición.
En el lado negativo:
- Está muy nuevo. Eso no es una desventaja en sí mismo, pero es la razón de otros problemas que puede tener con él en el camino.
- Tiene muy pocas bibliotecas bien pensadas y bien integradas. Este es el punto que es el más perjudicial en mi opinión. Básicamente tienes todo lo que necesitarás en el mundo de Java, pero las soluciones pueden ser feas. Es posible que desee codificar su propia biblioteca contenedora en el proceso, pero esto lleva tiempo.
- No es como todo lo que sabes. No está orientado a objetos, no es imprescindible, y no tiene nada que ver con la sintaxis clásica C. Así que dependiendo de sus otras experiencias de lenguaje, podría tomar mucho tiempo para aprender
Así que el resumen es:
Si quieres aprender cosas nuevas en un environnment muy cómodo al tener la posibilidad de construir cosas muy rápido aprovechando las bibliotecas maduras, elige ruby.
Si desea aprender aún más cosas nuevas, no le importa en un territorio totalmente nuevo, eventualmente tomar más tiempo para hacer cosas, y desea participar en una comunidad que podría estar en camino a modificar la forma en que pensamos acerca de la programación, mientras pirateamos y nos divertimos en el proceso, elija clojure;)
Esto está comparando manzanas con naranjas – GabiMe
Viniendo de .NET, probablemente sería más fácil para usted aprender Ruby. – NullUserException
Eventualmente podría poner más opciones en la mesa: tanto Scala como F # están de alguna manera "entre" Clojure y Ruby. –