Executando verificação de segurança...
Respondendo a [Não disponível] dentro da publicação Substitutos para o C e C++?
1

Sim, concordo plenamente que nenhum deles é conteúdo prejudicial e que não merecem ser negativados. Em nenhum momento eu falei que os outros estavam agindo de maneira prejudicial e que deveriam ser negativados por isso. Eu só falei que eu não tinha feito um comentário prejudicial. Eu argumentei, apresentei evidências e passei várias palavras-chaves que as pessoas podem usar para procurar por conteúdo para estudos sobre segurança em binários (que é útil para pesquisadores de segurança e o pessoal de AppSec).

Ou seja, tem muita informação útil no meu comentário. Não tem justificativa válida para ele estar com -3 ou sei lá quanto está agora.

Enfim, eu gostaria que a galera apresentasse ao menos um argumento que justificaria considerarem meu comentário neste post como algo "negativo". Algo diferente de "eu amo C e não gosto que falem mal dela", um argumento técnico.

Detalhe que eu programo em C, hein? Mas eu não sou apaixonado pelas linguagens que eu uso. 😄

Carregando publicação patrocinada...
2

Você apresentou diversos pontos pertinentes para a conversa. Contudo, seu estilo de comunicação assertivo e direto pode ser interpretado como confrontacional por alguns membros da comunidade, o que pode ter influenciado nas negativações recebidas.

Entendo que, por vezes, a maneira como articulamos nossas ideias pode afetar significativamente a forma como são recebidas, independentemente do mérito do conteúdo em questão.

Pode ser útil tentar ajustar a forma como você comunica suas ideias, talvez adotando um tom mais colaborativo e aberto para fomentar uma troca construtiva de ideias. Uma abordagem mais ponderada pode ajudar a evitar mal-entendidos e facilitar conversas produtivas.

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.

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.

Em relação ao financiamento, é importante reconhecer que não se trata apenas de injetar dinheiro. Grandes empresas frequentemente são 'convidadas'a terem representantes em conselhos de organizações como a Linux Foundation e a Apache Foundation e no próprios cômites do C e do C++ conseguindo assim influenciar decisões através de doações generosas.

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.

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.

Quanto à sua afirmação sobre a influência de C em 5 mil anos, eu pessoalmente acredito que, de alguma forma, indireta ou não, as decisões tomadas no desenvolvimento de C continuarão a ter impacto, assim como as estradas romanas, construídas há mais de dois mil anos, ainda influenciam nossas vidas hoje.

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'.

Encorajo você, Silva97, a persistir e continuar contribuindo com suas ideias, sempre buscando um enriquecimento na discussão.

0

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.