Stack or not Stack? that is the question. Una comparativa breve sobre las tecnologías de desarrollo de aplicaciones web.
De seguro si estas entrando en este basto Mundo IT te habrás encontrando con un montón de términos y abreviaturas inentendibles de programas, tecnologías hasta puestos de trabajo (qué diablos es y hace un “Chief Chatter Full Spicy Web Devops Expert”???).
Ya te decidiste por el camino del desarrollo web y entonces empiezan a aparecer estos términos Frontend – Backend – Full Stack… por suerte una rápida búsqueda en Google nos clarifica que:
Frontend: es la parte de la aplicación web con la que el usuario interactúa, “el lado del cliente”. Un desarrollador frontend es el encargado de llevar a la práctica el diseño de un sitio web para que el usuario final pueda usarlo, utilizando diferentes lenguajes de programación y tecnologías.
Backend: es la parte que se conecta con la base de datos, otros servicios y el servidor que utiliza la aplicación web para realizar sus acciones, por eso decimos que el backend corre del “lado del servidor” y no es directamente accesible por los usuarios, además contiene la lógica de la aplicación.
Full Stack: obviamente una aplicación web esta compuesta por el Frontend y el Backend que trabajan juntos para el objetivo de la aplicación. Existen desarrolladores especializados en una u otra de estas partes, ya que requiere de saber programar en una cantidad importante de lenguajes y tecnologías. Existen unos pocos que pueden desarrollar ambas partes utilizando algún Stack, los desarrolladores Full Stack.
Pero qué es un Stack?
Una tech stack, pila de tecnologías en español, es un conjunto de lenguajes de programación, herramientas, componentes y tecnologías que trabajan juntos para producir una aplicación que satisface las necesidades de los usuarios y las empresas. Una pila de tecnologías asegura un procedimiento de desarrollo integrado e ininterrumpido, agregando un equilibrio perfecto y flexibilidad a cualquier proyecto. El término Stack en el desarrollo web surgió durante el inicio del Stack LAMP, que fue el primer paquete Full Stack de desarrollo de código abierto que comprende las capacidades de GNU/Linux OS, MySQL DB, PHP y Apache Web Server. Dentro del ecosistema de las aplicaciones web desarrolladas utilizando JavaScript, una aplicación en particular constará de una combinación de tecnologías, el Stack. Las pilas MEAN, MERN y MEVN (otra vez estas abreviaturas inentendibles!!!) se encuentran entre las pilas de tecnología más populares que los desarrolladores utilizan para crear sitios web y aplicaciones móviles. Pero, ¿cuáles son las principales diferencias entre estas pilas? Y, ¿los desarrolladores prefieren una sobre otra?
MEAN, MERN y MEVN son pilas de tecnología que ayudan a los desarrolladores a crear aplicaciones web y móviles. Los tres incluyen MongoDB, Express.js (de ahí que cada uno comience con “ME”) y NodeJS. La principal diferencia entre las pilas se puede encontrar en la tercera letra de cada sigla. MEAN es una pila de JavaScript que se basa en el uso del framework Angular para el desarrollo frontend, mientras que la pila MERN se basa en React y su ecosistema. Finalmente, MEVN se basa en Vue.js y su ecosistema.
- JavaScript: es un lenguaje de programación (scripting) que se usa tanto en el lado del cliente como en el lado del servidor que permite hacer que las páginas web sean interactivas.
- MongoDB: una base de datos “NoSQL” que se utiliza para almacenar los datos como documentos JSON (Notación de objetos de JavaScript) para una aplicación de backend de JavaScript. Su perfecta compatibilidad con otras partes de la pila basadas en JS garantiza una gran velocidad y rendimiento. MongoDB no tiene esquema, lo que lo hace muy flexible y está construido sobre una arquitectura de escalamiento horizontal que le permite manejar big data.
- Express JS: es un framework backend ligero para entregar contenido en la web. Es un conjunto de herramientas que administran el flujo de trabajo entre el lado del cliente y el modelo de datos, asegurando la transferencia de datos. Express se utiliza para crear API , administrar solicitudes HTTP y representar el enrutamiento básico. Si tu aplicación de backend necesita enviar información a través de Internet, Express proporciona herramientas para lograrlo.
- Angular / React / Vue.js: son frameworks de JavaScript para desarrollar el frontend de la aplicación de forma dinamica.
- NodeJS: un “entorno de ejecución” de JavaScript que se utiliza para ejecutar JavaScript fuera de un navegador, como en un servidor backend en la nube. Es rápido, liviano, extremadamente eficiente y adecuado para crear aplicaciones con uso intensivo de datos y en tiempo real, por lo que no es de extrañar que encabece la lista de los marcos más preferidos .
Una gran similitud entre MERN, MEVN y MEAN es que todos están compuestos por tecnologías de código abierto open source. También ofrecen protección contra ataques de Cross-Site Scripting (XSS), soporte activo y documentación útil, y componentes de interfaz de usuario para crear partes reutilizables de una aplicación web.
¿cuál es la diferencia entre Angular, React y Vue?
Angular es un framework para desarrollar UI interfaz de usuario dirigido por el equipo de Angular en Google. Está basado en TypeScript de forma predeterminada y se utiliza para el desarrollo web, web móvil, móvil nativo y escritorio nativo. Angular es popular en el mundo empresarial y a menudo lo utilizan organizaciones tradicionales, como hospitales y bancos. Su principal característica distintiva es la capacidad de interactuar con la aplicación web sin recargar la página, lo que reduce el ancho de banda del sitio y mejora el rendimiento. Angular es un framework más rígido en el sentido de que no es tan personalizable como React o Vue.
React es un framework frontend para la creación de aplicaciones web que se ejecutarán dentro del navegador. Originalmente fue diseñado por Facebook para poder soportar a muchos millones de usuarios. React es el más popular entre las múltiples consultoras de desarrollo de software, freelance y startups. React tiene una curva de aprendizaje más fácil, garantiza un mejor rendimiento debido a su implementación de DOM virtual y proporciona una mayor flexibilidad en el uso de herramientas. Es altamente personalizable y realmente bueno para escalar para una gran cantidad de usuarios, lo que facilita que los equipos tengan confianza en el crecimiento futuro.
Vue.js es un framework de JavaScript fácil de aprender, creado por Evan You, y es mantenido por él y por el resto de los miembros activos del equipo central. Es conocido por su accesibilidad, versatilidad, documentación de calidad y velocidad. Vue se lanzó en 2014. Es bastante autosuficiente, ya que tiene muchas bibliotecas propias.
Hay una gran demanda de desarrolladores Full Stack debido a los numerosos beneficios que ofrece este perfil: el código funciona en múltiples tecnologías y facilita la implementación de recursos de UX/UI. De este modo, los desarrolladores pueden resolver problemas técnicos en varias corrientes de desarrollo de software. Las empresas están en búsqueda de estos perfiles que puedan desarrollar la web o la app completa desde cero, sin interrupciones durante el proceso.
Sea cual sea el stack al cual te vayas a especializar ademas tendrás como Full Stack Dev saber:
- HTML5
- CSS3
- JavaScript
- JS Dom y Bom
- Sintaxis de ES6
- SASS (opcional pero preferido)
- Frameworks CSS (Bootstrap, Tailwind CSS, etc …)
- Muuuucho mas…
Normalmente, el desarrollador web Full Stack es responsable de administrar la estructura de diseño del proyecto. Según los requisitos del proyecto, el desarrollador puede cambiar los roles de desarrollo. Además, dado que los desarrolladores tienen conocimientos técnicos, pueden identificar rápidamente errores y ofrecer soluciones en diferentes flujos de la arquitectura web.