¿Cuál es la futura pila de desarrollo web?

Un desarrollo relativamente reciente es el advenimiento de Polymer.js (lanzado por Google hace aproximadamente un año, pero justo ahora comienza a ganar algo de tracción).

Polymer representa un cambio fundamental en el paradigma del desarrollo web; un cambio del desarrollo web centrado en JavaScript “de nuevo” al desarrollo web centrado en elementos HTML. La noción básica es que, en lugar de depender de una colección cada vez más compleja de bibliotecas JS, deberíamos aprovechar las capacidades nativas del navegador al manipular el DOM a través de elementos personalizados. En la visión del mundo de Polymer, básicamente todo lo que manipulas, de hecho toda tu aplicación web, debería ser un elemento personalizado.

El concepto ciertamente tiene mérito. Sin embargo, a corto plazo, no está claro que Polymer sea lo suficientemente maduro como para garantizar una migración total a su base. Todavía tiene una serie de bordes ásperos y, al menos por ahora, se basa en su propio código JavaScript para servir como marcador de posición para las capacidades nativas del navegador que pronto estarán disponibles pero que aún no están disponibles.

Aquí hay un par de buenos artículos sobre la tecnología:
– Polymer.js: ¿El futuro del desarrollo de aplicaciones web?
– El polímero de Google y el futuro de los marcos de interfaz de usuario web

El desarrollo de software y su aplicación ahora tocan muchas facetas de la vida humana. A pesar del notable éxito de la tecnología, siempre existe la necesidad de una mejora constante para permitir una aplicación más amplia y mejor, razón por la cual también existe una especialización en la prestación efectiva de servicios.

En los primeros días de los años 90, ser desarrollador era más simple. Front-end y Back-end. Explicar el desarrollo de software a las personas también fue simple:

Un desarrollador front-end es responsable del diseño interior de la casa construida por un desarrollador back-end.

La popularidad y la proliferación de dispositivos móviles de mano coincidieron con la creciente popularidad de los frameworks de JavaScript que se ocupan únicamente de la presentación front-end. Estos marcos ayudaron a crear sitios web más rápidos y esencialmente crearon un nuevo enfoque para el desarrollo web: ¡se introdujo una nueva pila!

Pero antes de los dispositivos móviles, los sitios web solo se veían en las PC y los diferentes tamaños de pantalla no eran una preocupación importante en el desarrollo web. Pero con el acceso móvil a la red en crecimiento, era hora de repensar cómo se presentaba y consumía la información en Internet. Este fue un nuevo desafío para los desarrolladores front-end.

Ahora, el desarrollo de software es un mundo complejo de tecnologías interconectadas. Se está volviendo difícil ver el frente y el back-end como entidades separadas. Pero (siempre un pero), es deseable que un desarrollador logre un estado de “Apilamiento completo” (es decir, de todos los oficios), que sea hábil tanto en el trabajo de front-end como en el back-end para mejorar la competitividad y relevancia en el mercado.

¿Quién es un desarrollador full stack?

La definición es muy subjetiva. En términos generales, un desarrollador de pila completa es alguien que trabaja tanto en el front-end (presentación) como en el back-end (computacional) del desarrollo de software, ya sea para la web o las aplicaciones.

En los primeros días del desarrollo de pila completa, si codificaba regularmente PHP o Python, jQuery, HTML, CSS, luego transfería algunos archivos a través de FTP a su cuenta de alojamiento compartido o servidor dedicado, entonces era desarrollador de pila completa.

En comparación con la web anterior a AJAX, ahora hay una variedad de preocupaciones que uno debe dominar. Full-stack ahora puede incluir:

Interfaz

· Implementación web receptiva

· JavaScript

· Integración API

· Implementación del marco

· Optimización del rendimiento

· Accesibilidad

· Diferentes conocimientos del marco CSS / JS

· Prueba de comportamiento

Back-end

· Implementación general del modelo de fondo

· Autorización de autenticación

· Diseño de API

· Diseño de bases de datos

· Optimización de consultas

· Indización de datos

· Análisis de datos

DevOps

· Integración continua

· Almacenamiento en caché

· Virtualización

· Seguridad del servidor …

… además de muchos otros requisitos específicos del negocio. Estos son algunos de los desafíos que debe enfrentar un desarrollador de pila completa en 2016. No digo que tenga que saber todo lo anterior, pero es probable que un buen desarrollador de pila completa domine combinaciones de varios pilas tecnológicas en la parte delantera y trasera.

Un desarrollador especializado en front-end o back-end podrá dominar completamente su oficio, pero es casi imposible encontrar un desarrollador de pila completa que sea capaz de dominar ambos. No estoy sugiriendo que un desarrollador sea incapaz de conocer y comprender las preocupaciones de las disciplinas tanto front-end como back-end, pero es muy raro encontrar a alguien con un dominio realmente profundo en ambos conjuntos de habilidades.

