Entre Laravel y Django, ¿cuál es mejor, en general, para el desarrollo web profesional en 2017?

Esta pregunta es casi imposible de responder debido al hecho de que Laravel y Django están, en un alto nivel, creados para hacer exactamente lo mismo. Cualquier respuesta a esta pregunta que elija cualquiera de estos proyectos como “mejor, en general” dependerá en gran medida de la opinión del escritor. Entonces, en cambio, me haría estas preguntas:

  1. ¿Me gusta más programar en Python o PHP?
  2. ¿Me gusta más hablar con las comunidades Django o Laravel?
  3. (Si aprender esta tecnología tiene el propósito de encontrar un trabajo fácilmente) ¿Tengo más interés en las compañías que usan Django o Laravel para sus aplicaciones?
  4. ¿Tengo más interés en proyectos de código abierto que utilizan Django o Laravel para sus aplicaciones?

Estas son las razones por las que hago estas preguntas:

  1. Disfrutar de la programación es muy importante . Si no disfruta de la programación, no sobresaldrá en ella. A veces, la programación apesta. Para realmente tener éxito en esta industria, habrá largas noches, fines de semana y semanas en las que se verá atrapado en un problema grave y si no tiene pasión en su corazón por lo que hace, se dará por vencido. Para ayudar con esto, trato de hacer que mi experiencia sea lo más agradable posible. Una faceta de eso es elegir un lenguaje de programación que se adapte bien a mi tarea, y disfruto trabajar en él. Por supuesto, disfruto trabajar en la mayoría de los lenguajes de programación.
  2. La fuerza y ​​la interacción de la comunidad son mucho más importantes de lo que uno pensaría. Por ejemplo, recientemente me he sumergido profundamente en el desarrollo de Android y lo disfruto completamente. Sin embargo, un gran dolor para mí es la debilidad de su comunidad de desarrollo. Me resulta increíblemente difícil encontrar recursos y personas con quienes hablar sobre el desarrollo de Android. Afortunadamente para ti, las comunidades PHP y Python son masivas y activas. Mire algunas preguntas sobre Stack Overflow y vea cuáles son más útiles / amigables para usted.
  3. Como desarrollador experimentado, es más fácil encontrar un trabajo basado en características profesionales independientes del lenguaje (arquitectura de aplicaciones, amplia experiencia en programación, habilidades para resolver problemas). Sin embargo, sinceramente, el gerente / CTO / profesional de recursos humanos que debe navegar para ingresar a una empresa de productos, preferirá contratar a alguien que ya sea un experto en su elección particular de herramientas. Por el contrario, si está comenzando su propia empresa, consultando o de otra manera no está buscando trabajo, me pregunto cuál de estos marcos tiene más sentido para su proyecto específico. No todas las aplicaciones web son iguales.
  4. Encuentre excelentes proyectos de código abierto escritos en ese idioma y mire el código. ¿Te habla a ti? ¿Tiene sentido la aplicación? ¿Quieres contribuir a ello? Debieras.

Es imposible responder preguntas como esta. No hay explicaciones sobre qué herramienta es mejor en la programación. Simplemente, qué herramienta es mejor para mí, para este problema en particular, en este momento en particular. El trabajo de un verdadero programador es elegir esa herramienta de manera efectiva.

Haz lo que se siente bien . Hay una música para codificar, si escuchas con suficiente atención. Elija herramientas que le suenen bien.

He trabajado con Django y Laravel en el pasado y es extremadamente difícil evitar ser parcial en una elección aquí.

Django es el marco de referencia si quieres:

  1. Velocidad de desarrollo
  2. Una comunidad bulliciosa
  3. Acceso a varios paquetes populares.

Velocidad de desarrollo

Con Django, obtienes acceso a varias herramientas de productividad. ¿Necesita iniciar una aplicación CRUD? Podría generar migraciones para usted y luego podría tener un generador par en su información de migración y devolver un formulario HTML listo para usar. ¿Cómo puede superar eso?

Comunidad bulliciosa

Tienes acceso a documentación, foros, tutoriales para principiantes. Solo echa un vistazo a Djangobook

Ecosistema del paquete

Varios paquetes están disponibles. ¿Quieres trabajar con sistemas de información geográfica? Un viaje a GeoDjango podría ser en otro.

