por Rodrigo_P_A » 07 Abr 2021 09:09
Vou falar a impressão que eu tive:
GO -> Li e entendi rápido como fazer cross-compile, integração ( lib shared para chamar do C ou de qualquer outro programa que use libs shared, ou seja, praticamente qualquer um)
GO -> dá pra gerar aplicação cruzada sem estar na máquina HOST de forma fácil e simples.
RUST -> Até agora, num entendi a vantagem que tanto dizem. Ainda não gerei um App cross pra testar.
Todo mundo foca em falar que é seguro, que a ferramenta é completa, ainda não entendi se é realmente tão bom assim investir tempo nele, sendo que já tenho muita experiência e não tenho problemas com C/C++.
Vi um cara falando absurdo de que programas em C/C++ geram comportamentos e funcionamento inesperado, esse tipo de argumento é de quem não sabe programar. Qualquer linguagem se você não souber o que está fazendo vai gerar comportamento inesperado ( já cometi vários erros assim ), mas está mais relacionado a falta de lógica e falta de saber o que está fazendo do que com a ferramenta em uso. ( exceto para linguagens gerenciadas, já passei raiva com GC /garbage collector do dotnet, ele sim gerava coisas inesperadas).
Em ambas o que eu percebi:
Fácil de baixar, fácil de compilar.
GO achei mais fácil ainda do que RUST.
Sobre C++ minha experiencia e opinião:
Talvez seja esse o ponto fraco de algumas ferramentas de C/C++, é mais complicado de fazer o setup para usar, gerar crosscompile do que as acima.
Na minha empresa estou migrando todo backend para c++, usando webserver, camada de acesso a banco e tudo escrito em C++, uma parte era feita em dotnet/outra em php, eu desistir dessas ferramentas.
Depois que a gente aprende a fazer, não tem comparação, eu tenho todas as libs e ambiente bem configurado para gerar aplicações multiplataforma nativa, sem dependência de pacotes instaláveis de terceiros.
Exemplo: Minha aplicação servidor eu empacoto em um instalador para linux, a aplicação toda com as libs em pacotadas tem 40MB, sem libs 9MB (qdo é só pra atualizar).
A atualização do servidor , leva poucos segundos.
Instalei nas principais distros, sem ter que ficar instalando pacotes de terceiros, mas realmente dá trabalho demais chegar nesse ponto.
Usa pouca memória, é rápido , atende muitas conexões.
Uma coisa em C/C++ que foi uma sacada da galera do Arduino, é o jeito de escrever, mesmo em C/C++ o jeito de escrever fica claro, limpo.
Muitos desenvolvedores que usam C/C++ escrevem de forma que não é muito legível, depois que a gente aprende dá pra entender rápido, mas para os novatos, é complicado e eu já passei por isso, teve uma época que eu achava o Dotnet uma maravilha, depois de muitos anos eu percebi que a maior sacada dos caras na minha opinião é o jeito simples de se escrever as coisas.
Eu copiei muita ideia do Dotnet mas uso em C++, exemplo, tenho rotina tipo:
System.IO.FIle.WriteText(nome_do_arquivo,"texto ou string");
e várias outras para banco de dados, webserver. Dentro dessa rotina num tem como ficar muito bonito, mas a aplicação que chama essas rotinas fica muito mais simples de entender, penso em um dia em organizar tudo e colocar lá no github.
---