Los beneficios y costos de ser un desarrollador full-stack

Los desarrolladores de pila completa se emplean principalmente para trabajar en equipos pequeños y generalmente en empresas de nueva creación o pequeñas y medianas empresas. Por lo tanto, un desarrollador familiarizado con una pila tecnológica rara vez tendría el mismo nivel de conocimiento en una variedad de pilas. Por otro lado, un desarrollador de back-end normalmente tendría el mismo nivel de dominio en dos o más idiomas de servidor.

Los desarrolladores con la capacidad de sumergirse tanto en el front-end como en el back-end han tenido una gran demanda en lo que respecta al desarrollo web durante al menos los últimos seis años.

Los desarrolladores con la capacidad de sumergirse tanto en el front-end como en el back-end han tenido una gran demanda

Si aspira a ser un desarrollador de pila completa, entonces es mucho más sensato apuntar a ser un desarrollador completo, ya sea en primer o segundo plano. Con el tiempo y, por extensión, la experiencia, terminará adquiriendo conocimiento de cómo funciona el otro lado.

Ventajas del enfoque de pila completa

· Oportunidades : muchas más oportunidades de empleo en comparación con un desarrollador especializado en una pila. La mayoría de las compañías preferirían que alguien se sienta tan cómodo tratando con casos extremos de CSS como con consultas extrañas de bases de datos.

· Desarrollo profesional : el software tiende a ser cada vez más desafiante e igualmente gratificante cuando se trata con ambos extremos. Es mucho más difícil aburrirse cuando tiene el doble de funciones y errores para trabajar.

· Crecimiento profesional : dado que la mayoría de los desarrolladores full-stack trabajan en equipos pequeños; La propiedad del producto parece ser casi natural.

· Currículums múltiples : un beneficio para algunos y no para otros, algunos desarrolladores de pila completa mantienen dos currículums, uno para cada pila, cuando buscan trabajo. Esto ayuda a aumentar las posibilidades de conseguir un trabajo. Esto puede ser complicado para algunos, ya que la mayoría de los desarrolladores de pila completa tienen una pila preferida.

Costos

· Pilas de mo, problemas de mo : tendrás que lidiar con el cambio de contexto de forma regular, si no a diario. La mente del desarrollo front-end no es la misma que la de un back-end. Esto a menudo conduce a la introducción de errores. Considérelo inevitable cuando el trabajo implica trabajar con tecnologías con prioridades diferentes.

· Lecturas adicionales (x2) : el desarrollo de software implica mantenerse actualizado con los últimos marcos y técnicas. Para un desarrollador de pila completa, esto significa duplicar la cantidad de trabajo para su pila inmediata.

· Grandes empresas : algunas grandes empresas tecnológicas no contratarán por completo a un desarrollador completo. Requieren conocimiento de dominio específico y preferirían a alguien con suficiente experiencia para tratar casos extremos.

Reaccionar sin duda va a ser una gran parte del panorama (ya lo es) y a medida que el mundo que nos rodea se conecte más a la web: televisores “inteligentes”, productos IoT, relojes conectados, automóviles, etc., predigo que el desarrollo web tomará un giro hacia la interfaz con el mundo exterior más allá del cliente-servidor. Por ejemplo, un marco puede incluir un kit de conectividad de dispositivo que puede controlar su TV o termostato desde una GUI web.

¡Ojalá pudiéramos hablar sobre “la” pila [única y estándar] de desarrollo web! Ahora hay una panoplia de ellos, y a menos que trabajes en algunos aspectos muy estrechos de ellos durante mucho tiempo, la programación puede ser como buscar un error tipográfico específico en una Enciclopedia.

Permítanme comenzar de nuevo … La web se basa en estándares. Las encarnaciones actuales de HTML, CSS y JavaScript son bastante decentes [en comparación con hace una década], pero dado que la programación se trata de construir abstracciones prácticas, es difícil lograr que las personas acuerden qué capa de abstracción usar. Como es el caso con el lenguaje natural, es más probable que las personas se apeguen a lo que están acostumbradas, luchen por él y pidan prestado a su vecino en lugar de adaptar una lengua común; No puedo prever el día en que dejemos el inglés para Ido. Es una forma muy creativa de hacer las cosas, pero no resuelve el problema de la estandarización. Por el contrario, se asegura de que siempre haya algo nuevo que arreglar.

Entonces, ¿cuál es el futuro stack? Personalmente cuento con un contramovimiento llamado NoStack, que creará su propio desorden en entornos de programación no estándar. Lo acabo de inventar, pero tal vez puedas encontrar más al respecto si lo buscas en Google.