19 puntos por xguru 2022-05-10 | 2 comentarios | Compartir por WhatsApp
  • Docker popularizó los contenedores de Linux: facilitó el despliegue de software mediante virtualización a nivel de sistema operativo
  • Cloudflare Workers y Deno Deploy implementan el concepto de contenedor de JS (en entornos distintos)
  • ¿Cómo evolucionarán los contenedores de JS en los próximos años?

Lenguaje de scripting universal

  • Cada vez más cosas se integran sobre la web: The web is eating the world
  • La web es el medio base de la información humana, y JS está profundamente integrado en la infraestructura web, por lo que es distinto de otros lenguajes
  • Los lenguajes de scripting resuelven muchos problemas del lado del servidor y permiten escribir lógica de negocio más rápido y a menor costo
  • Los lenguajes de scripting son útiles, muchos se parecen entre sí, y JavaScript es el más ampliamente usado y seguirá siendo utilizable en el futuro
  • Es decir, JavaScript puede considerarse un lenguaje de scripting universal

Shell : Ejecutables :: JavaScript : WebAssembly

  • Está surgiendo un JavaScript Sandbox, un nuevo contenedor de alto nivel para servidores

  • No está pensado para resolver los problemas que apuntan a resolver los contenedores de Linux

  • Es el resultado de la simplificación
    → Minimizar el boilerplate de la lógica de negocio de los servicios web
    → Compartir conceptos con el navegador y minimizar lo que el programador necesita saber

  • Todos los ingenieros web ya conocen la API del navegador de JavaScript
    → Como la abstracción del contenedor de JS está construida sobre la misma API del navegador, se reduce lo que hay que aprender
    → La universalidad de JS reduce la complejidad

  • Shell es un lenguaje de scripting interpretado para ejecutar programas de Unix
    → Tiene condicionales, bucles y variables, pero es limitado y difícil para programar; la funcionalidad real la realizan los ejecutables

  • En esta nueva capa de abstracción para servidores, JS ocupa el lugar del Shell
    → Es más adecuado para scripting que Bash/Zsh, pero así como el Shell llama ejecutables, el sandbox de JS llama a WASM
    → Si se necesita una tarea compleja como redimensionar imágenes, es mejor usar WASM que escribirlo en JS
    → Igual que en bash no se redimensionan imágenes directamente, sino que se llama a ImageMagick

La estrella guía

  • El futuro del scripting es JavaScript del navegador
  • El error más fundamental de Node.js fue inventar demasiadas cosas alejándose del navegador, mientras se estandarizaban nuevas APIs
    → En 2010 ni siquiera teníamos módulos ES, pero una vez estandarizados hubo que llevarlos a Node
    → Lo mismo pasó con Promise, Async/Await, Fetch, Streams y muchas otras cosas
    → CommonJS require, package.json, node_modules, npm y el objeto global process, al no ser estándares, o bien terminarán estandarizándose y agregándose al navegador, o serán reemplazados por alternativas basadas en la web
  • Los contenedores de alto nivel aún no están estandarizados, y todavía no está claro cómo evolucionará todo esto
  • Actualmente Cloudflare Workers y Deno Deploy usan la API de FetchEvent, pero también podría encontrarse una interfaz mejor

Conclusión

  • JavaScript es un lenguaje de scripting de propósito general
  • Gracias a la universalidad de JavaScript, están apareciendo abstracciones tipo contenedor que simplifican el servidor
  • Esto no significa que los contenedores de Linux vayan a desaparecer. Ese nivel de abstracción seguirá siendo útil
    → Pero para mucha de la "lógica de negocio" que escribe la gente, es una abstracción algo de bajo nivel
    → Al construir un sitio web, cosas como la configuración de systemd son boilerplate
  • Probablemente muchos "servicios web" puedan simplificarse si se piensan desde la perspectiva de contenedores de JavaScript y no de contenedores de Linux
  • En Deno están explorando esta idea
    → Buscan simplificar de raíz la abstracción del servidor

2 comentarios

 
xguru 2022-05-20

Ya salió una traducción.

https://medium.com/@yujso66/…

 
xguru 2022-05-10

Si lo resumo a mi manera, sería algo así:

  1. Últimamente están apareciendo muchas tecnologías de sandbox usando WASM.
  2. JavaScript se usa como un script que ejecuta WASM.
  3. En un sandbox de WASM puede montarse todo, desde el SO hasta contenedores y frameworks.
  4. Entonces podría surgir un nuevo estándar de contenedores de alto nivel de este tipo, donde con un contenedor JS solo haya que preocuparse por la lógica de negocio.
    ¿No sería esa una buena forma de resumirlo?

Otros enlaces para ayudar a entenderlo