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


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


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


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


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


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



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


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


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.


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


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



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


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


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. (…)


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


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


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


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


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


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


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


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)


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.


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


42

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


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


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


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



@ 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


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


E também é válido para música
Heinz Z.


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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.