Quelle est votre citation préférée sur la programmation? [fermé]


Réponses:


231

Le débogage est deux fois plus difficile que d'écrire le code en premier lieu. Par conséquent, si vous écrivez le code aussi intelligemment que possible, vous n'êtes pas, par définition, assez intelligent pour le déboguer.

- Brian W. Kernighan


Chaque fois que j'écris un code intelligent, je me rappelle cette règle et jette un regard en arrière pour voir si je ne peux pas faire les choses d'une manière plus simple, qu'il sera plus facile de maintenir plus tard, ou du moins d'ajouter quelques commentaires. .
CodexArcanum

6
Un corollaire d'une maxime sinon vraie: N'oubliez pas qu'un diagramme peut augmenter la puissance de votre cerveau. Vous pouvez échanger la "structure de la grande chose" en papier non volatile.
Tim Williscroft

1
J'aime la citation mais l'implication est que nous devrions tout au plus consacrer 50% de nos efforts au codage.
Jon Hopkins

4
Je pense que l'implication est que vous devriez éviter l'envie de ce programmeur d'utiliser la "façon intelligente" de faire quelque chose lorsque la façon légèrement plus longue et plus évidente de faire quelque chose fonctionne très bien.
Fishtoaster

2
Mais que faire si c'est du code "parfait"? Il n'y a aucun moyen de "déboguer" cela.
Mateen Ulhaq 12.12.10

183

Marcher sur l'eau et développer un logiciel à partir d'une spécification sont faciles si les deux sont gelés.

- Edward V Bérard


Citation de l'année, je vais utiliser celui-ci
Gortron

Je déteste celui-ci. Ce n'est jamais le cas, alors qui s'en soucie?
JP Alioto

138

Cela prend toujours plus de temps que prévu, même en tenant compte de la loi de Hofstadter.
  - Loi de Hofstadter


72
Débordement de pile de cerveau.
Nathan Taylor

3
@ Joe D: Je suis curieux de voir comment vous pourriez réécrire une phrase anglaise récursive en une seule phrase non récursive.
Jon Purdy

4
Il peut converger pour des valeurs suffisantes de "plus longtemps"
mouviciel

3
+1 - Je suis fier de compter parmi les meilleurs programmeurs aux côtés de Douglas Hofstadter.
Peter Turner

@gf: Lorsqu'il est transformé en définition de la source par la suite (avec un tiret), l'introduction principale n'est pas justifiée ("A: Blah." -> "Blah. - A"). Cela ne supprime pas une partie de la citation.

126

Codez toujours comme si le gars qui finissait par maintenir votre code serait un psychopathe violent qui sait où vous habitez.

- Rick Osborne


12
il semble que je finisse toujours par maintenir le code et que j'aimerais savoir où habite le créateur, mais c'est probablement une bonne chose que je ne fasse pas.
WalterJ89

Donne un nouveau sens au terme "application tueur". Il semble que je finisse toujours par maintenir le code du psychopathe après son incarcération.
Webbiedave

8
@webbiedave Vous travaillez sur ReiserFS? :)
Neil Aitken

La compagnie doit vraiment vous détester si le tueur a obtenu votre travail.
Mateen Ulhaq 12.12.10

118

Vous pouvez avoir le projet:

  • Fait à l'heure
  • Fait sur le budget
  • Fait correctement

Choisis en deux.

- Inconnu



5
Cela me rappelle un triangle similaire, mais avec des femmes. "Vous pouvez avoir une petite amie qui: Est intelligente, est attrayante, a une bonne personnalité."
Maxpm

N'oubliez pas qu'il existe des exceptions, même si elles sont rares - ne comptez pas dessus.
Mircea Chirea

5
@Maxpm: La version que j'ai entendue était "The 4 S's: Smart, Sexy, Sane, Single. Pick 3."
Mason Wheeler

1
Donc, quand il n'y a pas de contraintes de temps et de budget, vous ne pouvez pas le faire correctement. Bon à savoir.
Antsan

111

Certaines personnes, confrontées à un problème, pensent "Je sais, je vais utiliser des expressions régulières."
Maintenant, ils ont deux problèmes.

- Jamie Zawinski


5
Un classique intemporel
Factor Mystic

5
Certaines personnes, confrontées à un problème, pensent "Je sais, je vais utiliser <une implémentation de résolution de problème>". Maintenant, ils ont deux problèmes.
Callum Rogers

40
Certaines personnes confrontées à un problème ne pensent pas, elles postent simplement sur StackOverflow
Matt Ellen

5
Certaines personnes ne comprennent pas les expressions régulières et les détestent parce que d'autres le font.
Orbling

