Qual è la tua citazione preferita sulla programmazione? [chiuso]


Risposte:


231

Il debug è due volte più difficile della scrittura del codice in primo luogo. Pertanto, se si scrive il codice nel modo più intelligente possibile, per definizione non si è abbastanza intelligenti da eseguire il debug.

- Brian W. Kernighan


Ogni volta che scrivo un po 'di codice intelligente, mi ricordo questa regola e mi guardo indietro per vedere se non posso fare le cose in un modo più semplice che sarà più facile da mantenere in seguito, o almeno aggiungere altri commenti .
CodexArcanum,

6
Un corolloary di una massima altrimenti vera: non dimenticare che un diagramma può aumentare la potenza del tuo cervello. Puoi scambiare "ricorda la struttura delle cose grandi" con carta non volatile.
Tim Williscroft,

1
Adoro la citazione, ma l'implicazione è che dovremmo al massimo mettere il 50% dei nostri sforzi nella codifica in primo luogo.
Jon Hopkins,

4
Penso che l'implicazione sia che dovresti evitare l'impulso di quel programmatore di usare il modo "intelligente" di fare qualcosa quando il modo leggermente più lungo e più ovvio di fare qualcosa funziona bene.
Fishtoaster,

2
E se fosse un codice "perfetto"? Non c'è modo di "debug".
Mateen Ulhaq,

183

Camminare sull'acqua e sviluppare software da una specifica sono facili se entrambi sono congelati.

- Edward V Berard


Citazione dell'anno, userò questo
Gortron il

Odio questo. Non è mai il caso, quindi a chi importa?
JP Alioto,

138

Ci vuole sempre più tempo del previsto, anche quando si tiene conto della Legge di Hofstadter.
  - Legge di Hofstadter


72
Straripamento del cervello.
Nathan Taylor,

3
@Joe D: Sono curioso di sapere come riscriveresti una frase inglese ricorsiva in una singola frase non ricorsiva.
Jon Purdy,

4
Può convergere per sufficienti piccoli valori di "più lungo"
mouviciel

3
+1 - Sono orgoglioso di annoverarmi tra i primi miliardi di programmatori insieme a Douglas Hofstadter.
Peter Turner,

@gf: Quando in seguito viene trasformato nella definizione della fonte (con un trattino), l'introduzione principale non è garantita ("A: Blah." -> "Blah. - A"). Questo non sta rimuovendo parte del preventivo.

126

Codifica sempre come se il ragazzo che finisce per mantenere il tuo codice sarà uno psicopatico violento che sa dove vivi.

- Rick Osborne


12
sembra che continui a mantenere il codice che vorrei sapere dove abitava il creatore, ma probabilmente è una buona cosa che non lo so.
WalterJ89,

Porta un nuovo significato al termine "app killer". Mi sembra sempre di mantenere il codice dello psicopatico dopo che è stato incarcerato.
webbiedave,

8
@webbiedave Lavori su ReiserFS? :)
Neil Aitken,

La compagnia deve davvero odiarti se l'assassino ha ottenuto il tuo lavoro.
Mateen Ulhaq,

118

Puoi avere il progetto:

  • Fatto in tempo
  • Fatto a budget
  • Fatto correttamente

Prendine due.

- Sconosciuto



5
Mi ricorda un triangolo simile, ma con le donne. "Puoi avere una ragazza che: è intelligente, è attraente, ha una buona personalità."
Maxpm

Non dimenticare che esistono delle eccezioni, sebbene siano rare - non contare su di esso.
Mircea Chirea,

5
@Maxpm: La versione che ho sentito era "Le 4 S: Smart, Sexy, Sane, Single. Scegli 3."
Mason Wheeler,

1
Pertanto, quando non ci sono vincoli in termini di tempo e budget, non è possibile farlo correttamente. Buono a sapersi.
Antsan,

111

Alcune persone, di fronte a un problema, pensano "Lo so, userò espressioni regolari".
Ora hanno due problemi.

- Jamie Zawinski


5
Un classico senza tempo
Factor Mystic,

5
Alcune persone, di fronte a un problema, pensano "Lo so, userò <qualche implementazione di risoluzione dei problemi>." Ora hanno due problemi.
Callum Rogers,

40
Alcune persone di fronte a un problema non pensano, pubblicano semplicemente su StackOverflow
Matt Ellen,

5
Alcune persone non capiscono le espressioni regolari e le odiano perché altre lo fanno.
Orbling

