Laravel, CodeIgniter, Django, Flask, FastAPI... Son lo mismo....
Índice de contenido
¡Hola! En este post quiero abordar una pregunta común en el desarrollo web: ¿Vale la pena o es necesario aprender a desarrollar en varias tecnologías? Aunque nos enfocaremos en backend web, esta reflexión se aplica a cualquier área del desarrollo de software.
La pregunta específica es: ¿Se justifica aprender frameworks como Flask, FastAPI, Django, CodeIgniter, Laravel, Symfony, u otros similares?
1. El Valor de la Diversidad Tecnológica
Inicialmente, la respuesta es un rotundo SÍ. Aprender múltiples tecnologías te nutre enormemente como desarrollador.
A. Mitigar el Riesgo de Obsolescencia
Es bastante arriesgado enfocarse en una sola tecnología. Si esta desaparece o pierde relevancia (como ha pasado con el boom de jQuery en ciertos nichos), te quedas con pocas opciones laborales.
Recomendación General: En términos generales, sí te recomiendo desarrollar en múltiples tecnologías, especialmente si te enfocas en el desarrollo web del lado del servidor.
B. Selección del Mejor Framework por Proyecto
Conocer varias tecnologías te da un mejor abanico de opciones. Una vez que dominas varias de ellas (como yo lo hago con CodeIgniter, Laravel, Flask, FastAPI, y Django), puedes seleccionar el framework más adecuado según los requisitos específicos del proyecto:
- Requisito del Proyecto Opción Recomendada Razón
- Aplicación Sencilla (Blog) CodeIgniter, Flask, Laravel Django podría ser demasiado grande, y FastAPI se enfoca en APIs.
- CodeIgniter es ligero y rápido para un PHP simple.
- Creación de APIs REST FastAPI Está enfocado y optimizado para este propósito.
- Aplicación de Chat (Comunicación Full Duplex)
Si solo dominas una tecnología, te verás forzado a desarrollar todos los proyectos en esa única herramienta, aunque no sea la más eficiente.
2. El Enfoque y el Punto en Común (MVC)
Aunque vale la pena conocer varias tecnologías, también dije que "posiblemente no" valga la pena si no es tu enfoque principal.
A. Prioriza un Nicho
Hay muchísimas tecnologías naciendo a diario, y es imposible seguirlas todas. Debes centrarte en un nicho. Mi nicho fundamental es el backend; por eso me extiendo en esos frameworks. Para el frontend (el lado del cliente), solo desarrollo en Vue, por ejemplo, porque Angular o React no son mi enfoque principal.
B. El Concepto es lo Importante: El MVC
Aquí viene el punto más importante para justificar el aprendizaje de múltiples frameworks:
- CodeIgniter, Laravel, Django, Flask, etc., aunque sean lenguajes distintos (PHP, Python), todos buscan un mismo objetivo: crear aplicaciones web.
- Todos emplean (o variantes de) el Modelo-Vista-Controlador (MVC). Django usa el MTV (Modelo-Plantilla-Vista), y Laravel lo extiende con sus propios componentes (Livewire).
- Si conoces una de estas tecnologías, ya tienes una base conceptual sólida para aprender el resto, ya que verás más similitudes que diferencias.
- Sintaxis vs. Concepto: El verdadero desafío es la sintaxis (pasar de PHP a Python). Pero como desarrollador, debes enfocarte en aprender los conceptos (cómo trabajar con primitivas, arrays, peticiones, requests, y bases de datos).
Conclusión
El procedimiento y el esquema para implementar una aplicación web (Control, Modelo, conexión a la base de datos) son virtualmente idénticos. Por lo tanto, dominar uno te facilitará enormemente dominar el siguiente.
Por esta razón, te recomiendo enormemente que si quieres desarrollar o aprender desarrollo web, trabajes con al menos algunas de ellas, y que sean de distintos lenguajes de programación. Recuerda que cuento con varios recursos (cursos en Udemy, libros en mi Academia) que te pueden facilitar este camino.
Acepto recibir anuncios de interes sobre este Blog.
OPINIÓN - Hablaré sobre el porqué considero que todos los frameworks web son lo mismo, sus bases son lo mismo y conocer aspectos de los mismos nos permiten aprender buenas prácticas y ser mejores desarroladores.