Por que no usar django. Breve comparativa entre django, ruby y Mono ASP.Net con MVC

Hace un tiempo empecé a oír hablar de django y empecé a interesarme por el. La verdad que al principio me llamaba mucho la atención porque la gente no hacia mas que alabar las virtudes de django. Investigando encontraba mas y mas alabanzas, incluso expertos que comparaban django con otros entornos como Mono ASP.Net con MVC o ruby.

A veces las comparaciones son odiosas y esto es que lo les pasa a los demás entornos cuando los comparamos con django. Al comparar django con Mono ASP.Net con MVC, comentaban como un mismo proyecto realizado por programadores expertos en django, realizaban muchas mas tareas que los expertos en ASP.Net en el mismo tiempo y que el resultado final del proyecto es que era mas rápido y consistente el desarrollo en django que en ASP.Net. Yo no digo que django sea un mal entorno, ni que los programadores de ASP.Net sean malos, pero la calidad de un programador de .Net realizando una web deja un poco que desear en la mayoría de los casos, no asi un programador friki de python que ha decidido hacer webs y que seguramente sea mucho mas versátil que uno de asp.net aunque hiciera la web en php y para mi esto no es comparable. Por otro lado comparaban django con ruby y no me gusto nada la comparación, ya que al comparar, decían que ruby on rails era para “nenas” y django para “hombre de pelo en pecho”. La verdad que esta comparación, es un poco ridícula, hasta llego a hacerme gracia a pesar de no gustarme.

Ahora vayamos a mi experiencia personal. Decidí instalarme django, ruby y Mono ASP.Net con MVC. Al buscar información, tutoriales o algo de guía para instalar e iniciar django, me encuentro con poca información y además centrada para linux, seguía las guías para mac y me costo sudor y lágrimas hacerlo correr (mi amigo @saikus no fue capaz). Cuando ya conseguí, intente hacer una prueba pero fui incapaz, bastante complicado para empezar sin un libro o sin que alguien te enseñe. Aun así, vi que utiliza una especie de servidor propio, por lo que para por ejemplo hacerlo correr en apache, hay que arrancarlo desde ssh y enlazarlo por un fastcgi o similar con apache, pero la cuestión es, cuanta comunidad puede generar algo que es muy muy muy dificil que sin ser pro y sin gastar un dineral en hosting, puedan hacer pruebas (yo en mi hosting no puedo instalarlo de momento).

Por ejemplo, mi experiencia con ruby o asp.net es muy mas satisfactoria, puesto que ruby es tan fácil como instalarlo desde algún apt-get, ports, descargable, etc y luego instalar las mil y una gemas necesarias. De una forma rápida y fácil puedes hacer funcionar un ejemplo o programar algo no solo en linux, sino en MacOSX, que es importante, ya que cada vez hay mas gente que usa este sistema. Por otro lado Mono ASP.Net con MVC es también muy fácil, quizás algo mas complejo que ruby, pero tan fácil como bajarse el instalable o en el peor de los casos las fuentes de la web de mono y compilar. Mono ya tiene XSP que es su propio server como ocurre con django y rails, y con mod_mono lo compilamos e instalamos en un periquete en apache.

Por que me gusta mas usar Mono ASP.Net con MVC que usar ruby o django. Django lo descarto por el costo de su instalación, porque no tengo un buen IDE donde poder programarlo y si quisiera pagar aunque fuera poco por los IDES, ¿Por qué no volverme a Windows y usar Visual Studio? Ruby es un poco parecido, es mas fácil de instalar y trabajar, pero falta un buen IDE, Netbeans tiene soporte, al igual que Eclipse para django, pero son plugins para mi gusto no estan muy muy depurados. Por el lado de Mono ASP.Net con MVC tenemos la opción de monodevelop, que si bien es cierto que sus primeras versiones eran como los plugins antes mencionados, las ultimas han mejorado sustancialmente y no hay que olvidar que en lugar de ser un IDE de java con plugins para python o ruby, es un IDE de .Net (dotnet), por lo que mvc esta soportado nativamente.

