No creo que nadie tenga una respuesta difícil para esta pregunta, pero he visto algunas advertencias interesantes:
El argumento principal para html / javascript / css es la portabilidad: la vieja moto “escribe una vez, despliega en cualquier lugar”. HTML (visto aquí como la trinidad, junto con js / css) trató de llenar ese vacío, al menos en cuanto a la interfaz. Al igual que Java, una sola página HTML dará las instrucciones que una aplicación escrita nativamente (el navegador) traducirá al lenguaje específico de la máquina / SO real.
Eso está muy bien hasta que comience a ver algunos navegadores muy diferentes, escritos para sistemas con capacidades muy diferentes, como los teléfonos móviles. Es posible que pueda instalar complementos en su escritorio Chrome, pero apenas en el “mismo” navegador (Chrome), pero en su Android.
Teniendo esto en cuenta, los desarrolladores web (y las grandes empresas) se dividen en dos “equipos”: permiten una página portátil, de tamaño único para todos los entornos, o usan complementos.
El equipo de complementos puede requerir que el usuario instale (y habilite el uso de) un paquete, que puede ser engorroso / no disponible, y aún así tener que escribir código que sea compatible con la plataforma y que pueda o no usar completamente la potencia del hardware (aceleración 3D , acceso a la cámara, etc.).
Por otro lado, el equipo de HTML limpio no solo no tiene acceso a muchas funciones de SO / hardware (a favor de la portabilidad), sino que también está escribiendo más de una aplicación: una para el escritorio y otra para móviles (a veces más de una vez , ya que el uso de tabletas puede ser diferente del uso de teléfonos inteligentes).
Pero eso no es todo: los navegadores admiten diferentes especificaciones HTML (es decir, te estoy mirando), el usuario puede tener js habilitado o no, y los usuarios de iOS tienen diferentes requisitos de interfaz como sus contrapartes de Android (comenzando sin un botón “atrás”) en dispositivos iOS), y ambos son diferentes a un escritorio.
Los complementos nos pueden dar capacidades nativas similares a las aplicaciones porque, en muchos sentidos, eso es lo que son. ¿Es eso algo malo? Cuando intento abrir alguna página web o seguir un enlace en mi navegador móvil, a veces lo que se abre es una aplicación que descargué, no la página HTML, y mi experiencia se enriquece por eso.
En mi opinión, ningún complemento equivale a una interacción y capacidades limitadas. Claro que podemos agregar cámara, 3D (como en webgl), táctil o lo que sea a HTML, pero ¿por qué no usar (o, al menos, permitir el uso) de las herramientas nativas que el sistema ya nos brinda?
En mi humilde opinión, los complementos no han ido lo suficientemente lejos. Muchos simplemente se implementan porque el desarrollador quiere proteger su código fuente (y con razón, dado que js solo se puede codificar, pero no se puede proteger fácilmente), o porque tienen más confianza al escribir en otro idioma. Deberíamos poder jugar nuestro juego o aplicación favorita lo más cerca posible de la versión nativa, DIRECTAMENTE desde el navegador. Si eso significa que tenemos que ajustar o reescribir grandes partes de nuestro código para adaptarnos a diferentes plataformas, creo que deberíamos poder tener al menos esa opción, como ya está sucediendo en el mundo móvil.
Creo que en la próxima década o dos vamos a experimentar nuevas interfaces que pueden ser completamente originales en comparación con un navegador tradicional. Estamos tan cómodos con nuestras páginas HTML que olvidamos que NO se debe exigir a un usuario que sepa siquiera qué es una URL, y solo nos centramos en la experiencia de obtener la información que desea.
¿Eso desencadenará la “caída” de HTML? No lo sé. Pero tengo esperanzas.