webassembly - qconspqconsp.com/.../rodrigo-kumpera-webassembly.pdfmono e c# • runtime existente...

19
WebAssembly e o Futuro da Plataforma Web @kumpera github.com/kumpera [email protected]

Upload: others

Post on 26-Jun-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

WebAssemblye o Futuro da Plataforma Web

@kumpera github.com/kumpera [email protected]

Page 2: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Uma breve história…

Page 3: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

• Celular antes do iPhone

Page 4: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático
Page 5: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

ASM.JS

Page 6: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático
Page 7: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Permitir executar código com performance o mais próximas possível

de nativo

Page 8: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático
Page 9: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Transpilers

São

Uma

Gambiarra

Page 10: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Alta fidelidade de execução para código de baixo nível

Page 11: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático
Page 12: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

WebAssembly…

• Máquina virtual de baixo nível

• Executa dentro do browser

• Acesso bidirecional a JS

• Formato binário eficiente

• Precompilação

Page 13: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Alem de C/C++

• Blockchain

• Edge computing

• Rust, Go, C#

Page 14: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Mono e C#

• Runtime existente agora em WebAssembly

• Interpretador para dev-loop rápido

• Compilador estático para performance

• Depurador, Bindings e ferramentas de build

• Limitações do ambiente (threads, IO, etc)

Page 15: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Por que C#?

• Bilhões de linhas de código existente

• Populariedade da plataforma

• Portar apps mobile ou desktop

Page 16: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Quem está usando

• Blazor - blazor.net

• Ooia

• Xamarin.Form

• Avalonia

Page 17: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Demo time

#wish-me-luck

Page 18: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Resumindo

• WebAssembly é a nova fronteira da web

• Universo de possibilidades

• Usos reais possíveis hoje

• Outras linguagens, C# disponível hoje

Page 19: WebAssembly - QConSPqconsp.com/.../rodrigo-kumpera-webassembly.pdfMono e C# • Runtime existente agora em WebAssembly • Interpretador para dev-loop rápido • Compilador estático

Obrigado!Twitter: @kumpera

Github: https://github.com/kumpera

Mono: https://github.com/mono/mono

Blazor: https://github.com/aspnet/blazor

WebAssembly: https://webassembly.org