Edsger Dijkstra carregou a ciência da computação nos ombros (2020)
A influência desproporcional de Edsger Dijkstra na ciência da computação leva a uma reflexão sobre como suas ideias moldaram a programação moderna e a pedagogia. Os comentadores destacam seu papel na popularização da programação estruturada e do raciocínio sobre a correção de programas, ao mesmo tempo que revisitam suas famosas críticas a GOTO, COBOL e à programação orientada a objetos à luz das linguagens e práticas atuais. Além dos debates técnicos, muitos recordam seus padrões rigorosos, hábitos de trabalho distintos e aforismos contundentes, ponderando se seu rigor e sua aspereza acabaram ajudando ou prejudicando a área.
Âmbito da influência de Dijkstra
- Muitos comentadores dizem que associaram imediatamente o título a ele e o veem como uma figura central em CS, à semelhança de gigantes históricos da matemática.
- Contribuições destacadas: algoritmo do menor caminho, semáforos, programação estruturada, influência no ensino/raciocínio sobre programas.
- Alguns contestam a grandiosidade do título, argumentando que ele foi uma entre várias figuras-chave, e não “a” pessoa que carregou a CS.
Programação Estruturada, GOTO e Correção
- Discussão sobre sua defesa do fluxo de controle estruturado e de blocos com “uma única entrada, uma única saída”.
- Críticos observam que saída única pode forçar código convoluto e entrar em conflito com o estilo comum de “guard clause” e retornos antecipados.
- Outros enfatizam que o objetivo era a compreensibilidade humana e um raciocínio mais fácil, não garantias formais de correção.
- GOTO é debatido: versões irrestritas são vistas como prejudiciais ao raciocínio; formas restritas (break/continue/goto/longjmp) são consideradas administráveis, mas ainda arriscadas.
Paradigmas de Programação: FP vs OOP e Além
- Alguns ligam sua posição anti-GOTO a estilos funcionais modernos (sem saídas antecipadas, recursão, TCO).
- Debate sobre por que linguagens funcionais são nichadas: um comentador culpa seu estilo “convoluto”, outros contestam isso e enfatizam seus sistemas de tipos fortes e desempenho.
- Longo fio sobre OOP:
- Críticas: acoplamento estreito entre dados e comportamento; hierarquias de classes frágeis; dificuldade de evolução de sistemas; “inferno de padrões de projeto”.
- Defesas: OOP como uma ferramenta útil entre outras, tipagem forte e encapsulamento como vantagens; composição em vez de herança como prática comum.
- Vários observam que muitos benefícios “de OOP” (composição, interfaces) não são exclusivos de OOP.
Citações, Filosofia e Cultura
- Muitas citações favoritas foram compartilhadas, tanto admiradas quanto criticadas: sobre COBOL, OOP, contagem de linhas, máquinas pensantes, abstração e “CS vs computadores”.
- A citação sobre submarinos/“can machines think” provoca debate sobre antropomorfismo, precisão linguística e relevância prática desse tipo de pergunta.
- Alguns veem seu estilo contundente como revigorante e motivador; outros o veem como emblemático de uma cultura arrogante e excludente que prejudica a área.
Personalidade, Estilo de Trabalho e Anedotas
- Retratado como escritor intensamente cuidadoso e lento (rascunhos únicos, quase finais; ~3 palavras por minuto), com ênfase profunda em pensar em vez de digitar.
- Evitava TVs, computadores pessoais e telefones móveis; adorava canetas-tinteiro e uma van-camper apelidada de “Touring Machine”.
- Múltiplas anedotas o descrevem como exigente quanto à precisão na linguagem e na notação, deixando em alguns colegas um “crítico interno” duradouro moldado por seus padrões.