2010-07-26 23 views
16

Soy desarrollador de ASP.NET. Quiero aprender tecnologías de desarrollo web y otros idiomas aparte de Microsofts. Escuché acerca de dos idiomas, pero no sé cuál es mejor o cómo favorecer a uno sobre el otro, especialmente que Clojure es nuevo de alguna manera.clojure vs. Ruby

¿Alguien podría ayudarme sobre por qué elegir uno de ellos sobre el otro ?.

Gracias.

+0

Esto está comparando manzanas con naranjas – GabiMe

+1

Viniendo de .NET, probablemente sería más fácil para usted aprender Ruby. – NullUserException

+1

Eventualmente podría poner más opciones en la mesa: tanto Scala como F # están de alguna manera "entre" Clojure y Ruby. –

Respuesta

1

Ruby es un lenguaje agradable, aunque soy parcial al framework Django sobre Rails. Una cosa que he encontrado trabajando con lenguajes interpretados es su implementación ambigua de hilos. Tanto en Ruby como en Python, el intérprete solo atravesará un hilo a la vez.

En cuanto a lo que sucede, piense en lo grande que será la biblioteca cuando intente usarla. Viniendo de .Net ya tienes una gran lib. Python y Ruby son bastante maduros en este momento, y puedes encontrar la mayoría de las extensiones que puedas imaginar. Es muy fácil dar por sentada una gran biblioteca hasta que no la tenga. Antes de cambiar mira .Net nuke. No lo he usado, pero se supone que es la capa de modelo/visor para .Net.

3

Cambiar de ASP a Ruby es probablemente más fácil que cambiar a Clojure, también tiene una comunidad y un ecosistema más grandes. Sin embargo, si está interesado en la programación funcional y/o las características de simultaneidad de lujo, debería darle una oportunidad a Clojure.

+0

puede hacer que Clojure le proporcione toda la comunidad y el ecosistema de Java ....usted podría discutir sobre las definiciones, pero en la práctica obtiene muchos de los beneficios. – mikera

19

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;)

+0

Acepto si solo uno hace un sitio web simplemente ruby. Con Clojure aprendes MUCHO más. El material web en Clojure está desarrollando rápidamente nuevos Frameworks, servidores basados ​​en eventos, nuevas ideas para plantillas ... Clojure es realmente bueno para trabajar con valores clave porque casi se siente como las datasctrucs normales. Así que no necesitas el OO a cualquier base de datos convertir el marco. Clojure es más útil como lenguaje de programación de purpes general porque es más rápido y hay más bibliotecas. – nickik

+0

Estoy de acuerdo en que Clojure podría obtener mucho de algunas bibliotecas/frameworks populares, pero creo que el código disponible que he visto es más limpio. Como otro comentarista lo formuló una vez, Ruby tiene muchas bibliotecas disponibles "con Fugly internals". Pueden adaptarse a su necesidad, pero debe ajustarse a su estilo de código, puede o no tener enormes problemas de eficiencia, y es posible que deban actualizarse cuando salga la próxima versión de Rails (tenga en cuenta que Rails debe actualizarse). por motivos de seguridad, por lo que debe avanzar o obtener una versión LTS). Las bibliotecas de Clojure se sienten más como código limpio para mí. – jm0