La respuesta a esta pregunta se puede tomar de muchas maneras diferentes dependiendo de la experiencia y las opiniones del encuestado, y realmente tengo curiosidad por escuchar otros puntos de vista, pero intentaré darte los míos.
TL; DR, el desarrollo web solía ser sobre nuevas formas de representar texto en una pantalla. Ahora se trata de crear aplicaciones y experiencias.
En los primeros días del desarrollo web, los navegadores web solo eran buenos para hacer cosas como mostrar texto e imágenes, y proporcionar un sistema de enlaces a otros sitios web donde se podía leer texto adicional y ver más imágenes. Con bastante rapidez, las compañías digitales descubrieron formas de usar la web para ganar dinero. Las empresas de comercio electrónico, las agencias de publicidad y los medios de comunicación tenían modelos de negocios basados en mostrar imágenes y texto y hacer que hagas clic en suficientes enlaces que se convirtieron en ingresos. Los bloggers vieron lo fácil que fue y decidieron escribir las cosas, colocar algunas imágenes y enlaces alrededor de sus palabras, y exponerse para ver si podían construir un negocio haciendo lo mismo.
- ¿Cuáles son las mejores tiendas de desarrollo en Austin, TX?
- ¿Cómo se crean los propietarios de recursos en una aplicación OAuth 2.0?
- ¿Qué significa el formato de este selector CSS?
- ¿Por qué Rails es el framework Ruby más popular?
- Cómo crear un logotipo dinámico generado por computadora
Una vez que los navegadores web y los servidores de servicios de fondo se vuelven un poco más sofisticados, un sitio web podría hacer algunas cosas más además de mostrar imágenes y texto. Con la invención de las redes sociales, ahora podrían conectarte con amigos, familiares e incluso extraños con solo hacer clic en un botón. Si bien el front-end de estos sitios todavía solo representaba texto e imágenes, los gráficos sociales que se construían detrás de escena hicieron que el contenido fuera mucho más interesante personalmente. En lugar de solo leer artículos de personas que descubrieron cómo configurar su propio sitio web, ahora puede averiguar qué está pasando con cualquiera que tenga los medios para escribir algunas palabras al respecto.
Pero se está haciendo un trabajo realmente interesante e innovador con la tecnología web que está cambiando el juego por completo. Cosas como WebSockets, WebGL, WebAssembly y WebVR están posibilitando la creación de aplicaciones basadas en la web que rivalizan con la funcionalidad y el poder que anteriormente solo podían haber sido posibles en una aplicación nativa. He escuchado muchas veces que Slack es básicamente “IRC para la web”, y aunque eso es cierto, también es bastante similar al rechazo de personas que dijeron que el iPad es “solo un gran iPod”. Hay algo fundamentalmente diferente en una aplicación cuando su UI y UX son accesibles, incluso cuando la funcionalidad se duplica en su mayor parte en otro lugar.
Dado que los sitios web a los que accedemos en los navegadores se han vuelto mucho más “similares a las aplicaciones” últimamente, los desarrolladores web modernos están comenzando a parecerse mucho más a los desarrolladores de aplicaciones. Necesitan cosas como herramientas de compilación, compiladores y pruebas unitarias, porque el código que escriben está haciendo mucho más que solo mostrar texto e imágenes en una pantalla. Como lenguaje, a medida que Javascript mismo madura y es responsable de algo más que la simple manipulación del DOM, adquiere características de los lenguajes que un desarrollador nativo podría usar. Cosas como las funciones asincrónicas se ven casi idénticas en C #, por ejemplo. ¡Incluso hay una propuesta para que un operador de tubería admita estilos de programación funcionales vistos típicamente en lenguajes como Elixir y F #!
WebAssembly en particular es bastante interesante debido a la promesa de no tener que “tirar” todo el increíble trabajo que se ha realizado en aplicaciones nativas durante años. Actualmente, si desea crear cualquier tipo de aplicación dinámica para la web, debe escribir el código del lado del cliente (léase: navegador) en Javascript. Esto ha llevado a todo tipo de cosas como reproductores de video, editores de fotos y juegos basados en la web que se escribieron directamente en Javascript o se compilaron en Javascript desde otro idioma. El problema con esto es que Javascript es luego interpretado por el navegador como algo que la computadora puede entender. Con WebAssembly, podemos omitir ese paso intermedio por completo y enviar el código que la máquina entiende directamente al navegador.
Entonces, para mí, el desarrollo web moderno se trata de crear experiencias de clase de escritorio como juegos, aplicaciones y experiencias multimedia que se pueden enviar directamente al navegador a través de la web.
¡Pero estas experiencias también pueden reproducir texto e imágenes realmente bien!