2009-04-09 26 views
11

Soy un desarrollador de C#/.NET que busca perder el tiempo con algo completamente diferente: algo LAM (*) se apila para construir aplicaciones web rápidamente.Django o Ruby on Rails

Estoy pensando en Django o en Rails. Me gusta más el lenguaje Python y parece tener más funciones que Ruby para estadísticas, ciencias y redes (avíseme si cree que esto está mal). Sin embargo, la comunidad RoR parece ser mucho más grande, lo que podría hacer que sea una apuesta más segura. ¿Crees que esto es importante? ¿Alguien tiene experiencia con RoR y con Django?


Actualización: Específicamente estoy buscando ser capaces de construir un sitio orientado a las finanzas de proximidad rápidamente. Definitivamente hay muchas Ruby Gems para acelerar el proceso, pero noté que Pinax en el lado de Django parece prometedor. Sé que Python ya es bastante popular para la programación financiera/matemática. ¿Alguien más tiene una opinión?


Actualización 2: Noté algunos comentarios sobre ASP.NET MVC. De hecho, he hecho un trabajo bastante importante con ASP.NET MVC, una aplicación LOB para Medical Equipment Servicing, y me encantó. Es en mi humilde opinión una forma mucho mejor e intuitiva de escribir aplicaciones web en comparación con los formularios web ASP.NET. Pero, realmente estoy buscando un entorno de desarrollo que no sea .NET para desarrollar algunas soluciones.

+1

Estoy muy interesado en ver algunos datos acerca de que la comunidad de Ruby es "mucho más grande" que la de Python ... –

+0

Creo que estaba comparando RoR y Dango. –

+0

Mire las páginas de Ohloh para esos dos proyectos: 402 "usuarios" de Django y 453 RoR. –

Respuesta

20

me gusta el lenguaje Python mejor y parece ser más con todas las funciones que el rubí para estadística, científica y la creación de redes (quisiera saber si usted piensa que esto es mal).

Si crees que necesitarás bibliotecas como NumPy o SciPy, probablemente sea mejor que te quedes con python/django. He luchado para encontrar equivalentes de rubí.

Sin embargo, la comunidad RoR parece ser mucho más grande

Cuanto más grande, por supuesto, no va a ser mejor. He tenido una gran experiencia con la comunidad django en términos de soporte, y el ecosistema de aplicaciones conectables está madurando bastante rápido.

También me gustaría añadir que encuentro que la documentación de django es muy fácil de seguir.

10

Si quieres una pila rápida echa un vistazo a Sinatra.

Django tendrá más sentido más rápido. Tiene un enrutamiento impresionante, una estructura de archivos simple, una sintaxis limpia y agradable, no muchos momentos WTF y una funcionalidad comprensible de ORM.

Rieles en los que tendrás que bucear. Lucharás contra activerecord. Intentará abarcar las múltiples facetas de una aplicación de rieles.

Me gustan ambos. Pruébalos a los dos. No tardan tanto en hacerse una idea. En última instancia, debe basar su decisión por aplicación y factorizar qué idioma tiene mejores módulos/extensiones/gemas para lo que necesita.

+0

Buen punto, no estaría de más probar ambos. – NathanD

8

Dado que su preferencia declarada es Python, no dudaría en recomendar a Django. El documentation disponible para Django es de primera categoría, y la comunidad es muy útil.Explore los archivos de django-users o pase un rato en IRC por un tiempo y obtendrá una buena idea del soporte disponible.

6

divertido ... Estoy en el mismo barco, aunque tal vez he estado buscando por un poco más de tiempo.

