Sua declaração está 100% correta, apenas perde o objetivo

Olá Habr! Apresento a você a tradução do artigo "Sua declaração está 100% correta, mas perde todo o sentido" .

Imagine linguagens de programação em algum lugar da Internet. Um dos problemas de arquitetura que pode ser discutido é o coletor de lixo. Um participante do painel menciona os benefícios da coleta de lixo da seguinte forma:
Os coletores de lixo são legais e economizam muita energia. Se seu aplicativo não possui requisitos rígidos para o tempo de resposta, a ausência da necessidade de cuidar do gerenciamento de memória libera o desenvolvedor e pode aumentar significativamente sua eficiência.

Essa é uma afirmação bastante neutra com a qual a maioria das pessoas concordaria, mesmo se elas estivessem trabalhando em código que possui requisitos rígidos para o tempo de resposta. E, no entanto, inevitavelmente, alguém apresentará esse contra-argumento:
Não! Se você tiver indicadores pendentes, a memória nunca será liberada e, em qualquer caso, você precisará corrigi-la executando o gerenciamento manual de memória. Coletores de lixo não corrigem magicamente todos os erros.
Se você ler cuidadosamente essas frases, notará que cada afirmação nelas é verdadeira. É por isso que é tão desagradável contestá-lo. A maioria das pessoas com um diploma de engenharia em geral está disposta a admitir seus erros quando são apresentadas evidências de que suas declarações estão incorretas. Isso, obviamente, não se aplica a todos, pois algumas pessoas estão dispostas a discordar intencionalmente de qualquer fato que contradiga seus preconceitos. Iremos ignorar essas pessoas neste artigo.

Sendo verdade, essas declarações ignoram o contexto mais amplo da pergunta, que contém os seguintes pontos:

  • — ( , 1 10 ?), , , , . . — (100-1000 );
  • , , ;
  • , ;
  • , , , , , .

Em resumo, os argumentos estão realmente corretos, mas eles perdem todo o ponto do comentário ao qual respondem. Infelizmente, isso geralmente é encontrado em discussões na Internet. Vamos ver alguns exemplos.

Segurança informática


Esta afirmação:
Usar HTTPS para todo o tráfego é bom para segurança e anonimato.

Você pode contra-argumentar, por exemplo, assim:

Isso não fornece nenhuma segurança real: se a NSA quiser receber seus dados, ela entrará no seu apartamento e os receberá.

Novamente, esta afirmação é absolutamente verdadeira. Por outro lado, se você não é o líder do estado ou não está lidando com cartéis internacionais de drogas, é improvável que se torne um alvo direto da NSA.

Se você acha que este é um contra-argumento estúpido que ninguém jamais fará, concordo plenamente com você. Eu também vi como era usado no mundo real. Eu gostaria de não ter visto.

Erros causados ​​por incompetência


Linguagens de programação de alto nível são fáceis de usar:
As linguagens de programação de buffer overflow são ótimas para o desenvolvimento em termos de segurança e simplicidade.

Mas não para todos:
Você pode conseguir o mesmo em C, apenas tenha cuidado.

Isso é verdade novamente. Se cada desenvolvedor que trabalha na base de código estiver 100% concentrado e 100% cuidadoso 100% do tempo, será possível escrever um código sem erros. A realidade mostrou repetidamente que isso é impossível, uma pessoa simplesmente não é capaz de trabalhar na perfeição por um longo tempo.

YAGNI ? O que mais é YAGNI?


Tudo é simples:
Processar arquivos de texto com Python é muito legal e fácil.

E não é tão simples:

O Python é um absurdo completo; ele não lidará com a tarefa quando você precisar processar dez milhões de arquivos por segundo no microcontrolador embutido, usando no máximo 2 KB de RAM.

Sim. Sim, ele é. Nesse caso, essa seria a escolha errada. Você está absolutamente certo. Obrigado pela sua compreensão, bom senhor, aqui está uma brilhante medalha de ouro em memória de sua importante contribuição para esta discussão.

Qual poderia ser a razão disso?


A única coisa pela qual a escola o prepara é que é importante estar certo. Se você der as respostas corretas no teste, receberá uma boa nota. E se você não der, é ruim. Talvez esse pensamento "persista" depois que você terminar a escola, especialmente considerando que a maioria das pessoas que postam esse tipo de comentário parece estar no extremo "mais inteligente" do espectro (opinião pessoal que não se baseia em nenhum pesquisa real). No mundo real, estar certo em si não é um mérito. Obviamente, em qualquer discussão é importante estar certo, mas um recurso muito mais importante é ser apropriado. Isso requer uma compreensão do contexto mais amplo e, possivelmente, o reconhecimento de que o que é mais importante no mundo para você pessoalmente pode ser completamente irrelevante para o problema em consideração.

Estar certo é fácil. Ser relevante é extremamente difícil.

All Articles