Debido a que HTML / CSS / JS se crearon para ser flexibles, no para ser eficientes.
Es muy similar a por qué todavía hay sistemas escritos en C / C ++. Debido a que cuanto más se acerca el lenguaje al hardware, más eficiente puede ejecutarse, lo que sigue siendo muy importante en el espacio móvil actual debido a las limitaciones de duración de la batería.
HTML / CSS / JS también son (en su mayor parte) lenguajes estandarizados. Para agregar funciones a estos idiomas, deben enviarse a los creadores de estándares (como w3c). Esta estandarización es excelente para los desarrolladores web porque significa que su código generalmente se ejecutará igual en cualquier navegador, pero tiene el costo de que las nuevas funciones sean más lentas de implementar. Las cámaras, los acelerómetros, el GPS y los gestos táctiles son tecnologías bastante universales en los teléfonos móviles en la actualidad, pero aún carecen de todas las API estandarizadas necesarias para que las tecnologías web las aprovechen al máximo.
- ¿Qué tan bueno es PostgreSQL con la aplicación web Java?
- ¿Qué es exactamente Heroku? Localhost vs Heroku? Apache vs Heroku?
- Las pruebas de penetración reportaron cero vulnerabilidades. ¿Esto significa que mi aplicación web es segura?
- ¿Por qué tomó tanto tiempo que una aplicación como What'sapp se generalizara y cuán complejo es el código utilizado para hacerlo?
- ¿Cuál es la mejor manera de desarrollar una aplicación web modular en PHP / Laravel?
También vale la pena señalar que HTML / CSS / JS son todos lenguajes / formatos interpretados. Debido a esto, para “ejecutarlos” deben estar asistidos por un motor web … otra capa de ineficiencia entre el código y la ejecución de ese código.
Debido a esta sobrecarga de interpretación, las aplicaciones móviles generalmente se escriben en lenguajes compilados para que la conversión y la optimización del origen al ejecutable se realice una vez por la máquina del desarrollador, en lugar de realizarse en el dispositivo de cada usuario que ejecuta la aplicación.