Vine desde MS-land (C# también) y fui con Django, pero solo después de jugar con Google AppEngine, que me reintrodujo en Python. Django está bien organizado, internamente consistente (por lo que pude ver), y está bien respaldado por una comunidad vibrante. Python está bien organizado, internamente consistente (hasta donde puedo decir), y extremadamente bien soportado con una comunidad increíble.

De todos modos, el desarrollo web de Python es más rápido que Django. Es posible que desee buscar: python wsgi framework. Los pilones y TurboGears ofrecen una enorme flexibilidad y se centran en los componentes "de su clase", web2py parece tener un DAL/ORM muy bueno que estoy ansioso por investigar, y web.py y werkzeug (entre otros) son minimalistas y don ' Tratar de dictar cómo debe construir su aplicación. Y si te estás quedando con Django, definitivamente echa un vistazo al proyecto Pinax, podría ayudarte a impulsar tus esfuerzos de desarrollo.

+1

Publicado antes de leer su edición. No estoy seguro de qué bibliotecas de Python están disponibles para finanzas, pero sí sé que Pinax es un excelente ejemplo de un sitio de comunidad creado con Django. Pinax también sirve para demostrar cómo se puede organizar un sitio de Django para lograr la máxima reutilización. –

+0

Librerías de Python: Estaba viendo tanto NumPy como también el contenedor de Python para TA-lib – NathanD

+0

Lo siento, me gustaría poder comentar sobre esos paquetes, pero la informática científica y financiera no es algo con lo que haya lidiado. Sin embargo, me sorprendería si hay deficiencias específicas de Python en cualquiera de las bibliotecas. He tenido buena suerte con las libs de Python; la calidad suele ser bastante alta. –

2

soy otro tipo C# /. Net con el mismo picor para jugar. Django es atractivo. Aunque el desarrollo es fácil y divertido, he escuchado algunas historias sobre dolores de cabeza de implementación y configuración con Rails y Django (principalmente rieles). No es como lanzar una aplicación asp.net en IIS o PHP en Apache. Para esas cosas, puede configurarlo y olvidarlo. Me gustaría recibir comentarios de c.batt sobre su experiencia al implementar django.

Últimamente he estado mirando a Grails. Utiliza Groovy que es ruby. Es muy fácil de desarrollar y puedes crear aplicaciones tan rápido como Rails, pero tienes acceso a la plataforma Java a través de JVM, que puede ser útil. Hay una tonelada de componentes java de código abierto que podrías incluir en tu aplicación Grails, muchos de los tipos de componentes que estarías buscando. Realmente no es como construir una aplicación java. Hasta ahora se siente como Rails. Buena suerte.

0

Tengo curiosidad. Si usted es un programador de C#, ¿por qué ha descartado el MVC de Microsoft?

usted tiene dos necesidades diferentes expresadas en su pregunta:

1) ¿Quieres probar algo nuevo 2) ¿Desea construir un sitio de finanzas de proximidad rápidamente.

Entiendo el deseo de ver a RoR o Django por la necesidad 1, pero para la necesidad 2 esperaría que fuera más productivo más rápido con MVC.

Tenga en cuenta que no digo que TODOS sean más productivos más rápidamente ni tampoco digo que el MVP de Microsoft sea intrínsecamente más productivo, solo que alguien que es actualmente un programador de C# pueda acelerar más rápidamente algo que usa C# ...

6

Acabo de terminar de construir un pequeño sitio de redes sociales con Django para un cliente. Era nuevo en Python y nuevo en Django, pero fue una de las experiencias de desarrollo más agradables que he tenido en mucho tiempo (incluso con los dolores de cabeza de ser nuevo en un lenguaje y un marco). Y solo tomó dos semanas.

Si está construyendo esto para usted mismo, probaría tanto Rails como Django (o uno de los otros marcos que c.batt mencionó) para ver qué se siente más cómodo. Terminé eligiendo Django/Python porque me gustaba el idioma. Se sentía limpio y eficiente, y no se puede discutir con la velocidad a la que se puede poner en marcha un sitio escueto.

Como se mencionó anteriormente, Pinax es excelente.En todo caso, obtienes una base sólida sobre la que construir. Descubrí que tenía que ampliar partes para obtener exactamente lo que quería, y en un par de secciones decidí codificar desde cero porque los cambios se volverían "hacky" para que coincidieran con lo que necesitaba. Otras partes, sin embargo, son perfectas. La mensajería privada se utilizó de forma inmediata, solo con algunas plantillas nuevas para que coincida con el sitio.

+1

¿me pueden enviar un enlace al sitio de redes sociales que construyeron en DOS SEMANAS? ... eso es impresionante – Tony

1

Como eres un programador de .NET avezado, deberías mirar ASP.NET y MVC antes de recurrir a Rails y Django, al menos si tu objetivo es comenzar a utilizarlo rápidamente. Siempre es más fácil aprovechar algo que ya conoces en profundidad.

Estuve en una situación similar recientemente. Tenía un proyecto que quería implementar en Windows y Unix, por lo que en lugar de aprovechar lo que sé (Ruby/Rails), abandoné el barco y le di Groovy Grails a go. Fue una experiencia realmente gratificante, y estoy muy contento de haber hecho algunos pequeños proyectos en Grails, pero al final tuve una pequeña fracción de la productividad que obtuve en el entorno en el que tenía algunos años de experiencia, incluso después meses de piratear a Grails.

