Sobre argumentos tecnicos vejo que houve um edição em seu comentário e não tem parte da discussão, mas se lembro bem, você disse algumas coisas que estavam ligeiramente incorretas.
Eu removi porque o pessoal estava dando 100% de atenção para uma parte completamente irrelevante ao que eu estava dizendo. 🤔
Primeiramente, sobre a origem das linguagens de programação, muitas delas, como C, Rust, Java, C# e Go, na verdade surgiram da indústria para atender a necessidades específicas, e não da academia. Por exemplo, C foi criado para programar o Unix e Rust para resolver problemas no desenvolvimento do Firefox. Isso contrasta com linguagens como Haskell ou Lisp, que têm origens acadêmicas e, embora tenham influenciado outras linguagens, não tiveram o mesmo impacto direto na indústria.
O que corrobora com o que eu disse. Pois eu falei que as linguagens são criadas por motivações técnicas e não comerciais. Programar o UNIX é uma motivação técnica, por exemplo. Aliás, para ser mais preciso as motivações técnicas eram a necessidade de ter portabilidade entre arquiteturas diferentes mas manter o código ASM gerado pequeno.
E os problemas no desenvolvimento do Firefox era justamente vulnerabilidades de memory safety, outra motivação técnica.
E sim, eu já sabia de tudo isso que você falou.
Sobre os problemas da linguagem C, a simplicidade e natureza quase trivial do C, é o tradeoff. Problemas conhecidos e que podem ser evitados durante o desenvolvimento em troca de uma lingaguem absurdamente simples. Mesmo enfrentando desafios e tendo limitações, continua sendo uma escolha sólida para a grande maioria dos problemas de baixo nível.
Todo o texto que eu escrevi no meu comentário (exceto a parte que eu removi) foi justamente argumentando, e provando com evidências, que não pode ser evitado. É humanamente impossível e eu passei dois links no meu comentário que provam isso.
Achar que é possível evitar os problemas de segurança em C é uma crença sem fundamentação técnica nenhuma. Tem evidências demais provando o contrário.
Além disso, tentar evitar os problemas de segurança causa prejuízo na performance. Rust provém memory safety em compile-time, ou seja, a performance é melhor.
P.S.: sim, eu conheço o MISRA C que suponho que você vai mencionar. E já adianto que não muda em nada o que eu falei, é impossível evitar os problemas de segurança em C.
Veja também o comentário de kht sobre o fato de que a vasta infraestrutura construída em C ao longo das décadas é um investimento significativo que não vai ser substituído. Como mencionou, novas linguagens como Rust podem oferecer benefícios e serem escolas sólidas para novos projetos, mas a base construída em C continuará a servir de fundamento para novas construções.
Eu li o comentário dele (e de todo mundo que comentou no post) antes de escrever o meu.
Sim, ninguém vai reescrever projetos consolidados. Mas isso não muda em absolutamente em nada o que eu falei. O meu ponto é:
- C tem problemas de segurança e segurança é a coisa mais importante hoje em dia, e vai se tornar mais importante ao longo do tempo.
O que significa que, naturalmente, a linguagem vai cair em desuso. As vantagens que a linguagem C tinha está caindo uma por uma e só está sobrando as desvantagens.
O que significa que vai chegar o momento que as pessoas só vão manter código C legado porque é complexo demais reescrever, não porque tem vantagens em manté-lo em C. Vai ser aquele código velho que ninguém quer mexer com medo de dar merda.
Quando isso acontecer não dá para dizer C é uma linguagem viva.
Finalmente, gostaria de dizer para não se preocupar ou tentar entender todos os motivos por trás das negativações. A funcionalidade é quebrada mesmo. Entendo que as negativações que você podem ser frustrantes, mas também podem ser vistas como uma oportunidade valiosa para diálogo e crescimento. Às vezes, discordâncias e debates com novos argumentos e refletir sobre diferentes perspectivas é melhor do que receber um monte de 'like'.
Não me incomodei nenhum pouco com isso. E um segredo: eu já sabia que meu comentário seria negativado muito antes de começar a escrevê-lo. Só o que eu não sabia é que iriam negativar todo comentário que eu fizesse (meio que por mágoa mesmo, não tinha motivo para isso), achei que seria só o principal. 🤔
Não é como se fosse a primeira vez que eu escrevo sobre o assunto. Eu previ com 99% de precisão a reação da galera e os argumentos que usariam.
Só estou tentando convidar a galera a argumentar, por isso fiz o Edit
. Nunca quis "like" e nunca vou querer. E se você ler com atenção todo comentário que fiz "reclamando" disso, foi convidando as pessoas a argumentarem. Porque é isso que eu quero ver.
Eu adoro debater, sempre fiz isso e levo discussões muito à sério. Se eu não gostasse disso não dedicaria tanto tempo escrevendo, argumentando, produzindo evidências e revisando o que eu escrevi. As vezes eu reviso até mais de uma vez... Ninguém dedica tanto tempo à algo que não gosta.
Por isso você vai me ver falando bem de C quando alguém fizer críticas à linguagem sem argumentação válida.