Para te dar uma boa resposta, primeiro preciso descrever mais ou menos o que fazemos.
No nosso caso aqui, trabalhamos com integrações e rotinas customizadas para estender funcionalidades de ERPs.
Por exemplo, sua empresa tem um ERP da TOTVS, faz quase tudo, mas tem um processo/operação/integração que o ERP não faz e não é de interesse da TOTVS implementar no produto. É aí que a gente atua, criando uma rotina/programa para cobrir essa operação.
O que desenvolvemos não são produtos nossos, fazemos software sob medida. O código-fonte fica com o cliente, assim como a responsabilidade de mantê-lo no ar, e se ele quiser pode contar com o time interno dele para ampliar e dar manutenção no projeto.
Na maior parte dos cenários, é necessário que sejam aplicações desktop, por alguns motivos:
- Esses clientes não tem expertise para manter ambientes web, seja on-premise ou cloud;
- Esses grandes ERPs são muitas vezes desktop e colocar um processo web no meio do caminho pode dificultar para os usuários.
- Existem restrições de acesso a rede externa por conta de várias políticas.
- É necessário interagir com o hardware como balanças e impressoras.
No passado usamos muito Delphi para fazer isso, ainda usamos para alguns casos em que ele encaixa bem (muito por conta do projeto ACBr). Também usamos C# para projetos recentes.
O problema é que por mais que tenhamos projetos desktop no cenário que comentei, a maior parte dos projetos é web, e se pudermos usar tecnologias web para criar essas aplicações eu poderia otimizar o trabalho do nosso time aqui.
Já tentamos usar Electron aqui, mas o build, o tamanho dos artefatos e o consumo de memória nunca foram satisfatórios. Também tentamos Flutter, mas o time no geral não curtiu o Dart e a comunicação com as balanças no Flutter sempre foi um parto.
Para aplicações web a gente já usou PHP no passado, mas passamos a usar Node de alguns anos para cá. O Node tem atendido bem, mas dependendo do cenário o deploy não é tão simples por conta da estrutura do cliente. Foi por conta disso que comecei a estudar Go, que dentre várias vantagens ele gera um único executável, isso torna o deploy muito simples, além de podermos embutir as dependências como bibliotecas externas (dlls por exemplo), assets e etc dentro do próprio executável com embed.FS.
E se Go pode ser uma alternativa para nós para aplicações web, com o Wails pode também ser uma alternativa para o desktop, mas ainda estou estudando sobre isso.
E por que o Rust não seria uma boa opção?
Montar bons times que usam Rust custa caro!