Sin embargo, Laravel no se queda atrás. Es ideal para desarrolladores que desean:

  1. Un marco PHP que fomenta pero no necesariamente aplica las mejores prácticas en el desarrollo de software. Lo alienta a pensar de manera granular: sin embargo, la arquitectura de bus de comando es un tema frecuente.
  2. Procesos de implementación más rápidos y sin complicaciones: puede implementar aplicaciones listas para producción con FTP, SSH o cualquier medio que prefiera.

Personalmente, elijo Django cuando tengo poco tiempo y Laravel cuando me preocupa la arquitectura escalable. Los marcos son solo eso: herramientas para llevar a cabo sus ofertas.

Dóblalos a tu voluntad y no pierdas el tiempo debatiendo preferencias.

Hace unos años, estaba buscando un marco y elegí Laravel, recién salía de V3 y entraba en V4. Me encantó. La simplicidad, la elocuencia y el enfoque que viene con baterías realmente resonaron en mí (todavía no entiendo por qué Rails no viene con la administración de cuentas incorporada … al menos lo revisé). PHP puede ser un poco desordenado, pero es fácil y Laracasts de Jeff Way es un recurso de aprendizaje incomparable, con la comunidad de apoyo y activo.

Pero a menudo me encontré con una conversación subyacente sobre muchas situaciones, y fue algo así como ‘bueno que debería implementarse como un servicio’ o ‘que debería implementarse como una interfaz’, o ‘realmente debería compilar sus activos usando … ‘o alguna otra cosa. Para mí, esto creó una capa de complejidad entre mí y mi comprensión del código. Probablemente sea mi culpa, pero lo mejor que puedo decir de los propios comentarios de Jeff Way es que no estoy solo en eso.

Miré a Rails pero Ruby nunca me ha resonado … y lo he intentado un par de veces times Todo el asunto de TIMTOWTDI … acortamientos … idiosincrasias … Nunca lo entendí.

Python es casi el polo opuesto de Ruby: por lo general, hay una mejor manera de hacer algo y esa forma generalmente funcionó para mí. Realmente me gustó la forma en que el espacio en blanco importa con Python y la forma en que limpió mi código. Esto me llevó por el camino a Django.

Django no tiene todas las funciones como lo es hoy Laravel y el ecosistema no es tan amplio. Por ejemplo, Laravel’s Spark es solo un as y desearía que hubiera un equivalente para Django. Pero también me preocupó un poco que ese ecosistema me estuviera bloqueando. No me malinterpreten, el sistema de implementación y suministro de Laravel Forge es excelente y es un alojamiento económico y rápido, pero mi preferencia es usar la plataforma como un servicio (PaaS), como Heroku, en lugar de la infraestructura como servicio (como el excelente océano digital). Por cierto, puedes usar Laravel con Heroku, o un PaaS específico de PHP como Fortrabbit, es solo que la comunidad y el equipo de desarrollo no parecen alentarlo.

La administración de usuarios de Django puede ser un poco idiosincrásica, pero existe django-allauth si realmente desea solucionarlo. No lo usé en mis primeras aplicaciones, pero no construiré otra aplicación sin ella ahora que sé lo bueno que es.

Dicho todo esto, Django tiene todas las funciones. No hay mucho que no haga fuera de la caja y lo hace bien y de manera segura. Encuentro la configuración un poco complicada, creo que esto tiene algo que ver con el mantra de Python de ser explícito … impide cierta magia de codificación que hace que ciertas cosas en Rails y Laravel sean un poco más fáciles en algunas áreas, pero es un pequeño precio a pagar . No me gustan las vistas basadas en clases (no estoy solo en eso) pero no las has usado. La documentación de Django es excelente, aunque no la encuentro tan accesible para el novato como la documentación de Laravel (aunque la documentación de Django es mucho más completa).

Puede * implementar * servicios, interfaces y casi cualquier patrón en Django y Python. Y puede compilar sus activos con la herramienta X o Y. Pero esa conversación no avanza tan agresivamente en la comunidad de Django. Y más bien me gusta eso.

