Se WASM+WASI existisse em 2008, não precisaríamos ter criado o Docker. Isso é o quão importante é. WebAssembly no servidor é o futuro da computação.
O diabo está nos detalhes. O que Hykes quis dizer é que se o Wasm existisse naquela época, a necessidade de contêineres como o Docker não teria sido tão urgente. No entanto, isso não aconteceu e vivemos em um universo onde reinam os contêineres Docker. Substituir contêineres de missão crítica baseados em Linux não é um ato trivial. Como explica Hykes:
Esse meu tweet foi amplamente mal compreendido. Foi interpretado como se o WebAssembly iria substituir os contêineres Docker. Não pensei então que isso iria acontecer e, vejam só, não aconteceu e, na minha opinião, nunca acontecerá. Agora que o Docker existe e é um padrão, WebAssembly e WASI, por mais legais que sejam, são muito diferentes. Não é de todo um substituto. Tem um formato bem diferente.
A maioria concorda que o WebAssembly supera contêineres no navegador, casos de uso de computação de ponta, plug-ins em sandbox e certas funções sem servidor. Embora alguns estejam mais confiantes sobre o potencial transformador que o Wasm terá, as perspectivas estão divididas em relação ao Wasm como um substituto de longo prazo para contêineres do lado do servidor ou processos de servidor com estado e de longa execução. Abaixo, nos aprofundaremos para comparar onde exatamente o Wasm supera os contêineres e onde não.
Onde Wasm vence contêineres
Alguns desenvolvedores veem o Wasm sendo amplamente utilizado em aplicativos, especialmente onde os contêineres são muito desajeitados. “Wasm é tão adepto da IoT incorporada quanto da enorme infraestrutura de nuvem”, diz Matt Butcher, cofundador e CEO da Fermyon. “Wasm é uma excelente tecnologia para funções sem servidor, IoT, computação de ponta e mecanismos de extensão estilo plug-in”, diz ele.