En conclusión, a django le veo demasiadas pegas que ensombrecen las virtudes que tiene. Ruby es quizás el mas equilibrado en cuanto a potencia y tiempo de desarrollo y Mono ASP.Net con MVC es mas lento en cuanto a desarrollo pero muy potente, además de no ser un framework añadido a un lenguaje (mvc si, pero no asp) sino todo un entorno preparado para la web, donde con un par de clicks es muy fácil generar clientes de servicios web, o crear un servicio web xml, una pagina web o mil cosas mas. Es por esto que yo personalmente me quedo con Mono ASP.Net con MVC.

32 comentarios en “Por que no usar django. Breve comparativa entre django, ruby y Mono ASP.Net con MVC”

  1. Pingback: Bitacoras.com

  2. Alicia,
    iluminanos con tu sabiduría, hazte un blog y defiende Django y nos pasas el link a los que seguimos este blog.

    De paso si te curras un buen tutorial para gente inútil como yo que me rendi al intentar configurar Django con Lion pues aún mejor.

    Muestranos el camino 😉

  3. ¿Cuántas páginas debe tener mi nuevo blog para poder responder en éste?
    No creo que el post sea mejor, ni peor, pero podría haber sido un artículo maravilloso si se hubiera titulado «Por qué no me gustó usar django» ;).

  4. Hola Alicia, si bien es cierto que el post se podría haber llamado «Por qué no me gustó usar django», hago una breve comparativa, a titulo personal de varios entornos, como son asp.net con mvc, django y rails. Tengo que decir que a pesar que mvc de asp.net es mi opción preferida, es porque me parece que creas un código impecable y rápido, ojo que asp.net tradicional no me gusta nada, es muy espaguetti code.

    La ventaja para dictaminar entre uno y otro es, la facilidad de instalación y uso, python y ruby son lenguajes de script que han hecho un framework web, asp.net es un entorno web y mvc un framework. Para hacer una idea, es como php, esta preparado para la web, no es un parche para que funcione ahí. También la facilidad de edición, para asp.net mvc tienes monodevelop, multiplataforma y facil de usar, en django y rails tienes o ides de pago, o ides incompletos y no dedicados exclusivamente a eso.

    Alicia, como seguidora de django o python, entiendo lo que dices y ojo, no digo que sea un mal framework, es cojonudo, pero dificil de hacer un deploy y configurar cuando no tienes una amplia experiencia sobre python y sobre django

  5. Creo que mas que no gustarte django es que te dio pereza leer. He tenido la suerte de probar django y una vez que lees un poco el tutorial resulta facil comenzar a trabajar con él. Solo hecho de menos una cosa ¡montar servicios web! Para eso me resulta mas sencillo usar asp.net. Por cierto para instalar django: descomprimes el paquete, y ejecutas sudo python setup.py install y para levantar el servidor de desarrollo ejecutas django-admin.py runserver
    Espero que le des otra oportunidad a django al igual que yo deberia darle la primera a rails 🙂
    Saludos

  6. Gracias por la aclaración dracel, la verdad es que django limpio fui capaz de levantarlo, es sencillo ponerlo en un entorno de desarrollo, el problema lo tuve con alguna herramienta vease por ejemplo tree.io, que solo me daba problemas, en mi mac lo he conseguido montar pero montar en un entorno linux me han hecho perder un poco el pelo. Aun así, django es un tema muy caliente (a lo que comunidad se refiere) y te aseguro que lo utilizare y cuando aprenda animare a la gente a usarlo 🙂

  7. Erikson Murrugarra

    Hola, creo que no deberías de hablar así de Django, django es una herramienta muy utilizada y muy fácil, el hecho de que el instalarlo y hacerlo arrancar no te fue tan fácil, no es razón para decir tales cosas..

    Tengo una certificación de microsoft en MVC Framework sin duda .net y el MVC Framework son lo máximo, pero me gusta mucho más Django por su facilidad de uso y rapidez.

  8. Pues si.. el título del artículo está mal, estás críticando un framework que no conoces, yo también creo que te faltó leer, Django tiene muy buena documentación(claro en ingles: https://docs.djangoproject.com/en/1.3/)
    Podrías haber empezado con la guía de iniciación: https://docs.djangoproject.com/en/1.3/intro/

    Que dice como instalarlo:
    https://docs.djangoproject.com/en/1.3/intro/install/

    Es tan fácil como instalar python y luego ejecutar el setup.py de Django, luego bajarte un idea para django y decirle dónde está instalado python.

    Tiene un servidor incluído, pues si, y es para modo dev, para modo producción, te lías con lo de apache, pero :O.. ni siquiera lograste instalarlo =S.

    Creo que ni siquiera has leído algo de python, yo creo que debes poner un update adelante de tu artículo, y aclarar por qué no te gusta en un par de palabras y no escribir un extenso artículo para decir que no lo supiste instalar..

  9. la verdad no creo que puedas comparar las bondades de una plataforma sí ni siquiera pudiste instalará correctamente y crear un proyecto con el. es claro que hay dificultades al no disponer un instalador que haga todo por ti. pero no es gran cosa. yo tambien tuve mis problemas y la verdad el más grande es el idioma lo demas es solo cuestión de leer un poco.

  10. Hay muchos ides buenisimos para Django ( mucho mejores que para rub y ) y hay muchisimas empresas de hosting que soportan django. django no requiere servidor propio, requiere mod_wsgi para apache ( igual que mod php etc…. )
    ruby tambien necesita ser instalado en en servidor. por lo que descarto totalmente tu comparacion, es una comparacion sin sentido, estas diciendo cosas que no so verdad, te confundes mucho.
    si quieres mandame un correo y te aclaro las cosas.
    Ademas en python puedes desarrollar aplicaciones de escritorio/web/lan/server ( django es framework python )
    en cambio ruby solo es conocido gracias al framework rybi on rayls si no fuera por el framework el lenguaje rubi moriria hace tiempo.
    He porbado ambos, y sin duda django es mucho mejor, lo malo es que la documentacion esta en ingles

    1. Estoy leyendo de todos lados sobre Python y Django. La Isntalación de ambos resulto muy simple. Soy super novato en esto (Python y Django). Pero la verdad, donde mas me cuesta y no entiendo por que hacen eso!!! es que cambian de versiones de Django y las diferencias grandes entre versiones. Ejemplo, la forma de declarar los tipos de datos en la definición de los MODULOS (DB). MaxLen(60) y MAX_Len(60), obviamente reventó todo! y funciones como sqlall, validate que no existian! que???? cómo que no existe? si estoy haciendo el mismísimo ejemplo del sitio oficial! maldidas versiones. Eso, para el que esta empezando en este lenguaje de programación, lo frustra muchísimo, y tantas alabanzas a Django a uno lo ponen en duda, sobre todo, al momento de rendir cuentas a nuestros superiores en resultados laborales.

    2. Leonardo Velazquez

      Creo que tambien estas equivocado,…. existen excelentes IDEs para Ruby on Rails, de hecho es de la misma empresa, JetBrains, que para mi gusto tienes los mejores IDE’s para Web con WebStorm, Python/Django con PyCharm, Ruby/Rails con RubyMine, PHP con PHPStorm, .NET MVC/CORE con Rider y Java con IntelliJ

      y tambien con Ruby puedes desarrollar aplicaciones de Escritorio, incluso mobiles..! y no desarrollo en Ruby on Rails, si lo probe y me gusto, me gusto mas que Python, pero me gusta mas programar en C#, asi que yo ando en ASP NET MVC

  11. Eugeniu, cuando escribí esto me deje llevar un poco, tengo que reconocerlo, he hecho unos cuantos proyectos en python, unos en django y otros en pylons. Tengo que reconocer que con django es bastante sencillo trabajar cuando pillas la dinámica. Aún así, prefiero mono, pero es cierto que si tuviera que buscar una alternativa, optaría por django aunque python no me mola mucho, como ya escribí en un articulo posterior.

  12. Es cierto, Django en Lion es tortuoso (sobre todo la conexión con mysql) pero cuando se logra, los resultados valen la pena. Siempre en mundo de programadores hay colores, sabores y gustos de mil formas, discutir de uno u otro no vale la pena cuando a ti como programador no te gusta. Caso me pasa con ASP o Ruby, podrán decir mil maravillas y mil defectos de lo que uso, pero si no me gusta… Nada importa.

    Sin embargo, excelente post (notese que lo leo muchisimo despues), una recopilación importante como para los días que uno no sabe que hacer con tanto.

    Saludos

  13. Instalacion de Django (Parecida a la de ruby)

    sudo apt-get install pip (En el caso de Mac sudo easy_install pip)
    sudo pip install django
    django-admin.py startproject nombre
    cd nombre
    python manage.py runserver

    5 comandos y todo set en python. En el caso de windows es diferente, pero la inexperiencia instalando los frameworks hacen que sean dificiles. Yo tuve problemas instalando ruby en un momento de mi vida y no por eso lo critico tal vez por que no use gems, en tu caso no usaste pip para django. En conclusion son framework igual de bueno depende del gusto de los programadores.

    1. Jorge Luis, la verdad es que si todo fuera tan fácil en esta vida… Lo que comentas de instalar pip, django y arrancar el server es lo mas sencillo que hay. En realidad no hay mayor complicación y da igual el sistema, eso lo hice muy fácil en Ubuntu, en OSX y en Windows con un port de PIP.

      El problema viene cuando quieres montar un servidor. Si tienes que enganchar diferentes instancias de python con apache o peor con nginx, puede convertirse en una autentica odisea de configuraciones y todo eso, hay que pensar que se ha de trasladar a un servidor de producción, que tienes el problema de los paquetes de python y la verdad mi experiencia es malisima con eso.

  14. Rigo, al final son gustos y tienes toda la razón. En mi caso soy un programador «matematico», por lo que me inclino mas hacia lenguajes tipo C#, Java, etc y menos hacia Pythons, Visual Basic, etc.

    Aún así tengo que decir que con todo Python es un gran lenguaje y Django un gran framework aunque no sea al 100% de mi agrado.

  15. He probado hace poco Django y está bastante bien el framework, si que es verdad que pierdes tiempo con la instalación, pero googleando encuentras buenos tutoriales y soluciones a problemas comunes con la instalación.

    1. Desde luego en internet se encuentra todo. Hoy en día es mas sencillo encontrar documentación y tutoriales para todos los casos que cuando escribí este artículo.

  16. Buen articulo, nunca he usado mono ni rails, solo django, y es muy buen framework para desarrollo web.. Y estoy de acuerdo contigo , la mayoria de los usuarios nuevos de django hablaran maravillas de el hasta el dia que vayan a correr su aplicacion en un entorno de produccion… Es ahi cuando vienen los problemas xD

  17. no entiendo tu post, has probado muy poco django, y lo que cuesta de instalar no lo consideraría a la hora de inclinarme hacia un framework u otro. A parte si siempre has utilizado otro el cambio siempre es complicado… la primera vez cuesta, la segunda menos,…
    Como ide me gusta pycharm, En cuanto a la documentación la verdad que la considero bastante completa (aunque ese tono verde, amarillo y marron no da muy buena impresión,pero te acabas acostumbrando y hasta es relajante .. 🙂 a parte tiene una comunidad muy grande detrás . Las gemmas serían el equivalente a los packages de django, y almenos desde el ide que utilizo es tan fácil como buscar y dar click a instalar.

  18. Tengo como ocho años programando en web, elegí utilizar a php, luego de ser programador en java (JSP) y antes de Visual Basic en ambiente cliente servidor, por la sencilla razón que en php hacer cualquier cosa era un paseo, y yo necesitaba rapidez, simplicidad y efectividad, y ademas siempre he creído que las virtudes de cualquier lenguaje dependen de la pericia y conocimiento del programador, se puede tener un lenguaje orientado a objetos y todo aquello y no sacarle todo el provecho, en java hacer que el sistema enviara un correo tenía que crear un serie de clases, en cambio en php era una simple linea de codigo.
    Luego de emprender una busqueda de herramientas o tecnologías que hicieran que una aplicacion web fuera mas amigable e interactiva, me tope, con remote scripting, luego ajax, luego YUI, y luego ExtJS con el cual he venido trabajado desde su version 2 actualmente va por su version 4.2 con rumbo a la 5, desde entonces he utilizado el php basicamente para las tareas de acceso a base de datos y cualquier otra cosa que no se pueda hacer con JavaScript.
    En estos días me ofrecieron un trabajo en el cual me exigieron que como condicion, tenía que programar en pyhton con Django como framework, y yo entonces vi la oportunidad de aprender algo nuevo ya que siempre había escuchado hablar de python y ruby. Por supuesto empece a documentarme, el proceso de instalacion tambien fue un poco traumatico pero al final lo instalé. Sin embargo, despues de casi 6 meses, en retrospectiva comparo las aplicaciones que hice anteriormente con Extjs+Php+MySQL y estas se ven mas iteractivas, mas amigables y mas bonitas visualmente hablando, que las que he hecho con Django y para ser honesto ha sido muy traumatico y lento, ya que he tenido que aprender un lenguaje y un framework al mismo tiempo.
    Todavía tengo cosas que aprender en python/Django, ahorita tengo que hacer unos servicios web a ver que tal me va, en php superfacil, con nusoap menos de 30 lineas de codigo y listo.
    Pero no sería mi primera recomendación para alguien que quisiera iniciarse en el mundo de la programacion.

    Saludos

  19. La sencilles de Rails se muere en su mantenimiento y cosas que nunca terminas de entender, sobran los casos de mala documentacion para sus librerias, sobre las gemas (actualmente estoy trabajando en un proyecto donde no entiendo porque estupides gracias a un par de gemas el tamaño del proyecto se elevo a mas de 500 mb) de ruby bueno señores en python existe algo mucho mejor llamado PIP, ademas de los virtualenv que te permite manejar entornos separados sin tantos trastes, un codigo limpio
    siempre sera mejor que uno engorroso u otro inentendible por las malas practicas que induce, el traceback de errores de Django es exelente comparado al resto, solo se acerca el de Ruby, Sobre Tiempo de Desarrollo si ya sabemos que aspx es el mas lento pero lo de rapides de ruby es exagerada, su ORM se queda muy abajo en comparativas de rendimiento y calidad contra el de DJANGO ¡
    Instalar 14GB de estupido IDE o IDES con 1000 funcionalidades utiles segun ellos (ejem Jetbrains) de las cuales no entendemos ni la decima parte no le veo la gracia con ides como vim es suficiente, el sistema de plantillas de Aspx es una burla comparado al de Django, lo de ruby peor encima engorroso, Ademas si no te gustan las plantillas de Django las cambias por otras y listo. Por ultimo Aguante el Django ADMIN 🙂

    1. Leonardo Velazquez

      14 GB ? por diossssssssssssssssssssss, pues en que piensas desarrollar, c++, C#, VB, F#, asp net (webforms, mvc, core), xamarin para movil ios y android, emulador, herramientas de administracion sql server ? y un largo etc, jajaja.

      ahh y ademas no es el unico ide, si quieres puedes usar MonoDevelop.. o uno de pago como Rider de la empresa JetBrains y es excelente

      y comparas ASPX, eso ya ni se usa desde hace ya mucho tiempo se utilza MVC y ahora existe NET Core

  20. Si a usted le quedo grande poner a correr algo tan sencillo como un proyecto en Django o califica un lenguaje por su IDE, quizás la programación no es tu fuerte, porque no intenta con una carrera administrativa o psicóloga o algo así…

    1. Para pocos proyectos uso IDE, algunos es mejor usarlo que no usarlo, como por ejemplo un proyecto de .Net o de ObjetiveC. En el artículo hablo de primera toma de contacto y con los años mi opinión sigue siendo la misma. Python es un gran lenguaje que uso mucho para scripts de mantenimiento de servidor, pero para web está más corto por el alto costo de mantenimiento.

      Si aprendiste Python+Django como primer lenguaje o llevas años con ello, probablemente tu perspectiva sea diferente, pero si haces una primera toma de contacto, te ahogas. He hecho proyectos en Django pero creo que su coste de mantenimiento a nivel de sistema (que no desarrollo) es de los más altos de los lenguajes con los que trabajo. De hecho conozco casos de empresas especializadas en Django que solo hacen proyectos de este entorno y a veces me contactan (el cliente) para arreglar la implantación porque no está bien hecha.

      En conclusión, como framework, es la caña, de lo mejor que puedes programar, cómodo, rápido y sencillo. Lo complicado es el lenguaje si vienes de lenguajes matemáticos como java, php, c#, etc. que aprenderlo cuesta más y lo más complejo es hacer una implementación en servidor. Ojo que hablo desde la comparación con otros entornos.

      Te animo a que pruebes cualquier otro entorno, y dejando a un lado las virtudes de django a nivel de programación, pongas en una balanza programación+sistema, entonces django ya no es tan maravilloso.

  21. Totalmente de acuerdo en que Django no vale para windows, y la verdad no voy a poner linux ahora a mi ordena viejuno… cuando lo sustituya pues entonces si.

    Ruby y rails lo puedes usar perfectamente en windows, quizas no sea lo mejor pero sirve. Yo para programar basicamente uso sublimetext pero ahora, sin ir mas lejos, Rubymine y tan contento. ni siquiera tengo que poner eso de rails s…

    yo al no ser programador profeisonal, si no amateur de esos que se aburre y quiere aprnder algo en sus raots libres, ruby y rails me va de maravilla… para el trabajo, ingeniero de minas, si tengo que usar algo pues python pq es lo que usa arcgys y ya…

    rails, lo unico, que dicen que no escala… pero bueno… a mi eso a dia de hoy como que me da igual XD

  22. Buenas a todos.
    Creo que el articulo fue escrito en el 2013, ya ha pasado mucho tiempo ahora existen herramientas que ayudan en el entorno desarrollo.

    El problema que tuviste en django fue la instalación, no he usado mono, pero llevo desarrollando 7 años en Rails y no me arrepiento yo uso sublime y hoy vscode como dicen por ahi si eres amateur te iras siempre por el lenguaje mas bonito, pero ruby encima de bonito ya es mas rapido en ejecución que python.

    Rails si escala, todo viene de los problemas que tuvo Twitter en su plataforma, por ahi en el 2007 2008, por esos años las versiones estable eran la 1.2 y la 2.0 de rails aun era un bebe Rails para esos años he ahi el problema que tuvo twitter, hoy la version estable es la 5.1.4 muy maduro y robusto y escalable ni digamos, muchos se quejan de la «magia» de rails que no sabes que pasa atras, y yo creo que el problema viene de lo flojo que son algunos programadores por que el codigo fuente de rails esta en github y uno puede leer el codigo y enterrarse de todo es mas hoy ya se puede personalizar todo los scaffolds generación de controladores y modelos. Se pueden desactivar cosas, si instalas una gema pero no te gusta algunas cosas de ella, vas a su repositorio le haces un fork y modificas la gema a tu gusto, el detalle que para eso debes tener un nivel intermedio y conocer el core de rails.

    Django por su parte siempre estuve enamorado de el, por que existen un par de cosas que no tiene rails, el sistema de modelos me encanta por que lo vas creando en un solo archivo en cambio en rails son las migraciones pueden llegar a ser varios archivos dependiendo del proyecto.

    Uso Ruby y Python a menudo para realizar scripts de mantenimiento en servidores en linux, como realizar backups, monitor de eventos o sistema de alertas, ayuda bastante por que hacerlo en bash no es lo mio 😀

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio