Qual é a sua citação favorita sobre programação? [fechadas]

110

Qual é a sua citação favorita sobre programação?

Uma cotação por resposta e verifique se há duplicatas antes de postar!

Gelatina
fonte

Respostas:

231

A depuração é duas vezes mais difícil do que escrever o código em primeiro lugar. Portanto, se você escrever o código da maneira mais inteligente possível, por definição, você não é inteligente o suficiente para depurá-lo.

- Brian W. Kernighan

Fishtoaster
fonte
Sempre que escrevo algum código inteligente, lembro-me dessa regra e olho para trás para ver se não consigo fazer as coisas de uma maneira mais simples que será mais fácil de manter mais tarde, ou pelo menos acrescente mais alguns comentários .
CodexArcanum
6
Um corolário de uma máxima verdadeira: não se esqueça de que um diagrama pode aumentar seu poder cerebral. Você pode trocar "lembre-se da estrutura das grandes coisas" por papel não volátil.
Tim Williscroft 25/10/10
1
Adoro a citação, mas a implicação é que devemos, no máximo, dedicar 50% do nosso esforço à codificação.
Jon Hopkins
4
Eu acho que a implicação é que você deve evitar o desejo desse programador de usar a maneira 'inteligente' de fazer algo quando a maneira um pouco mais longa e mais óbvia de fazer algo funcionar bem.
Fishtoaster
2
Mas e se for um código "perfeito"? Não há como "depurar" isso.
Mateen Ulhaq
183

Andar na água e desenvolver software a partir de uma especificação são fáceis se ambos estiverem congelados.

- Edward V Berard

Tobiasopdenbrouw
fonte
Citação do ano, vou usar esta
Gortron 16/12/10
Eu odeio esse. Nunca é o caso, então quem se importa?
JP Alioto
138

Sempre leva mais tempo do que o esperado, mesmo quando você considera a Lei de Hofstadter.
  - Lei de Hofstadter

nivlam
fonte
72
Excesso de pilha cerebral.
Nathan Taylor
3
@ Joe D: Estou curioso para saber como você reescreveria uma sentença recursiva em inglês em uma única sentença não recursiva.
Jon Purdy
4
Pode convergem para pequenos valores suficientes de "mais longa"
mouviciel
3
+1 - Tenho orgulho de me colocar entre os bilhões de programadores mais junto com Douglas Hofstadter.
Peter Turner
@ gf: Quando é transformada em definir a fonte posteriormente (com um hífen), a introdução principal não é garantida ("A: Blah." -> "Blah. - A"). Isso não está removendo parte da cotação.
126

Sempre codifique como se o cara que acabasse mantendo o seu código fosse um psicopata violento que sabe onde você mora.

- Rick Osborne

Wil
fonte
12
parece que eu continuo mantendo o código que gostaria de saber onde o criador morava, mas provavelmente é uma coisa boa que eu não conheço.
WalterJ89
Traz um novo significado ao termo "aplicativo matador". Parece que sempre acabo mantendo o código do psicopata depois que ele é preso.
Webbiedave 12/10/10
8
@webbiedave Você trabalha no ReiserFS? :)
Neil Aitken
A empresa deve realmente odiá-lo se o assassino conseguiu seu emprego.
Mateen Ulhaq
118

Você pode ter o projeto:

  • Feito a tempo
  • Feito no orçamento
  • Feito corretamente

Escolhe dois.

- Desconhecido

Bobby
fonte
5
Me lembra um triângulo semelhante, mas com mulheres. "Você pode ter uma namorada que: é inteligente, é atraente, tem uma boa personalidade."
Maxpm
Não esqueça que existem exceções, embora sejam raras - não conte com isso.
Mircea Chirea
5
@ Maxpm: A versão que ouvi foi "The 4 S's: Smart, Sexy, Sane, Single. Escolha 3."
Mason Wheeler
1
Portanto, quando não há restrições de tempo e orçamento, você não pode fazê-lo corretamente. Bom saber.
Antsan
111

Algumas pessoas, quando confrontadas com um problema, pensam "eu sei, vou usar expressões regulares".
Agora eles tem dois problemas.

- Jamie Zawinski

Noah Goodrich
fonte
5
Um clássico atemporal
Factor Mystic
5
Algumas pessoas, quando confrontadas com um problema, pensam "Eu sei, usarei <alguma implementação de solução de problemas>". Agora eles tem dois problemas.
Callum Rogers
40
Algumas pessoas, quando confrontadas com um problema, não acham, elas apenas postam no StackOverflow
Matt Ellen
5
Algumas pessoas não entendem expressões regulares e as odeiam porque outras entendem.
Orbling
3
@ Yar - Eu nunca encontrei a sintaxe obtusa pessoalmente, e a densidade é uma coisa boa. Por que expressar algo como uma correspondência de padrão em um formato mais detalhado? Onde a clareza é necessária para algo complicado, o modo estendido pode ser usado com comentários.
Orbling
110

Em teoria, não há diferença entre teoria e prática. Mas, na prática, existe.

- Jan LA van de Snepscheut

Walter
fonte
27
Eu também ouvi "A diferença entre teoria e prática é menor na teoria do que na prática".
1
A formulação de Roger Pate é a que ouvi, escrita por Olin Shivers em "History of T". Paul Graham fala sobre isso aqui: paulgraham.com/thist.html
Michael H.
2
Eu diria que se uma teoria não se traduz em prática, então ela é simplesmente incompleta.
Rei Miyasaka
105

Você pode usar uma borracha na mesa de desenho ou uma marreta no canteiro de obras - Frank Lloyd Wright

Não é exatamente uma citação de programação, mas certamente se aplica.

Tom Wijsman
fonte
14
IMO altamente aplicável
John MacIntyre
3
Felizmente para nós, quando a maioria dos softwares dá errado, ele não entra em colapso e mata pessoas.
Neil Aitken
8
Exceto quando explode um 5 Ariane (Flight 501), ou doses pessoas com letalmente altos níveis de radiação ...
Frank Shearar
2
Ironicamente, acredito que muitos dos edifícios mais complicados de Frank Lloyd Wright caíram em ruínas.
Maxpm
1
@ TomWij, @ Walter, @ Roger: Evite sujar este site com seu metatalk. Se eu quisesse ouvir discussões, eu visitaria meta.stackoverflow.com. É aqui que você deve ter essa conversa fascinante e atemporal.
Dan Rosenstark
103

Hoje em dia, a programação é uma corrida entre engenheiros de software que tentam criar programas maiores e melhores à prova de idiotas, e o Universo tentando produzir idiotas maiores e melhores. Até agora, o universo está ganhando.

- Rick Cook

Jonas
fonte
98

Medir o progresso da programação por linhas de código é como medir o progresso da construção de aeronaves em peso.
  - Bill Gates

ahsteele
fonte
3
Isso é verdade em vários níveis. Uma jóia.
3
A principal diferença é que, obviamente, o peso final da aeronave é conhecido enquanto a contagem LOC final do software é desconhecida.
mmyers
5
Então, por que a maioria dos produtos da Microsoft me dá a sensação de que estou acorrentado pelo pé a um avião que está lutando para sair da pista?
Sharpie
86

Existem dois problemas difíceis na ciência da computação: invalidação de cache, nomeação de coisas e erros off-by-1.

    - Leon Bambrick (@ secretGeek )

(Na verdade, tudo em http://q4td.blogspot.com/search/label/programming, visto que eu seleciono a lista.)

Evan
fonte
Nunca vi uma citação apontar como as coisas podem ser difíceis de nomear. Sinto uma repentina solidariedade.
CodexArcanum
São 3 coisas. Os dois primeiros são a citação original de Phil Karlton. @CodexArcanum. Nomear as coisas bem é o truque.
StuperUser
@StuperUser whooosh! você perdeu a piada!
Agos
Levou dois segundos para conseguir isso depois que você apontou isso. Herp derp.
StuperUser
85

Nove pessoas não conseguem engravidar em um mês.
  - Fred Brooks, o mês do homem mítico

bigown
fonte
14
tecnicamente: 18 pessoas não podem criar um bebê em um mês
Here Be Wolves
13
@HereBeWolves or 10
WalterJ89
14
O que há de errado com 1 cara e 8 damas? Parece certo para mim.
4
Se escolhermos gêmeos ou trigêmeos, precisaremos de menos mulheres.
12
Enquanto o primeiro bebê sofrerá 9 meses latência, canalização adequada irá continuar a entregar 1 por mês ...
Brian Knoblauch
82

Nós deve esquecer-se sobre pequenas eficiências, digamos cerca de 97% do tempo: otimização prematura é a raiz de todo o mal. No entanto, não devemos desperdiçar nossas oportunidades nesses 3% críticos.
  - Donald Knuth, Programação Estruturada com ir para Declarações , JACM Computing Surveys, Vol. 6, No. 4, Dez. 1974, p.268

Isso é extraído dos dois parágrafos abaixo, que não apenas dizem por que ele chegou à conclusão acima, mas fornece informações sobre como evitar esse erro:

Não há dúvida de que o graal da eficiência leva ao abuso. Os programadores perdem muito tempo pensando ou se preocupando com a velocidade das partes não críticas de seus programas, e essas tentativas de eficiência realmente têm um forte impacto negativo quando a depuração e a manutenção são consideradas. Nós deve esquecer-se sobre pequenas eficiências, digamos cerca de 97% do tempo: otimização prematura é a raiz de todo o mal.

No entanto, não devemos desperdiçar nossas oportunidades nesses 3% críticos. Um bom programador não será levado à complacência por esse raciocínio; será prudente olhar atentamente para o código crítico; mas somente após esse código ter sido identificado. Muitas vezes, é um erro fazer julgamentos a priori sobre quais partes de um programa são realmente críticas, pois a experiência universal de programadores que usam ferramentas de medição é que suas suposições intuitivas falham. (…)

Scott Dorman
fonte
2
@ Roger Pate: Eu suspeito que você esteja certo, a maioria das pessoas não percebe que há mais na citação.
Scott Dorman
5
Espero que você não se importe que eu tenha incluído um pouco mais. Eu acho que é realmente importante e talvez isso incentive mais a ler o artigo completo. :)
@ Roger Pate: Nem um pouco!
Scott Dorman
5
+1 Obrigado pela cotação completa. Eu nunca sei que havia mais do que isso.
Evan Plaice
2
É ótimo que você tenha postado a cotação inteira. Muitas pessoas simplesmente conhecem a versão ordenada e não têm idéia do que Knuth realmente quis dizer com isso.
DasIch 26/12/10
80

