Supongamos que los siguientes dos supuestos son ciertos.
- Toda su base de usuarios tiene acceso a banda ancha en todas partes
- Existe un navegador imaginario X que implementa todo el borrador de la especificación de los grupos HTML5 y WHATWG, de manera consistente y todos los usuarios usan el navegador X.
¿Cuáles son las limitaciones intrínsecas de una aplicación web pública pública HTML5 para la que necesitamos aplicaciones de escritorio públicas comerciales?
Estoy interesado en las limitaciones de las aplicaciones web sin complementos que no dependen de los puentes Flash / Java / SilverLight / etc. para funciones adicionales ni de los complementos del navegador para funciones adicionales.
Posibles limitaciones que no se aplican:
- Bases de datos? Tenemos WebSQL e indexedDB.
- Archivo IO? Tenemos la API de archivos HTML5 que hace tanto lectura como escritura.
- ¿Velocidad? Con la reciente carrera del motor de JavaScript, el navegador ya no es lento. Native C ++ es solo 3 veces más rápido que el motor V8 de Chrome.
- ¿Herramientas de desarrollo? La web ha madurado y hay una gran variedad de herramientas disponibles que son demasiado numerosas para enumerarlas.
- Fuente cerrada? Sí, todo el código es de código abierto. Esta es una espada de doble filo y hay numerosas opiniones sobre el uso de código cerrado o código fuente abierto. Personalmente, creo que las ventajas del código fuente abierto son mayores que las desventajas.
- JavaScript / HTML5? Los argumentos en torno a "Personalmente creo que HTML5 y EcmaScript son plataformas de desarrollo horribles" no cuentan.
Limitaciones conocidas:
- El código crítico en tiempo real / seguridad (alto secreto) no pertenece a la web ni puede. Debe escribirse en un lenguaje de bajo nivel y altamente controlable como C o C ++.
- Cualquier herramienta que necesite interactuar con un hardware externo de terceros conectado a su computadora tendrá dificultades para hablar con su aplicación web.
También hay un conjunto completo de programas que no pertenecen a la web. Sistemas operativos, controladores, software de servidor, API de bajo nivel. Soy consciente de eso, pero no los clasifico como aplicaciones "públicas comerciales", estos son el tipo de software que se puede preinstalar en las computadoras.
Por otro lado, sé que las dos suposiciones son terriblemente poco realistas, pero podríamos lograrlas en 5/10/20/30 años. Estoy interesado en el tipo de aplicaciones y las características de las aplicaciones que las hacen completamente incompatibles con la web.
Motivación:
El punto:
Dado el conjunto de problemas donde una aplicación de escritorio es una solución válida.
- ¿Por qué una aplicación web no es una solución válida?
- ¿Cómo identifico si puedo usar una aplicación web como solución?
He tratado de eliminar las principales dificultades con las aplicaciones web (conexión a Internet y soporte de navegador) afirmando que no existen.
Además, las aplicaciones HTML5 fuera de línea y Modernizr están en camino de resolver ambos problemas.
¿Cuáles son las otras dificultades con el desarrollo de aplicaciones web?