Todo conteúdo sobre “qual linguagem escolher pra Web3” que eu encontro é escrito por quem nunca fez deploy de nada. Compara sintaxe, compara popularidade no GitHub, compara vaga no LinkedIn. Útil até certo ponto, mas é comparação de fora.
Eu tive a oportunidade (ou o azar, dependendo do dia) de construir contratos reais nas duas:
CryptoMarket, um marketplace de NFTs em Solidity, e Stellar Charge EV, um protocolo de pagamento pra recarga de veículos elétricos em Rust, sobre Soroban (Stellar), feito pro hackathon Stellar 37° · NearX.
Este artigo é o que aprendi tendo as mãos sujas nas duas, não lendo comparação de blog.
O ponto de partida: dois problemas diferentes:
O CryptoMarket nasceu de um exercício que chamei de** “Cliente Imaginário”**: simular um pedido real de negócio e resolver com o rigor que teria num projeto de verdade. O pedido: “preciso conseguir pausar meu contrato em caso de bug, sem precisar fazer novo deploy”.
Solidity, com Foundry, resolveu isso rápido, com um padrão de projeto que qualquer dev que já mexeu com Ethereum reconhece de cara.
O Stellar Charge EV nasceu de um problema mais amplo: um protocolo completo de pagamento por sessão de recarga, integrando smart contract com um simulador OCPP 1.6J (o protocolo real que carregadores elétricos usam), backend, frontend, tudo em produção, sob prazo de hackathon.
Rust entrou porque Soroban, a plataforma de contratos da Stellar, usa Rust como linguagem nativa.
Dois problemas de tamanho e natureza diferentes, o que já é a primeira lição: a pergunta “qual linguagem é melhor” está incompleta.
A pergunta certa é “qual problema, em qual rede”.
Solidity: produtivo rápido, e isso tem preço
Escrever o contrato de manutenção em Solidity foi direto.
A sintaxe lembra JavaScript o suficiente pra não assustar quem já programa web, e o ecossistema em volta (Foundry pros testes, OpenZeppelin pros padrões prontos de segurança) resolve boa parte do trabalho pesado antes de você escrever a primeira linha de lógica de negócio.
O preço dessa produtividade aparece depois: Solidity dá liberdade demais em pontos onde liberdade demais é perigosa. Nada no compilador te impede, por padrão, de escrever um contrato vulnerável a reentrância, por exemplo, a não ser que você conheça o padrão de proteção e aplique manualmente (ou use a biblioteca certa pra isso). A linguagem confia no desenvolvedor.
Em contratos que guardam dinheiro de verdade, essa confiança tem custado caro pro setor inteiro, e não é conversa hipotética, é histórico documentado de exploits.
Rust: o compilador briga com você antes do mundo brigar
Construir o Stellar Charge EV foi outra experiência inteiramente.
Rust tem uma característica que, de início, é frustrante: o compilador não deixa o código rodar se tiver determinadas classes inteiras de erro, principalmente em torno de como a memória é gerenciada (o famoso borrow checker). Isso trava muita gente que vem de linguagem mais permissiva.
Mas depois de algumas semanas brigando com o compilador (literalmente: passei por incompatibilidade de toolchain, ajuste de otimização de wasm pra rodar na testnet, entre outros perrengues documentados no repositório do projeto), percebi o que estava acontecendo:
Rust me forçava a resolver, em tempo de compilação, problemas que em Solidity eu só descobriria em produção, ou pior, só descobriria quando alguém explorasse a falha. É desconfortável no dia, é proteção no longo prazo.
A resposta que eu daria hoje pra “qual escolher”
Não existe resposta universal, mas existe pergunta que ajuda a decidir:
Vai construir em Ethereum ou rede compatível com EVM?
Solidity não é opção, é requisito. O ecossistema, as ferramentas, a documentação, tudo gira em torno dele ali.
Vai construir em Solana, Stellar, Near? Rust entra em cena, e a dificuldade inicial compensa em segurança e em portabilidade, já que Rust serve pra muito mais coisa fora de Web3 também.
Prioridade é velocidade de lançamento, mercado maior de referência?
Solidity ainda ganha em volume de tutorial, biblioteca pronta e gente pra tirar dúvida.
Prioridade é diferenciação num mercado menos disputado, e você tem paciência pra curva de aprendizado mais dura?
Rust filtra concorrência só pela dificuldade de entrada, o que, ironicamente, vira vantagem pra quem persiste.
Links dos dois projetos, pra quem quiser ver o código
CryptoMarket (Solidity): github.com/Eduprogrammer/solidity-maintenance-mode
Stellar Charge EV (Rust/Soroban): github.com/Eduprogrammer/Stellar-Charge-EV
Se esse tipo de comparação prática te interessa
Estou escrevendo sobre isso com mais profundidade em formato de livro. Já saíram dois títulos, Entenda a Web3 (os fundamentos da tecnologia, sem jargão)
(https://www.amazon.com/author/entendaweb3))
e Migre para a Web3 (o mapa prático de carreira pra quem quer entrar no setor), ambos na Amazon.
Um terceiro, mais técnico, sobre construir de fato (linguagem, ambiente, primeiro contrato do zero), está a caminho, e vai usar esses dois projetos como estudo de caso real, não exemplo inventado.
Top comments (0)