Uno de los problemas con Javascript es que no hay una biblioteca estándar como en muchos otros lenguajes de programación. Esto significa que hay que descargar todo lo que se necesita para que el programa se ejecute y no nada más las bibliotecas especializadas. Pero esto podría cambiar con la propuesta de que los navegadores incluyan todos los módulos que necesita Javascript sin necesidad de tenerlos que descargar.

Inteligencia artificial, pero ahora con Javascript

No es fácil saber si la propuesta, hecha por Ecma TC39, el comité que regula el desarrollo de Javascript es una buena idea. La intención de tener una biblioteca estándar parece ser una sugerencia interesante, pero las ventajas de tener módulos ya interconstruidos no es muy obvia. La propuesta indica: “Con la introducción de una biblioteca estándar, los desarrolladores tendrán un API bien definido que no tiene que ser incluido con sus páginas o con la aplicación. La funcionalidad de la biblioteca estándar ha pasado por un camino de estandarización y se tendrán APIs bien definidos y un comportamiento predecible”.

Los módulos interconstruidos se definen como los módulos regulares, pero siempre están disponibles. Sin embargo, la ventaja de esto no está muy clara. Quizás podría ser mejor tener módulos que se pudiesen descargar y compartir con todas las páginas o apps. En otras palabras, en lugar de tener esos módulos accesibles desde el navegador siempre, tal vez debería implementarse un caché inteligente para compartir los módulos comunes estándar.

Resultado de imagen para javascript

Para que la transición fuese lo menos complicada posible, ya se han trazado diversos planes, que le dicen al navegador que ignore una biblioteca si esta ya está interconstruida. Esto es casi lo que hace el caché. Si un navegador no soporta módulos, y el 80% lo hace, entonces se necesita regresar a la manera tradicional de cargar el código como se hacía antes.

Otro problema es el decidir qué debe ponerse en esta biblioteca estándar. La ventaja de la misma, pregúntenle a un programador de C o Python, es que los objetos de la biblioteca pronto se convierten en parte del lenguaje. Esto hace más fácil a la comunidad interesada en un lenguaje particular a trabajar en forma coherente. Por ejemplo, actualmente si uno pregunta cómo hacer algo en Javascript, se tendrán una multitud de diversas respuestas, ya sea usando JQuery o Javascript nativo. El problema entonces parece ser que esta supuesta biblioteca estándar no puede contemplar las cosas que son específicas del entorno en donde se está corriendo el código.

Resultado de imagen para javascript

“Una biblioteca de esta naturaleza podría solamente cubrir las características que podrían ser útiles en Javascript en general, pero no las cosas que están atadas a la plataforma web usada. De hecho, una buena heurística podría tener sentido implementarla en el propio navegador, pero no funcionaría para dispositivos embebidos o en robots”. Vamos, que no es tan fácil definir semejante biblioteca.

La propuesta está en sus primeras etapas, pero Google ha creado ya el primer módulo interconstruido para Chorme: KV Storage. Esta es una biblioteca simple que da una llave y un valor para un motor de almacenamiento, que es una alternativa a localStorage o a indexedDB, en donde ambos tienen problemas. Así, hablamos de un experimento realmente, pero ya Chrome tiene soporte para módulos interconstruidos. Si se desea probarlo, se necesita Chrome 74 y encender la bandera de la plataforma web experimental del navegador.

Falta ver qué sigue. Por lo pronto la idea está ya sobre la mesa. Vamos a ver qué pasa con la misma en el futuro.