Uma desvantagem é que os programadores Rust gastam bastante tempo, pelo menos quando estão aprendendo a linguagem, tentando descobrir como agradar o compilador. Comportamentos do programa que podem ter passado despercebidos em outras linguagens (e possivelmente causado erros de memória em tempo de execução) fazem com que o compilador Rust pare de funcionar.
O outro a grande desvantagem é que você não pode cancelar esse comportamento. Você não pode desativar o comportamento de verificação de empréstimo do Rust da mesma forma que poderia, digamos, desativar um linter de código para outro idioma. Isso torna o software melhor no longo prazo. Mas o custo imediato é uma linguagem que é mais lenta para aprender e mais lenta para iterar.
Ferrugem faz permitem que você isole partes do seu código com o unsafe palavra-chave e aumentar alguns restrições, como a capacidade de desreferenciar um ponteiro bruto. Mas unsafe não desativa totalmente a verificação de empréstimos ou algo parecido. Serve para pegar código com certos comportamentos que você não deseja usar casualmente (novamente, como desreferenciar um ponteiro bruto) e “bloqueá-lo” por segurança.