3
@Yar - Non ho mai trovato la sintassi ottusa personalmente e la densità è una buona cosa. Perché esprimere qualcosa come una corrispondenza di pattern in un formato più dettagliato? Dove è necessaria la chiarezza per qualcosa di complicato, la modalità estesa può essere utilizzata con i commenti.
Orbling

110

In teoria, non c'è differenza tra teoria e pratica. Ma, in pratica, c'è.

- Jan LA van de Snepscheut


27
Ho anche sentito "La differenza tra teoria e pratica è più piccola in teoria che in pratica".

1
La formulazione di Roger Pate è quella che ho sentito, scritta da Olin Shivers in "History of T". Paul Graham ne parla qui: paulgraham.com/thist.html
Michael H.

2
Direi che se una teoria non si traduce in pratica, allora la teoria è semplicemente incompleta.
Rei Miyasaka,

105

Puoi usare una gomma sul tavolo da disegno o una mazza in cantiere - Frank Lloyd Wright

Non è esattamente un preventivo di programmazione ma sicuramente si applica.


14
IMO altamente applicabile
John MacIntyre,

3
Fortunatamente per noi quando la maggior parte dei software va storto non crolla e non uccide le persone.
Neil Aitken,

8
Tranne quando fa esplodere un Ariane 5 (Volo 501) o dosa persone con livelli di radiazione letalmente elevati ...
Frank Shearar,

2
Ironia della sorte, credo che molti degli edifici più contorti di Frank Lloyd Wright siano caduti in rovina.
Maxpm

1
@TomWij, @Walter, @Roger: ti preghiamo di astenersi dallo sporcare questo sito con il tuo metatalk. Se volessi sentire il battibecco, visiterei meta.stackoverflow.com. È qui che dovresti avere questa conversazione affascinante e senza tempo.
Dan Rosenstark, il

103

La programmazione oggi è una corsa tra ingegneri del software che si sforzano di costruire programmi più grandi e migliori a prova di idiota e l'Universo che cerca di produrre idioti più grandi e migliori. Finora l'Universo sta vincendo.

- Rick Cook


98

Misurare l'avanzamento della programmazione mediante righe di codice è come misurare il progresso della costruzione di aeromobili in base al peso.
  - Bill Gates



3
Questo è vero su più livelli. Una gemma.

3
La differenza fondamentale è, ovviamente, che il peso finale dell'aeromobile è noto mentre il conteggio LOC finale del software è sconosciuto.
mmyer,

5
Allora perché la maggior parte dei prodotti Microsoft mi dà la sensazione di essere incatenato per un aereo che sta lottando per scendere dalla pista?
Sharpie,

86

Ci sono 2 problemi gravi nell'informatica: invalidazione della cache, denominazione delle cose ed errori off-by-1.

    - Leon Bambrick (@ secretGeek )

(In realtà, tutto da http://q4td.blogspot.com/search/label/programming visto che cura l'elenco.)


Non ho mai visto una citazione sottolineare quanto possano essere difficili le denominazioni. Sento un'improvvisa solidarietà.
CodexArcanum,

Sono 3 cose. I primi due sono la citazione originale di Phil Karlton. @CodexArcanum. Nominare bene le cose è il trucco.
Stuper Utente

@StuperUser whooosh! ti sei perso lo scherzo!
Agos,

Ci sono voluti due secondi per ottenerlo dopo averlo sottolineato. Herp derp.
Stuper:

85

Nove persone non possono fare un bambino in un mese.
  - Fred Brooks, The Mythical Man-Month


14
tecnicamente: 18 persone non possono fare un bambino in un mese
Here Be Wolves,

13
@HereBeWolves o 10
WalterJ89

14
Cosa c'è di sbagliato in 1 ragazzo e 8 donne? Sembra quasi giusto per me.

4
Se andiamo per gemelli o terzine abbiamo bisogno di meno donne.

12
Mentre il primo bambino subirà una latenza di 9 mesi, le pipeline adeguate continueranno a consegnare 1 al mese ...
Brian Knoblauch,

82

Noi dovremmo dimenticare piccole efficienze, dire circa il 97% del tempo: l'ottimizzazione prematura è la radice di tutti i mali. Tuttavia non dovremmo rinunciare alle nostre opportunità in quel 3% critico.
  - Donald Knuth, Programmazione strutturata con go to Statements , JACM Computing Surveys, Vol 6, No. 4, Dec. 1974, p.268

Questo viene estratto dai due paragrafi seguenti, che non solo spiegano perché giunge alla conclusione di cui sopra, ma forniscono informazioni su come evitare questo errore:

Non c'è dubbio che il graal dell'efficienza porti ad abusi. I programmatori sprecano enormi quantità di tempo pensando o preoccupandosi della velocità delle parti non critiche dei loro programmi e questi tentativi di efficienza hanno effettivamente un forte impatto negativo quando si considerano il debug e la manutenzione. Noi dovremmo dimenticare piccole efficienze, dire circa il 97% del tempo: l'ottimizzazione prematura è la radice di tutti i mali.

Tuttavia non dovremmo rinunciare alle nostre opportunità in quel 3% critico. Un buon programmatore non si crogiolerà in tale compiacimento, sarà saggio guardare attentamente il codice critico; ma solo dopo che quel codice è stato identificato. Spesso è un errore dare giudizi a priori su quali parti di un programma sono veramente critiche, poiché l'esperienza universale dei programmatori che hanno utilizzato strumenti di misurazione è stata che le loro ipotesi intuitive falliscono. (...)


2
@Roger Pate: sospetto che tu abbia ragione, la maggior parte delle persone non si rende conto che c'è di più nella citazione.
Scott Dorman,

5
Spero non ti dispiaccia che ho incluso un po 'di più. Penso che sia davvero importante e forse questo incoraggerà di più a leggere l'intero documento. :)