Depuradores não removem erros. Eles apenas os mostram em câmera lenta.

- Desconhecido

pramodc84
fonte
35
Ou, em muitos casos, faça-os parar de aparecer completamente.
Graeme Perrow
12
@Graeme esses casos são chamados Heisenbugs :)
Here Be Wolves
76

Os primeiros 90% do código representam os primeiros 90% do tempo de desenvolvimento. Os 10% restantes do código representam os outros 90% do tempo de desenvolvimento.

- Tom Cargill

Roger Pate
fonte
Quem disse isso originalmente?
Paddyslacker
10
Acho que você descobrirá que 90% do código leva 90% do tempo e os últimos 10% do código os outros 90% do tempo.
FacticiusVir 9/09/10
2
Tom Cargill, do Bell Labs: en.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin
1
Eu sei disso: 20% dos companheiros bebem 80% de cerveja.
Zzz
1
Pessoalmente, eu diria que os primeiros 90% do código representam os primeiros 90% do tempo de desenvolvimento. Em seguida, os 90% restantes do código representam os outros 90% do tempo de desenvolvimento.
Kaz Dragon
70

Se o Java tivesse uma verdadeira coleta de lixo, a maioria dos programas se excluiria na execução.
  - Robert Sewell

bigown
fonte
22
engraçado, só me fez pensar em php.
precisa saber é o seguinte
2
@ WalterJ89: Não se preocupe! Até o PHP 5.3, o PHP é recontado.
Zneak 10/10/10
Eu gosto deste!
MDV2000
@ WalterJ89 Bem, não vejo razão para destacar Java em oposição a COBOL, C ++, VB ou outros.
Mark C
69

Ciência da Computação não é mais sobre computadores do que astronomia é sobre telescópios

- Edsger Dijkstra

bigown
fonte
4
Sim, mas isso deveria ser sobre programação , não ciência da computação. [sorriso malicioso]
Mark C
Programar é apenas aplicar o conhecimento reunido com a ciência da computação. Você não precisa de um computador para programar, pelo menos não um como a maioria está familiarizada.
DasIch 26/12/10
Eu sempre senti que a coisa mais irritante sobre programação é que não consigo separá-la dos computadores.
LoveMeSomeCode
57

Se a depuração é o processo de remoção de bugs de software, a programação deve ser o processo de colocá-los.
  - Edsger Dijkstra

pramodc84
fonte
24
É por isso que gosto de me referir ao meu trabalho como enbugging .
deceze 13/09/10
9
E manutenção como rebugging ?
Joe D
1
@ JoeD Não, "bugwatching".
Mark C
56

Existem apenas dois tipos de idiomas: os que as pessoas reclamam e os que ninguém usa

- Bjarne Stroustrup

bigown
fonte
15
desculpa ruim para suckage C ++
hasen
3
C # é um contra-exemplo óbvio.
Timwi
7
E o VB se enquadra nas duas categorias.
Quick Joe Smith
48

A melhor coisa sobre um booleano é que, mesmo se você estiver errado, estará apenas um pouco fora. - (Anônimo)

pramodc84
fonte
A pior coisa é que você não pode estar mais errado?
POSIX_ME_HARDER
46