Por lo tanto, elija Django, Rails, Lift, o lo que sea que desee hacer: le ayudará a expandir su mente y le dará diferentes maneras de resolver los problemas. Pero si quiere ponerse en marcha rápidamente, use lo que sabe (.NET) en una plataforma diseñada para usted (MVC).

7

Me gusta más Django porque es menos mágico, con Rails siento que presionaron demasiado a la convención sobre el principio de configuración, por lo que prefiero la naturaleza más explícita de Django.

+0

Rails no es mágico. Todo el código fuente está disponible para usted. – nitecoder

+12

Sí, claro, así sabrías lo que va mal con Linux todo el tiempo si fuera tan fácil – Lorenzo

2

¡Estás en un punto en el que no puedes hacer una mala elección!

Mi preferencia personal es django, pero sé de hecho que los rieles también son buenos.

Creo que la mejor respuesta es lo que los BFDLs de django mismos dicen:

probar ambos, el uso que más te guste.

0

Aunque nunca lo he intentado personalmente más allá de jugar, es posible que también desee probar ASP.NET con IronPython. Here's a blog post that details it.

+0

Es una idea interesante y ahora IronPython está muy cerca de la compatibilidad con Python normal. Hace unos meses, vi una publicación en un blog que dice que tienen Django ejecutándose en IronPython con SQL Server con solo algunos retoques menores. Creo que podría estar interesado en utilizar IronPython con un sitio ASP.NET MVC. – NathanD

0

Estoy de acuerdo con la gente que dice: prueba ambos y usa lo que más te guste.

Creo que Rails será una experiencia interesante debido a la convención sobre la configuración y la arquitectura MVC forzada. Además, no estoy seguro de cuál es la experiencia de las personas con Django en StackOverflow, pero todas mis preguntas de Rails se responden muy rápidamente.

También tenga en cuenta que puede llamar a un servicio de python para hacer algunos cálculos estadísticos si es necesario.

Aquí hay un artículo escrito por un chico que pasó de .NET/C# a Rails a Django/Python, y luego de vuelta a Rails. Puede valer la pena una lectura rápida.

http://blog.carlmercier.com/2007/01/30/why-i-moved-from-ruby-on-rails-to-pythondjango-and-back/

+0

Buen artículo, pero ya tiene más de 2 años, mucho tiempo. Todas las plataformas han mejorado inconmensurablemente desde entonces. Ruby es v1.9 (mucho más rápido), Rails y Merb están convergiendo, Django está en v1.1 con muchas características nuevas (y también una competencia). Diablos, ASP.NET tiene MVC ahora, y también es bueno. –

0

Su pregunta debe ser: Python o Ruby;)

1

Al igual que otros sugieren, tratando tanto es una buena manera, pero en realidad, a mí, me gustaría basarlo más en el idioma que prefiera usar. Claro, si se trata de una aplicación web, harás mucho con el marco, pero "cada" línea de código que escribas estará en ese idioma. Como ambos frameworks son fuertes, es más una cuestión de en qué idioma estará más feliz escribiendo código, día tras día.

Yo personalmente uso Rails y me encanta, pero tengo muchos amigos que usan Django. Cuando discutimos cosas, una y otra vez, se reduce más al lenguaje que al marco. Los idiomas son bastante diferentes, y normalmente encontrará uno que prefiera mucho más que el otro, al menos en mi opinión. Originalmente pensé que Python sonaba genial, lo aprendí, escribí algunas cosas con él, etc., pero nunca me "presionó". Cuando vi por primera vez a Ruby hace muchos años me pareció un poco extraño, pero cuando lo volví a visitar a través de Rails, me pareció tan natural. Cuando escribo código en Ruby, siento que estoy escribiendo inglés, si puedo pensar en cómo creo que debería escribirse el código, puedo escribirlo y funciona. Simplemente se adapta mejor a mi cerebro.

En cuanto a la comunidad, obtendrás muchas opiniones diferentes. No creo que ser "demasiado grande" significa que es malo, ni tampoco creo que la comunidad de Ruby sea de ninguna manera "demasiado grande", especialmente comparada con la comunidad de Java. Ruby y Rails ciertamente han llegado a la corriente principal hasta cierto punto, y para aquellos de nosotros que hemos trabajado con él durante varios años, parece ser convencional, pero en el gran esquema de cosas, en realidad, todavía es bastante pequeño.

De todos modos, buena suerte, y disfrutar buscando en ellos y encontrar lo que le encantará trabajar con.

1

Rails es como la Biblia. A menos que seas un santo, no necesitas entenderlo y probablemente nunca lo entiendas; todo lo que necesitas hacer es creer en eso.