@Roger Pate: Niente affatto!
Scott Dorman,

5
+1 Grazie per il preventivo completo. Non so mai che ci fosse altro.
Evan Plaice,

2
È fantastico che tu abbia pubblicato l'intera citazione. Molte persone conoscono solo la versione di ordinamento e non hanno idea di cosa intendesse Knuth.
DasIch,

80

I debugger non rimuovono i bug. Li mostrano solo al rallentatore.

- Sconosciuto


35
O in molti casi, falli smettere di apparire interamente.
Graeme Perrow,

12
@Graeme quei casi si chiamano Heisenbugs :)
Here Be Wolves,

76

Il primo 90% del codice rappresenta il primo 90% del tempo di sviluppo. Il restante 10% del codice rappresenta l'altro 90% del tempo di sviluppo.

- Tom Cargill


Chi l'ha detto inizialmente?
Paddyslacker

10
Penso che scoprirai che il 90% del codice impiega il 90% delle volte e l'ultimo 10% del codice impiega l'altro 90% delle volte.
FacticiusVir


1
Lo so: il 20% dei compagni beve l'80% di birra.
Zzz,

1
Personalmente, direi che il primo 90% del codice rappresenta il primo 90% del tempo di sviluppo. Quindi, il restante 90% del codice rappresenta l'altro 90% del tempo di sviluppo.
Kaz Dragon,

70

Se Java avesse una vera garbage collection, la maggior parte dei programmi si cancellerebbe dopo l'esecuzione.
  - Robert Sewell


22
divertente, mi ha fatto solo pensare a php.
WalterJ89,

2
@ WalterJ89: non preoccuparti! Fino a PHP 5.3, PHP viene ricontattato.
zneak,

Mi piace questa!
MDV2000,

@ WalterJ89 Beh, non vedo alcun motivo per individuare Java al contrario di COBOL, C ++, VB o altri.
Segna C

69

L'informatica non riguarda più i computer di quanto l'astronomia riguardi i telescopi

- Edsger Dijkstra


4
Sì, ma si suppone che riguardi la programmazione , non l'informatica. [ghigno astuto]
Marco C

La programmazione è solo applicare le conoscenze raccolte con l'informatica. Non hai bisogno di un computer per programmare, almeno non uno come la maggior parte ha familiarità.
DasIch il

Ho sempre sentito che la cosa più fastidiosa della programmazione è che non riesco a separarla dai computer.
LoveMeSomeCode

57

Se il debug è il processo di rimozione dei bug del software, allora la programmazione deve essere il processo per inserirli.
  - Edsger Dijkstra


24
Ecco perché mi piace fare riferimento al mio lavoro come abbraccio .
Inganno il

9
E manutenzione come rebugging ?
Joe D,

1
@JoeD No, "bugwatching".
Marco C

56

Esistono solo due tipi di lingue: quelle di cui le persone si lamentano e quelle che nessuno usa

- Bjarne Stroustrup


15
pessima scusa per suckage C ++
hasen

3
C # è un evidente contro-esempio.
Timwi,

7
E VB rientra in entrambe le categorie.
Rapido Joe Smith,

48

La cosa migliore di un booleano è che, anche se ti sbagli, sei solo un po 'fuori. - (Anonimo)


