banner
Lar / blog / Socket Runtime visa eliminar a nuvem como uma dependência • The Register
blog

Socket Runtime visa eliminar a nuvem como uma dependência • The Register

Nov 17, 2023Nov 17, 2023

Entrevista Socket Supply Co apresentou hoje o Socket Runtime, um tempo de execução de código aberto para a criação de aplicativos nativos móveis e de desktop para Linux, macOS ou Windows usando tecnologias da web, mas com conectividade ponto a ponto opcional como forma de complementar ou até mesmo evitar nuvem de back-end Serviços.

Um tempo de execução é um ambiente para execução de código. Os navegadores da Web servem como tempos de execução para código JavaScript. Existem também tempos de execução de servidor como Node.js, Deno e Bun – para aplicativos JavaScript executados fora dos navegadores. E existem tempos de execução de aplicativos como Electron, Tauri e Socket Runtime – para aplicativos JavaScript executados localmente em dispositivos desktop (e móveis para os dois últimos).

Electron, uma estrutura de código aberto popular para a construção de aplicativos multiplataforma com tecnologias da web (JavaScript, CSS, HTML), depende do mecanismo do navegador Chromium para renderizar páginas da web e do ambiente de execução Node.js. Ele reúne um processo principal do Node.js, para lidar com funções orientadas ao servidor e coisas como acesso a arquivos, com processos de renderização do Chrome para apresentar interfaces de usuário baseadas em HTML.

“O grande problema do Electron é que ele nunca foi projetado para rodar em dispositivos móveis”, disse Paolo Fragomeni, CEO da Socket Supply Co, em entrevista ao The Register.

Tauri é uma estrutura de código aberto para construção de aplicativos móveis e de desktop para várias plataformas nativas usando Rust e WebView para renderizar HTML. Os aplicativos Tauri não são fornecidos com um tempo de execução porque o binário final é compilado em Rust.

Mas Fragomeni afirma que o Socket Runtime é preferível porque não há nenhuma nova linguagem de programação para aprender. “Com Tauri, existe Rust, e isso é um fracasso para a maioria demográfica de desenvolvedores web”, disse ele.

Ele levantou objeções semelhantes à estrutura Flutter do Google. “Flutter apresenta novamente esta nova linguagem para aprender, Dart, que é bastante obscura no quadro geral”, disse ele, embora tenha admitido que o Google “tem ótimos engenheiros trabalhando nessas coisas”.

Fragomeni argumenta que as tecnologias da web são o caminho a seguir, ecoando o grito de guerra do criador do JavaScript, Brendan Eich: "Sempre aposte em JS!"

“Amamos a web”, disse Fragomeni. "Existem mais desenvolvedores web do que qualquer outro tipo de desenvolvedor. A web tem a melhor documentação, os padrões de design mais conhecidos e as maiores empresas investem nela."

Mas os navegadores, diz ele, foram projetados para um tipo específico de software cliente-servidor, por isso vimos esforços como Electron e Tauri (sem mencionar Capacitor, Cordova, Ionic, NativeScript e React Native) para trazer a tecnologia da web para aplicativos nativos. desenvolvimento. Estas foram bem recebidas, diz ele, porque visar múltiplas plataformas é um desafio do ponto de vista do desenvolvimento e da gestão.

“É realmente difícil encontrar, contratar e incentivar e manter um engenheiro Android, um engenheiro iOS, um engenheiro de desktop Windows, um engenheiro macOS e um engenheiro Linux”, disse ele.

"Socket ajuda desenvolvedores web a criar aplicativos para qualquer sistema operacional, desktop e celular. E isso usando HTML, CSS e JavaScript, ou suas estruturas favoritas."

O Socket Runtime também tem uma vantagem de tamanho sobre o Electron – ele produz aplicativos muito menores. A Electron, diz ele, fornece "um binário de 200 megabytes basicamente no final do dia, enquanto o Socket fornece um binário de 1,5 megabyte. E isso é um grande negócio se você quiser abordar mercados emergentes".

Tauri é competitivo em termos de tamanho binário, embora Fragomeni discorde das escolhas arquitetônicas de Tauri por serem inseguras, apesar das vantagens de segurança de memória disponíveis no Rust.

“Tauri, há um ótimo trabalho nisso”, disse ele, “mas eles transportaram a ideia do processo principal [como visto no Electron]. O processo principal é esse tipo de processo arbitrário que roda no seu computador. acesso total e absoluto ao seu computador, e não há como um usuário ter qualquer garantia sobre o que esse processo faria."

“Socket adota uma abordagem radicalmente diferente, pois adota padrões da web”, disse Fragomeni. "Nos padrões da web, existe uma coisa chamada CSP – política de segurança de conteúdo. Usamos isso para realmente mitigar, de maneira refinada, as chamadas IPC [comunicação entre processos] que vão para a camada intermediária."