3
@Yar - Je n'ai jamais trouvé la syntaxe obtuse personnellement et la densité est une bonne chose. Pourquoi exprimer quelque chose comme une correspondance de motif dans un format plus détaillé? Lorsque la clarté est requise pour quelque chose de compliqué, le mode étendu peut être utilisé avec des commentaires.
Orbling

110

En théorie, il n'y a pas de différence entre théorie et pratique. Mais, dans la pratique, il y en a.

- Jan LA van de Snepscheut


27
J'ai aussi entendu "La différence entre la théorie et la pratique est moins grande en théorie qu'en pratique."

1
La formulation de Roger Pate est celle que j'ai entendue, écrite par Olin Shivers dans "History of T". Paul Graham en parle ici: paulgraham.com/thist.html
Michael H.

2
Je dirais que si une théorie ne se traduit pas en pratique, la théorie est simplement incomplète.
Rei Miyasaka

105

Vous pouvez utiliser une gomme sur la table à dessin ou une masse sur le chantier - Frank Lloyd Wright

Ce n'est pas vraiment une citation de programmation, mais elle s'applique très certainement.


14
Hautement applicable OMI
John MacIntyre le

3
Heureusement pour nous, lorsque la plupart des logiciels tournent mal, ils ne s'effondrent pas et ne tuent pas les gens.
Neil Aitken le

8
Sauf quand il fait exploser une Ariane 5 (vol 501), ou dose des niveaux
extrêmement

2
Ironiquement, je pense que de nombreux immeubles plus complexes de Frank Lloyd Wright sont tombés en ruine.
Maxpm

1
@TomWij, @Walter, @Roger: Merci de ne pas salir ce site avec votre métatalk. Si je voulais entendre des querelles, je visiterais meta.stackoverflow.com. C'est là que vous devriez avoir cette conversation fascinante et intemporelle.
Dan Rosenstark

103

La programmation actuelle est une course féroce entre les ingénieurs en logiciel qui cherchent à créer des programmes plus gros et plus efficaces contre les imbéciles, et l’Univers qui tente de produire des idiots plus grands et meilleurs. Jusqu'à présent, l'univers gagne.

- Rick Cook


98

Mesurer l’avancement de la programmation à l’aide de lignes de code revient à mesurer l’avancement de la construction d’un avion en poids.
  - Bill Gates



3
Cela est vrai à plusieurs niveaux. Une gemme.

3
La principale différence étant, bien entendu, que la masse finale de l'aéronef est connue et que le décompte final du logiciel par le logiciel est inconnu.
mmyers

5
Alors, pourquoi la plupart des produits Microsoft me donnent-ils le sentiment que je suis enchaîné à un avion qui a du mal à sortir de la piste?
Sharpie

86

Il existe 2 problèmes difficiles en informatique: l'invalidation du cache, l'attribution de noms et les erreurs off-by-1.

    - Léon Bambrick (@ secretGeek )