La cosa peggiore è che non puoi sbagliare di più?
POSIX_ME_HARDER

46

In due occasioni mi è stato chiesto: "Prega, signor Babbage, se metti nella macchina figure sbagliate, usciranno le risposte giuste?" In un caso un membro dell'Alta Camera e nell'altro un membro della Camera bassa hanno posto questa domanda. Non sono in grado di comprendere giustamente il tipo di confusione di idee che potrebbe suscitare una simile domanda.
  - Charles Babbage

Probabilmente il primo caso documentato di un programmatore che incontra stupide domande da parte dell'utente.


5
Sembra un'idea T-Shirt! "Errore utente: errore nel 1832". (Data?)
Segna C

42

Ho sempre desiderato che il mio computer fosse facile da usare come il mio telefono; il mio desiderio si è avverato perché non riesco più a capire come usare il mio telefono

- Bjarne Stroustrup


42

Parla tutto fino a quando il codice non viene eseguito.
  - Ward Cunningham


39

Il supporto Unicode non è una "caratteristica". È un comportamento previsto.

Certo, è molto specifico, ma è il mio preferito perché i set di caratteri obsoleti sono ancora troppo ampiamente utilizzati ...


3
Ora devi solo discutere su quale unicode
Martin Beckett il

@Martin: Non proprio, perché la conversione tra i vari tipi è senza perdita.
Billy ONeal,

Aargh il dolore! Perché devo discutere con un cliente che no, non possiamo "solo" passare l'intera infrastruttura a Latin-1 per renderlo infinitamente più conveniente per lui? "Dopotutto, nessuno qui usa quegli strani personaggi speciali; non può essere così difficile, vero?"
Piskvor,

39

Commentare il tuo codice è come pulire il tuo bagno: non vorrai mai farlo, ma crea davvero un'esperienza più piacevole per te e i tuoi ospiti.

- Ryan Campbell


1
Meh ... La maggior parte dei commenti che ho incontrato nella mia vita sono scritti
partendo

Puoi pulire il bagno, ma se la doccia ha solo acqua fredda e il lavandino non ha sapone, sarà un'esperienza spiacevole. Scrivi un codice che legge facilmente anziché scrivere grandi commenti per spiegare le cose.
Keyo,

Trovo davvero divertente commentare. A volte inserisco commenti importanti in piccole scatole ordinate fatte di asterischi e barre. Poi di nuovo, sono un mostro.
Maxpm

2
Mi piace anche scrivere commenti, ma non vorresti vedere il mio bagno.
Timwi,

Una volta ero in un bagno in cui c'erano commenti molto lunghi su come e perché dovresti mantenere pulito il bagno. Non era pulito
Rei Miyasaka,


35

La programmazione è come il sesso: un errore e devi sostenerlo per il resto della tua vita.
  - Michael Sinz


34

Il semble que la perfezione attira non quand il ny a plus rien à ajouter, mais quand il n'y a plus rien à retrancher.
  - Antoine de Saint-Exupéry, scrittore francese (1900-1944), Terre des Hommes (1939)

(Sembrerebbe che la perfezione non sia raggiunta quando non c'è più niente da aggiungere, ma quando non c'è più niente da togliere.)


Ed è valido anche per la musica
Heinz Z.


2
@David Kendal: Bello! Allo stesso modo, Henry David Thoreau disse: "Semplifica, semplifica". Il che mi fa sempre pensare "Semplifica".
Bill Karwin,

33

Java è JavaScript come l'auto è moquette.
  - Chris Heilmann


C'è tappeto nella mia macchina, quindi c'è Java in Java?
Keyo,

1
@Keyo: Sì, ho pensato a quella versione. Penso ancora che la citazione sia davvero intelligente.
Bill Karwin,

31

Come formulato da Eric S. Raymond :

Legge di Linus

Data una base beta-tester e co-sviluppatore abbastanza ampia, quasi ogni problema verrà caratterizzato rapidamente e la soluzione ovvia per qualcuno.

O, meno formalmente,

Dato abbastanza bulbi oculari, tutti i bug sono poco profondi.


mi sembra un po 'la regola della scimmia / macchina da scrivere ...
Sean Patrick Floyd,

Perché gli appassionati di Linux sembrano passare più tempo a ripetere questa citazione che a correggere i bug?
Timwi,

Oppure, lo slogan di Atwood per StackOverflow, "Nessuno di noi è stupido come tutti noi". Vedi codinghorror.com/blog/2008/09/…
Evan Plaice,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.