Espero no ofender a nadie, pero la comunidad de Laravel me pareció un poco más atractiva y complaciente que la comunidad de Django. La mayor parte de esto proviene de mi experiencia con Laravel en el sitio de Laracasts y la comunidad en el mismo, fue una experiencia muy positiva. Eso fue hace un tiempo … tal vez las cosas han cambiado … espero que no hayan cambiado. Sin embargo, la comunidad de Django está mejorando, y espero que continúe haciéndolo.

Por último … puede depender de su definición de “profesional”. Veo más trabajos de Laravel en Australia, así que quizás eso hace que Laravel sea más profesional. Algunos desprecian el lenguaje PHP, no soy uno de ellos, y te dirían que PHP nunca podría ser profesional. Ambos facilitarán la construcción de sitios a escala, aunque diría que los ejemplos de la vida real son más fáciles de citar para Django.

Ambos marcos son excelentes. Encuentre uno que se ajuste a su forma de pensar y trabajar: la profesionalidad será un producto conveniente de cualquier marco.

Non es mejor o ambos son mejores, bueno, depende de su elección. La idea es que no tienes que elegir entre los dos, solo elige el que prefieras, con el que te sientas cómodo. Una cosa más, no intentes buscar las desventajas de uno sobre el otro, porque definitivamente obtendrás una opinión sesgada.
Si realmente desea convertirse en un desarrollador web profesional, debe olvidarse de php y python por ahora y comenzar a aprender ingeniería de software, diseño y, lo más importante, seguridad

Si ya conoce PHP, entonces Laravel sería una muy buena opción.

Si quieres probar Python, entonces recomendaría web2py en lugar de Django. Sé que Django es popular, pero web2py es mucho más fácil de usar. Web2py proporciona todo lo que necesita de inmediato para escribir una aplicación web sofisticada. Las pilas están incluidas.

Es mi marco “ir a” cada vez que necesito crear rápida y fácilmente una aplicación web.

¿Conoces la programación también? ¿O simplemente conoces un par de lenguajes de programación?

Si solo conoces idiomas, no importa, porque no vas a hacer ningún desarrollo web profesional. Los desarrolladores profesionales han pasado los años necesarios para aprender a programar. Obtener dinero para hacer algo que realmente no entiendes no es ser un profesional.

Mi elección personal de marcos es “no los use”: escriba su código usted mismo. Si alguna vez tiene que depurar en el marco, está perdido y el sitio nunca funcionará, tendrá que comenzar a desarrollarlo nuevamente.

He estado trabajando con el marco de Laravel durante muchos meses en mi posición profesional actual.

La curva de aprendizaje es bastante empinada, pero es fenomenal.

Si bien no tengo experiencia con Django, recomendaría sinceramente a Laravel.

More Interesting

¿Cuál es su opinión sobre el uso de Disqus (comentarios) en un sitio web de redes sociales como Jumzler.com? ¿Te gustaría o no?

¿Cómo debo aprender sobre el desarrollo web usando ASP.Net?

En la mayoría de las declaraciones de doctype de los sitios, puedo ver que se está utilizando 'HTML 4.01 Transitional'. ¿Es necesario hoy en día o simplemente do?

¿Por qué el software de Amadeus tiene una gran demanda entre las agencias de Arabia Saudita, Dubai y otros países del Medio Oriente?

¿Puede tener un sitio web asp.net en múltiples dominios (en IIS) pero diferentes páginas dinámicas (basadas en bases de datos) en cada sitio (específico de la región)?

¿Cuáles son algunas fuentes excelentes en línea (cursos en línea, libros, etc.) para aprender HTML y CSS?

¿Cómo es el mercado para un desarrollador web junior en EAU que puede trabajar principalmente con React.js y Node.js?

¿Cómo se crean los propietarios de recursos en una aplicación OAuth 2.0?

¿Cuál es el costo de desarrollar un portal web?

¿Cómo se mantienen los programadores al tanto de los últimos lenguajes y marcos? ¿Cómo te mantienes al día con todo?

¿Qué trucos que pocas personas conocen me hacen un desarrollador elegante de Node.js?

¿Cuáles son las mejores bases de datos de gráficos para el framework Django?

¿Cómo escribir CSS de manera que sea fácil hacer que una página responda? Como establecer altura, ancho, posición y tal

¿Qué es WordPress y puedes usar WordPress en cualquier dominio?

¿Puede una persona de 60 años aprender HTML?