(En fait, tout ce qui se trouve sur http://q4td.blogspot.com/search/label/programming vu que je gère la liste.)


Je n'ai jamais vu de citation montrer à quel point il peut être difficile de nommer les choses. Je ressens une soudaine solidarité.
CodexArcanum

C'est 3 choses. Les deux premiers sont la citation originale de Phil Karlton. @ CodexArcanum. Nommer les choses bien est le truc.
StuperUser

Whooosh @StuperUser! vous avez manqué la blague!
Agos

Il a fallu deux secondes pour l'obtenir une fois que vous l'avez signalé. Herp Derp.
StuperUser

85

Neuf personnes ne peuvent pas faire un bébé en un mois.
  - Fred Brooks, Le mois mythique de l'homme


14
techniquement: 18 personnes ne peuvent pas faire un bébé en un mois
Here Be Wolves

13
@HereBeWolves or 10
WalterJ89

14
Quel est le problème avec 1 gars et 8 dames? Cela me semble juste.

4
Si nous choisissons des jumeaux ou des triplés, nous aurons besoin de moins de femmes.

12
Alors que le premier bébé souffrira de 9 mois de latence, le traitement en pipeline continuera à en fournir 1 par mois ...
Brian Knoblauch

82

Nous devrions oublier les petites efficacités, disons environ 97% du temps: l'optimisation prématurée est la racine de tout mal. Pourtant, nous ne devrions pas laisser passer nos opportunités dans ces 3% critiques.
  - Donald Knuth, Programmation structurée , voir Déclarations , Enquêtes informatiques de la JACM, Vol 6, n ° 4, décembre 1974, p. 268.

Ceci est extrait des deux paragraphes ci-dessous, qui non seulement explique pourquoi il en vient à la conclusion ci-dessus, mais explique également comment éviter cette erreur:

Il ne fait aucun doute que le graal de l'efficacité conduit à des abus. Les programmeurs perdent énormément de temps à réfléchir à la vitesse des parties non critiques de leurs programmes, ou à s’inquiéter de ceux-ci, et ces tentatives d’efficacité ont en réalité un impact très négatif sur le débogage et la maintenance. Nous devrions oublier les petites efficacités, disons environ 97% du temps: l'optimisation prématurée est la racine de tout mal.

Pourtant, nous ne devrions pas laisser passer nos opportunités dans ces 3% critiques. Un bon programmeur ne se laissera pas aller à la complaisance par un tel raisonnement, il sera sage de regarder attentivement le code critique; mais seulement après que ce code a été identifié. C'est souvent une erreur de juger a priori des parties d'un programme qui sont vraiment essentielles, car l'expérience universelle des programmeurs qui utilisent des outils de mesure est que leurs suppositions intuitives échouent. (…)


2
@ Roger Pate: Je suppose que vous avez raison, la plupart des gens ne réalisent pas qu'il y a plus dans la citation.
Scott Dorman

5
J'espère que ça ne vous dérange pas que j'en ai inclus un peu plus. Je pense que c'est vraiment important et que cela encouragera peut-être plus de personnes à lire le texte intégral. :)

@ Roger Pate: Pas du tout!
Scott Dorman

5
+1 Merci pour la citation complète. Je ne sais jamais il y avait plus.
Evan Plaice

2
C'est bien que vous ayez posté l'intégralité de la citation. Beaucoup de gens connaissent la version de ce type et n'ont aucune idée de ce que Knuth voulait réellement dire par là.
DasIch

80

Les débogueurs ne suppriment pas les bogues. Ils ne les montrent qu'au ralenti.

- Inconnu


35
Ou dans de nombreux cas, faites-les cesser d'apparaître complètement.
Graeme Perrow

12
@Graeme ces cas s'appellent Heisenbugs :)
Here Be Wolves

76

Les premiers 90% du code représentent les premiers 90% du temps de développement. Les 10% restants du code représentent les 90% restants du temps de développement.

- Tom Cargill


Qui a dit ça à l'origine?
Paddyslacker

10
Je pense que vous constaterez que 90% du code prend 90% du temps, et les 10% restants, 90% du code.
FacticiusVir

2
Tom Cargill des laboratoires Bell: fr.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin

1
Je le sais: 20% des copains boivent 80% de la bière.
Zzz

1
Personnellement, je dirais que les premiers 90% du code représentent les premiers 90% du temps de développement. Ensuite, les 90% restants du code représentent les 90% restants du temps de développement.
Kaz Dragon

70

Si Java disposait d’un véritable système de récupération de place, la plupart des programmes s’effaceraient lors de l’exécution.
  - Robert Sewell


22
drôle, vient de me faire penser à php.
WalterJ89

2
@ WalterJ89: Ne vous inquiétez pas! Jusqu'a PHP 5.3, PHP est refcounted.
zneak

J'aime celui la!
MDV2000

@ WalterJ89 Eh bien, je ne vois aucune raison de choisir Java plutôt que COBOL, C ++, VB ou autres.
Mark C

69

L'informatique n'est pas plus une affaire d'informatique que l'astronomie est une affaire de télescope

- Edsger Dijkstra


4
Oui, mais cela est censé être une question de programmation , pas d'informatique. [sourire sournois]
Mark C

La programmation consiste simplement à appliquer les connaissances acquises grâce à l'informatique. Vous n'avez pas besoin d'un ordinateur pour programmer, du moins pas un ordinateur comme le savent la plupart des gens.
DasIch

J'ai toujours pensé que le problème avec la programmation est que je ne peux pas la séparer des ordinateurs.
LoveMeSomeCode

57

Si le débogage est le processus de suppression des bogues logiciels, la programmation doit être le processus de leur
  insertion . - Edsger Dijkstra


24
C'est pourquoi j'aime qualifier mon travail d' enbogging .
Déceze

9
Et la maintenance comme rebugging ?
Joe D

1
@ JoeD Non, "bugwatching".
Marc C

56

Il n'y a que deux types de langues: celles que les gens se plaignent et celles que personne n'utilise

- Bjarne Stroustrup


15
mauvaise excuse pour C ++ suckage
hasen

3
C # est un contre-exemple évident.
Timwi

7
Et VB entre dans les deux catégories.
Rapide Joe Smith

48

La meilleure chose à propos d'un booléen est que même si vous vous trompez, vous n'êtes qu'un peu en retrait. - (Anonyme)


La pire chose est que vous ne pouvez pas avoir plus tort
POSIX_ME_HARDER le

46

À deux reprises, on m'a demandé: "Priez, M. Babbage, si vous mettez dans la machine des chiffres erronés, les bonnes réponses seront-elles données?" Dans un cas, un membre de la Haute Cour et dans l'autre un membre de la Chambre basse ont posé cette question. Je ne suis pas en mesure d'appréhender correctement le type de confusion d'idées susceptible de provoquer une telle question.
  - Charles Babbage

On peut dire que c'est le premier cas documenté d'un programmeur rencontrant des questions stupides de la part d'un utilisateur.


5
Cela ressemble à une idée de t-shirt! "Erreur d'utilisateur: Encrassement des choses depuis 1832". (Date?)
Mark C

42

J'ai toujours souhaité que mon ordinateur soit aussi facile à utiliser que mon téléphone; mon souhait s'est réalisé parce que je ne sais plus comment utiliser mon téléphone

- Bjarne Stroustrup


42

Tout est question jusqu'à ce que le code soit exécuté.
  - Ward Cunningham


39

Le support Unicode n'est pas une "fonctionnalité". C'est le comportement attendu.

Certes, c'est très spécifique, mais c'est mon préféré, car les jeux de caractères obsolètes sont encore trop utilisés ...


3
Il ne vous reste plus qu'à discuter de la nature de l'unicode
Martin Beckett

@Martin: Pas vraiment, car la conversion entre les différents types est sans perte.
Billy ONeal

Aargh la douleur! Pourquoi dois-je argumenter avec un client que non, nous ne pouvons pas "simplement" basculer toute notre infrastructure vers Latin-1 pour la rendre infiniment plus pratique pour lui? "Après tout, personne ici n'utilise ces caractères spéciaux étranges; ça ne peut pas être si difficile, non?"
Piskvor

39

Commenter votre code, c'est comme nettoyer votre salle de bain - vous ne voulez jamais le faire, mais cela crée vraiment une expérience plus agréable pour vous et vos invités.

- Ryan Campbell


1
Meh ... La plupart des commentaires que j'ai rencontrés dans ma vie sont écrits en
partant

Vous pouvez nettoyer la salle de bain, mais si la douche n'a que de l'eau froide et que le lavabo ne contient pas de savon, l'expérience sera désagréable. Écrivez un code qui se lit facilement plutôt que d'écrire d'énormes commentaires pour expliquer les choses.
Keyo

En fait, je trouve les commentaires assez agréables. Parfois, je mets des commentaires importants dans de petites boîtes bien ordonnées faites d’astérisques et de barres obliques. Là encore, je suis un monstre.
Maxpm

2
J'aime écrire des commentaires aussi, mais vous ne voudriez pas voir ma salle de bain.
Timwi

Une fois, j'étais dans une salle de toilette où il y avait de très longs commentaires sur la façon de garder les toilettes propres. Ce n'était pas propre.
Rei Miyasaka le

38

Le fou s'interroge, demande le sage.
  - Benjamin Disraeli



@TomWij: Voir mon commentaire de quand j'ai édité ceci, ces citations ont été scindées en réponses séparées.

35

La programmation, c'est comme le sexe: une erreur et vous devez la supporter pour le reste de votre vie.
  - Michael Sinz


34

Il semble que la perfection soit atteint avec plus rien à ajouter, mais quand il n'est plus rien à retrancher.
  - Antoine de Saint-Exupéry, écrivain français (1900-1944), Terre des Hommes (1939)

(Il semblerait que la perfection ne soit pas atteinte lorsqu'il ne reste plus rien à ajouter, mais lorsqu'il ne reste plus rien à enlever.)


Et il est également valable pour la musique
Heinz Z.


2
@ David Kendal: Nice! De même, Henry David Thoreau a déclaré: "Simplifiez, simplifiez." Ce qui me fait toujours penser, "Simplifiez".
Bill Karwin

33

Java est à JavaScript comme voiture est à tapis.
  - Chris Heilmann


Il y a des tapis dans ma voiture, donc il y a du Javascript dans Java?
Keyo

1
@Keyo: Oui, j'ai pensé à cela. Je pense toujours que la citation est vraiment intelligente.
Bill Karwin

31

Telle que formulée par Eric S. Raymond :

Loi de Linus

Avec une base de bêta-testeurs et de co-développeurs assez importante, presque chaque problème sera caractérisé rapidement et le correctif évident pour quelqu'un.

Ou, moins formellement,

Avec suffisamment de globes oculaires, tous les insectes sont superficiels.


Cela ressemble un peu à la règle du singe / de la machine à écrire pour moi ...
Sean Patrick Floyd

Pourquoi les passionnés de Linux semblent-ils passer plus de temps à répéter cette citation qu'à corriger les bugs?
Timwi

Ou encore, le slogan d'Atwood pour StackOverflow: "Aucun de nous n'est aussi bête que nous tous". Voir codinghorror.com/blog/2008/09/…
Evan Plaice
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.