2009-02-15 20 views
12

Soy desarrollador de C# .NET y trabajo en la mayoría de los proyectos de ASP.NET.Python o Ruby para un desarrollador .NET?

quiero aprender un nuevo lenguaje de programación,

  • para mejorar mis conocimientos de programación al experimentar un nuevo idioma,
  • ver algo diferente entorno continuación, Microsoft,
  • y tal vez pensar en una Manera diferente.

Me centro en dos idiomas para mi objetivo. Python y Ruby.

  • ¿Cuál ofrecen para mí?
  • ¿Ventajas y desventajas el uno del otro?
  • ¿Vale la pena aprenderlos?

EDIT: Lo siento, Editted mi puesto, pero no informo aquí,

Ruby on Rails reemplazados con Ruby.

Respuesta

16

Ambos lenguajes son poderosos y divertido. Cualquiera sería una adición útil a su caja de herramientas.

Python tiene una comunidad más grande y probablemente más documentación y librerías maduras. Su orientación a objetos es un poco inconsistente y se siente (para mí, en mi humilde opinión) como algo que se atornilló al lenguaje. Puede alterar el comportamiento de la clase en tiempo de ejecución (parche de mono) pero no para las clases precompiladas, y generalmente está mal visto.

Ruby podría ser un poco más diferente a su experiencia actual: tiene cierto sabor de Smalltalk (por ejemplo, la llamada a un método es más adecuada para el envío de mensajes). Su orientación a objetos está incorporada desde cero, todas las clases están abiertas a modificación y es una práctica aceptada, aunque un poco aterradora. La comunidad es más pequeña, las bibliotecas menos maduras y la cobertura de documentación es menor.

Ambos lenguajes tendrán cierto nivel de compatibilidad retroactiva en sus próximos lanzamientos de majopr, ambos tienen implementaciones .Net (IronPython es producción, IronRuby está llegando). Ambos tienen marcos web que reflejan sus fortalezas (busque SO para el debate sobre Django/Rails).

Si nunca hubiera visto a Ruby, estaría muy feliz trabajando en Python, y lo hubiera hecho sin sufrir cuando sea necesario. Siempre deseé poder hacer el trabajo en Ruby. Pero esa es mi opinión, YMMV.

Edit: Ahora que lo pienso, y aunque me duele, si buscas aprovechar tu conocimiento del .Net framework, es mejor que veas a IronPython, ya que es más maduro que el Ruby equivalente.

+0

Estoy de acuerdo con Python (y soy un usuario de Ruby al 100%). IronRuby finalmente madurará, pero IronPython ya está completo y puede acceder a todas sus bibliotecas .NET habituales, si quiere llevarlo en esa dirección. – Judy

2

Siempre es valioso aprender un nuevo lenguaje de programación. Y tanto Python como Ruby son buenos para saber. Es importante tener en cuenta que, si bien Python es un lenguaje, Ruby on Rails es un marco. En mi humilde opinión, debe aprender Ruby antes de aprender Rails.

Ve try ruby! para ver si te gusta. Si lo haces, prueba con Rails. De lo contrario, prueba Python. Ambos son igualmente útiles. Para mí, Ruby es más "divertido". Si te gusta Lisp, probablemente te gustará Ruby. Si te gusta C, podrías preferir Python. ¡Pruébalos a ambos!

+0

Ruby es un lenguaje propio, como dijiste es un framework. ¿Por qué no decir Python => Django como Ruby => Ruby on Rails? – Garrett

6

Primero ... ¡bueno para usted por querer ampliar su conocimiento! En segundo lugar, está comparando un idioma (Python) con un marco web (Ruby on Rails).

Creo que su mejor opción es probar algunos marcos diferentes en Python y Ruby, hacer la misma tarea bastante simple en cada uno, y solo luego elegir sobre cuál le gustaría aprender más. Rails es bueno para Ruby, pero no es el único que existe. Para Python me gustan los Pylons y Django.

Pros y contras: Ruby es un poco más limpio, en cuanto al lenguaje, que Python. Python tiene un conjunto de módulos mucho más grande.

¿Vale la pena aprender? Sí, tanto para Python como para Ruby.

+0

Defina "Ruby cleaner than Python". Tiendo a decir que es todo lo contrario, y es por eso que me gustaría saber exactamente lo que quieres decir. – tzot

+0

Python tiene algunas cosas de paradigma mixto, mientras que Ruby es OO más "puro". Por ejemplo, ¿por qué dir (foo) en Python para la introspección? Hubo algunas veces que intenté recordar un método en Python solo para recordar que es una función en su lugar. Son pequeñas cosas así, y en su mayoría no son importantes. – dwc

+0

Dijo Ruby, no Ruby on Rails. – Garrett

1

Si está buscando aprender Ruby on Rails, el guides site tiene una gran guía para comenzar y las guías adicionales para mejorar sus rails-fu.

Además, Tore Darell ha escrito un S urvivor's Guide for Ruby on Rails que podría ser útil para usted también.

0

Me gustaría entrar en Ruby. Parece tener una comunidad más grande (o al menos más activa), el ritmo de los nuevos proyectos & el desarrollo continuo es insuperable, y los recursos de aprendizaje parecen superar en número a los de & que los de Python.Podría estar equivocado, pero estas son mis impresiones.

+0

Hace aproximadamente 3 años tuve la impresión contraria, por eso elegí Python sobre Ruby. Probablemente Ruby entendió desde entonces los recursos de aprendizaje, pero en aquel entonces encontré mucho * más cosas de Python (libros, artículos, blogs, etc.). – paprika

+0

No hay indicación de que esto sea cierto. – fuentesjr

3

Si es un principiante, le recomendaría que pruebe Django si decide comenzar a aprender Python. Por supuesto, si decides que Ruby es tu elección de sabor, Rails es la manera más fácil de hacerlo. Cualquiera que sea el idioma que elija, puedo asegurarle que será una buena elección.

Habiendo dicho eso, mi elección personal es Python. Me gusta el idioma, me gusta la comunidad y uso Python para casi todas las ocasiones. Lo uso para aplicaciones de línea de comandos, aplicaciones de GUI, y lo uso para aplicaciones web (Django). Ah, y también lo uso para scripts de administración del sistema en Windows y Linux.

Habiendo dicho eso también, le recomendaría que aprendiera un lenguaje como Haskell o Lisp también. Eso realmente abrirá sus ojos a una nueva perspectiva de la programación. Además, como dices que estás familiarizado con el framework .Net, realmente te recomiendo que comiences con F #, ya que ya estarás familiarizado con las bibliotecas y hará que la transición sea mucho más fluida. De cualquier manera, buena suerte.

+0

F # está en mi lista :) Realmente quiero aprenderlo, pero primero quiero probar un lenguaje que no sea ms. gracias, bueno por la respuesta. +1 – Canavar

2

Regla de oro: Python si le gustan las reglas estrictas y Ruby si las odia.

Otra: Si te gusta JavaScript - Ruby es su elección :)

+0

Me encanta Ruby, pero haré casi cualquier cosa para evitar escribir JavaScript. Sus ideas de objetos pueden ser similares, pero la sintaxis de JS es sencillamente fea. –

+0

Tengo sentimientos completamente opuestos sobre la sintaxis, me encantan las llaves. – vava

2

¿Qué? No hay mención de IronPython?

IronPython es el lenguaje principal del DLR. Le permite usar todas las bibliotecas familiares de .NET, pero a través de Python.

Definitivamente probaría Python e IronPython. Aprenderá mucho e incluso podría colarlo en sus proyectos actuales (puede incorporar un motor IronPython en una aplicación .NET).

Cuestiones relacionadas