Executando verificação de segurança...
6

Eu estava errado sobre o Rust?


Introdução

Para quem não sabe, há um bom tempo atrás eu fiz um post entitulado Por que o Rust é ruim? que teve uma repercursão até moderada aqui no TabNews. Eu queria tentar me explicar melhor sobre esse post e amenizar
algumas coisas que acabaram ficando muito extremas.

1. Sintaxe

No post, eu critico bastante a sintaxe e a consistência sintatica do Rust.

Eu ainda acho que o Rust não tem uma consistência das Melhores, acho que até C, Java, Go têm mais consistência sintatica do que o Rust.

Mas, eu estava errado sobre o quanto isso realmente importava para o workflow geral do Rust.

Depois de experimentar com algumas linguagens de programação mais verbosas e complexas/esotéricas (em termos de sintaxe) como C++ e Java, percebi que o boilerplate do Rust é praticamente nulo e que a sintaxe e que isso não importa tanto assim como performance, por exemplo.

2. Performance

Falando de performance, do Rust não há o que falar. Ele é uma verdadeira bala.

O único problema que eu encontrei sobre performance é a dificuldade de fazer um programa "realmente rápido" (ou Blazingly Fast) por conta de problemas com o uso da Heap e operações que são lentas por si só.

3. Borrow Checker: Gerenciamento de memória

No post eu simplesmente destruí o Borrow Checker injustamente. Eu digo no post que você passa uma raiva desnecessária ao programar em Rust. Agora, eu acho isso um pouco injusto se você pensar que o Borrow Checker tá la só para te ajudar.

Eu sei que para iniciantes, você pode se pegar lutando com o compilador tentando escrever o código que ele quer que você escreva. Mas nisso, já entramos nó próximo tópico do post...

4. Curva de aprendizado

É fato que no início o Rust é MUITO chato. Mas uma coisa boa que eu percebi no Rust é que a curva de aprendizado do Rust é exponencial. Quanto mais você aprende, mais você aprende rápido.

A curva de aprendizado do Rust é mais ou menos assim:

Gráfico Exponencial

5. Resultados satisfatórios

Mesmo com seus problemas, depois de fazer mais projetos em Rust, acabei aprendendo que esses problemas no fim do dia, valem a pena. Eu percebi que ao terminar uma parte de uma implementação de uma parte de um projeto, você se sente um melhor programador. O compilador do Rust é igual a sua mãe. Ela quebra tua cabeça para você fazer as coisas direito. E no fim, o código fica "perfeito" e você sente certo prazer em ter terminado a tarefa com sucesso.

Encerramento

Eu ainda acho que o Rust é cheio de problemas. Mas eu acho que me redimi com os criadores e abri mais a minha mente sobre essa linguagem.

Obrigado por ler!

Carregando publicação patrocinada...
6

O problema aqui não é o Rust; é por que as pessoas estão usando Rust. O Rust foi desenvolvido pela Mozilla para rodar JavaScript de forma segura. Esse é o DNA da linguagem. Em um navegador, você está executando código não confiável, e a segurança é uma necessidade absoluta. Rust foi projetado para lidar com essa complexidade e garantir segurança na manipulação de memória, sem comprometer a performance.

Mas, ironicamente, vejo muita gente escolhendo Rust para projetos onde essa vantagem de segurança é irrelevante. Se você está escrevendo código que controla e confia completamente, forçar Rust na sua aplicação é um exagero. Rust não foi feito para ser “a linguagem mais rápida” ou para resolver todos os problemas de performance; seu propósito é lidar com segurança em ambientes críticos, como um navegador lidando com código arbitrário da internet.

Sem uma base sólida em C, muitos nem conseguem entender de verdade a sintaxe do Rust e os problemas que ele resolve. Rust é uma ferramenta de precisão, feita para problemas específicos. E para quem só quer performance, existem outras opções. Rust é para quando a segurança na memória é essencial, e não uma escolha para qualquer projeto.

Se você só precisa que seu aplicativo seja rápido, C e C++ são alternativas muito mais sólidas. A maioria dos aplicativos nunca vai precisar lidar com código não confiável, e aí o uso do Rust perde todo sentido. Rust foi criado para situações onde a segurança é imprescindível, não apenas para entregar velocidade. Em aplicações comuns, onde o código é inteiramente confiável, usar Rust é quase sempre um erro!

2

Peguei Rust como minha primeira linguagem de "baixo nível" para desenvolvimento de algo concreto, apesar de estar longe de experiente com ela, concordo com boa parte dos pontos levantados.

Algumas partes que mais me incomodam é o tempo de compilação, principalmente em projetos grandes, mas aparentemente estão melhorando aos poucos nos ultimos anos.

Atualmente ela está sendo minha linguagem favorita para quando eu estou com energia para quebrar um pouco a cabeça.

Acho que o único ponto que a linguagem tem realmente que focar em melhorar é as Macros, que caso seja necessário fazer alguma muito complexa, acaba se tornando uma tarefa meio sofrida, aparentemente Zig tem um sistema de macros mais confortável, mas aí só o tempo dirá se a linguagem irá tentar tornar essa parte mais acessível.

1
1
1

É engraçado, Rust foi uma das primeiras linguagens compiladas que realmente senti prazer de codar! Ela ainda tá muito imatura para a produção, mas existem muitos produtos em Rust que já se tornaram top 1 em performance e segurança, como o Tauri, que busca ser uma alternativa ao Electron, por exemplo.

Mesmo que ela não seja ainda uma linguagem top 1 na produção, vejo que ela tem muito potencial. Espero que sua experiência com Rust fique ainda melhor, amigo! :)

1

Legal sua trajetória, estou nesse momento tentando amenizar essa curva e deixar mais fácil o entendimento. Mas, depois se quiser conversar das suas dificuldades, seria interessante para pensar em formas de facilitar esse processo de aprendizado.

O meu server do discord é esse Canal dev Jonatas

1

Uma coisa sobre o Rust, é que ela é uma linguagem muito complicada se vocẽ nunca teve contato com C ou C++ pra entender o porque o borrowchecer tá brigando com você

E como comentado, uma parada legal do Rust, é que quando eu terminava uma implementação, dificilmente ela precisava de mexidas pra ajustas, visto que o sitema de Traits empacota as coisas em contratos, de modo que vocẽ de forma tranquila, consegue subistituir a viga, sem derrubar a casa