Em duas ocasiões, me perguntaram: "Ore, Sr. Babbage, se você colocar na máquina números errados, as respostas certas serão divulgadas?" Em um caso, um membro da Alta e, no outro, um membro da Câmara Baixa fez essa pergunta. Não sou capaz de apreender com razão o tipo de confusão de idéias que poderia provocar tal pergunta.
  - Charles Babbage

Indiscutivelmente o primeiro caso documentado de um programador enfrentando perguntas estúpidas do usuário.

Jay
fonte
5
Parece uma ideia de camiseta! "Erro do usuário: sujando as coisas desde 1832". (Data?)
Marque C
42

Sempre desejei que meu computador fosse tão fácil de usar quanto meu telefone; meu desejo se tornou realidade porque não consigo mais descobrir como usar meu telefone

- Bjarne Stroustrup

bigown
fonte
42

É tudo conversa até que o código seja executado.
  - Ward Cunningham

Walter
fonte
39

O suporte a Unicode não é um "recurso". É um comportamento esperado.

Concedido, é muito específico, mas é o meu favorito porque conjuntos de caracteres obsoletos ainda são muito usados ​​...

Timwi
fonte
3
Agora você só precisa discutir sobre qual unicode #
Martin Beckett
@ Martin: Na verdade não, porque a conversão entre os vários tipos é sem perdas.
Billy ONeal
Aargh a dor! Por que tenho que argumentar com um cliente que não, não podemos "apenas" mudar toda a nossa infraestrutura para o Latin-1 para torná-la infinitesimalmente mais conveniente para ele? "Afinal, ninguém por aqui usa esses caracteres especiais estranhos; não pode ser tão difícil, certo?"
Piskvor
39

Comentar seu código é como limpar seu banheiro - você nunca deseja fazê-lo, mas realmente cria uma experiência mais agradável para você e seus convidados.

- Ryan Campbell

Coder Hawk
fonte
1
Meh ... A maioria dos comentários que eu encontrei na minha vida são escritos sob o pressuposto de que os comentários podem compensar o código mal escrito ..
riwalk
Você pode limpar o banheiro, mas se o chuveiro tiver apenas água fria e a pia não tiver sabão, será uma experiência desagradável. Escreva um código que leia com facilidade, em vez de escrever grandes comentários para explicar as coisas.
Keyo
Na verdade, acho os comentários bastante agradáveis. Às vezes, coloco comentários importantes em pequenas caixas feitas de asteriscos e barras. Então, novamente, eu sou uma aberração.
Maxpm
2
Também gosto de escrever comentários, mas você não gostaria de ver meu banheiro.
Timwi
Certa vez, eu estava em um banheiro, onde havia comentários muito longos sobre como e por que você deveria manter o banheiro limpo. Não estava limpo.
Rei Miyasaka
38

O tolo se pergunta, o sábio pergunta.
  - Benjamin Disraeli

Dan Dyer
fonte
@ TomWij: Veja meu comentário de quando editei isso, essas citações foram divididas em respostas separadas.
35

Programar é como sexo: um erro e você deve apoiá-lo pelo resto da vida.
  - Michael Sinz

bigown
fonte
34

Se a perfeição permitir que você não tenha um plano de benefícios adicionais, mais um plano de recuperação de benefícios.
  - Antoine de Saint-Exupéry, escritor francês (1900-1944), Terre des Hommes (1939)

(Parece que a perfeição é alcançada não quando não há mais nada a acrescentar, mas quando não há mais nada a ser levado.)

Bill Karwin
fonte
E também é válido para música
Heinz Z.
2
A perfeição é
David Kendal
2
@David Kendal: Legal! Da mesma forma, Henry David Thoreau disse: "Simplifique, simplifique". O que sempre me faz pensar: "Simplifique".
Bill Karwin
33

Java é para JavaScript como carro é para carpete.
  - Chris Heilmann

Bill Karwin
fonte
Há carpete no meu carro, então existe Javascript em Java?
Keyo
1
@Keyo: Sim, pensei nisso. Ainda acho que a citação é realmente inteligente.
Bill Karwin
31

Conforme formulado por Eric S. Raymond :

Lei de Linus

Dada uma base suficientemente grande de beta-testers e co-desenvolvedores, quase todos os problemas serão caracterizados rapidamente e a correção óbvia para alguém.

Ou, menos formalmente,

Dados globos oculares suficientes, todos os erros são superficiais.

usuário8
fonte
soa um pouco como a regra macaco / máquina de escrever para mim ...
Sean Patrick Floyd
Por que os entusiastas do Linux parecem gastar mais tempo repetindo essa citação do que corrigindo os bugs?
Timwi
Ou, o slogan de Atwood para o StackOverflow: "Nenhum de nós é tão burro quanto todos nós". Veja codinghorror.com/blog/2008/09/…
Evan