Was ist dein Lieblingszitat zum Programmieren? [geschlossen]

Antworten:

231

Das Debuggen ist doppelt so schwierig wie das Schreiben des Codes. Wenn Sie den Code so geschickt wie möglich schreiben, sind Sie per Definition nicht schlau genug, um ihn zu debuggen.

- Brian W. Kernighan

Fishtoaster
quelle
Jedes Mal, wenn ich ein cleveres Stück Code schreibe, erinnere ich mich an diese Regel und schaue noch einmal darüber nach, ob ich die Dinge nicht auf einfachere Weise erledigen kann, die später einfacher zu pflegen sein werden, oder füge zumindest einige weitere Kommentare hinzu .
CodexArcanum
6
Ein Korolloar einer ansonsten wahren Maxime: Vergessen Sie nicht, dass ein Diagramm Ihre Gehirnleistung steigern kann. Sie können "Struktur der großen Sache merken" gegen nichtflüchtiges Papier austauschen.
Tim Williscroft
1
Ich mag das Zitat, aber die Konsequenz ist, dass wir höchstens 50% unseres Aufwands in die Programmierung stecken sollten.
Jon Hopkins
4
Ich denke, die Implikation ist, dass Sie den Drang des Programmierers vermeiden sollten, die 'clevere' Methode zu verwenden, um etwas zu tun, wenn die etwas längere, offensichtlichere Methode, etwas zu tun, gut funktioniert.
Fishtoaster
2
Aber was ist, wenn es sich um "perfekten" Code handelt? Es gibt keine Möglichkeit, das zu "debuggen".
Mateen Ulhaq
183

Das Laufen auf dem Wasser und das Entwickeln von Software aus einer Spezifikation ist einfach, wenn beide eingefroren sind.

- Edward V. Berard

Tobiasopdenbrouw
quelle
Zitat des Jahres, ich werde dieses verwenden
Gortron
Ich hasse diesen. Es ist nie der Fall, also wen interessiert das?
JP Alioto
138

Es dauert immer länger als erwartet, auch wenn Sie das Hofstädter-Gesetz berücksichtigen.
  - Hofstadter-Gesetz

nivlam
quelle
72
Brain Stack Overflow.
Nathan Taylor
3
@ Joe D: Ich bin gespannt, wie Sie einen rekursiven englischen Satz in einen einzigen nicht-rekursiven Satz umschreiben würden .
Jon Purdy
4
Es kann für ausreichend kleine Werte von "länger"
konvergieren
3
+1 - Ich bin stolz darauf, zusammen mit Douglas Hofstadter zu den Top-Milliarden-Programmierern zu gehören.
Peter Turner
@gf: Wenn es später (mit einem Bindestrich) in die Definition der Quelle umgewandelt wird, ist die führende Einführung nicht garantiert ("A: Blah." -> "Blah. - A"). Dies entfernt keinen Teil des Zitats.
126

Codieren Sie immer so, als wäre der Typ, der am Ende Ihren Code verwaltet, ein gewalttätiger Psychopath, der weiß, wo Sie leben.

- Rick Osborne

Wil
quelle
12
Es scheint, dass ich am Ende immer wieder Code pflege, von dem ich wünschte, ich wüsste, wo der Schöpfer gelebt hat, aber das ist wahrscheinlich eine gute Sache, die ich nicht tue.
WalterJ89,
Verleiht dem Begriff "Killer-App" eine neue Bedeutung. Es scheint, als würde ich den Code des Psychopathen nach seiner Inhaftierung immer beibehalten.
Webbiedave
8
@webbiedave Du arbeitest an ReiserFS? :)
Neil Aitken
Die Firma muss dich wirklich hassen, wenn der Mörder deinen Job hat.
Mateen Ulhaq
118

Sie können das Projekt haben:

  • Pünktlich erledigt
  • Fertig im Budget
  • Richtig gemacht

Wähle zwei aus.

- Unbekannt

Bobby
quelle
5
Erinnert mich an ein ähnliches Dreieck, aber mit Frauen. "Man kann eine Freundin haben, die: schlau ist, attraktiv ist, eine gute Persönlichkeit hat."
Maxpm
Vergessen Sie nicht, dass es Ausnahmen gibt, obwohl sie selten sind - rechnen Sie nicht damit.
Mircea Chirea
5
@Maxpm: Die Version, die ich gehört habe, war "Die 4 S: Smart, Sexy, Sane, Single. Pick 3."
Mason Wheeler
1
Wenn es also keine Zeit- und Budgetbeschränkungen gibt, können Sie es nicht richtig machen. Gut zu wissen.
Antsan
111

Einige Leute denken, wenn sie mit einem Problem konfrontiert werden: "Ich weiß, ich werde reguläre Ausdrücke verwenden."
Jetzt haben sie zwei Probleme.

- Jamie Zawinski

Noah Goodrich
quelle
5
Ein zeitloser Klassiker
Factor Mystic
5
Einige Leute denken, wenn sie mit einem Problem konfrontiert werden: "Ich weiß, ich werde <Implementierung zur Problemlösung> verwenden." Jetzt haben sie zwei Probleme.
Callum Rogers
40
Einige Leute, die mit einem Problem konfrontiert werden, denken nicht, dass sie einfach auf StackOverflow
Matt Ellen
5
Einige Leute verstehen reguläre Ausdrücke nicht und hassen sie, weil andere dies tun.
Orbling
3
@Yar - Ich persönlich habe die Syntax nie als stumpf empfunden, und die Dichte ist eine gute Sache. Warum sollte man so etwas wie eine Musterübereinstimmung in einem ausführlicheren Format ausdrücken? Wenn Klarheit für etwas Kompliziertes erforderlich ist, kann der erweiterte Modus mit Kommentaren verwendet werden.
Orbling
110

In der Theorie gibt es keinen Unterschied zwischen Theorie und Praxis. Aber in der Praxis gibt es.

- Jan LA van de Snepscheut

Walter
quelle
27
Ich habe auch gehört "Der Unterschied zwischen Theorie und Praxis ist in der Theorie kleiner als in der Praxis."
1
Roger Pates Formulierung ist die, die ich von Olin Shivers in "History of T" gehört habe. Paul Graham spricht hier darüber: paulgraham.com/thist.html
Michael H.
2
Ich würde sagen, wenn eine Theorie nicht in die Praxis umgesetzt werden kann, ist sie einfach unvollständig.
Rei Miyasaka
105

Sie können einen Radiergummi auf dem Zeichentisch oder einen Vorschlaghammer auf der Baustelle verwenden - Frank Lloyd Wright

Nicht gerade ein Programmierungszitat, aber es gilt mit Sicherheit.

Tom Wijsman
quelle
14
Gut anwendbar IMO
John MacIntyre
3
Zum Glück kollabiert die meiste Software nicht und bringt Menschen um.
Neil Aitken
8
Außer wenn es eine Ariane 5 (Flug 501)
jagt
2
Ironischerweise glaube ich, dass viele der gewundenen Gebäude von Frank Lloyd Wright verfallen sind.
Maxpm
1
@TomWij, @Walter, @Roger: Bitte verschmutzen Sie diese Site nicht mit Ihrem Metatalk. Wenn ich Streit hören wollte, würde ich meta.stackoverflow.com besuchen. Hier sollten Sie dieses faszinierende und zeitlose Gespräch führen.
Dan Rosenstark
103

Das heutige Programmieren ist ein Wettlauf zwischen Software-Ingenieuren, die sich bemühen, größere und bessere idiotensichere Programme zu entwickeln, und dem Universum, das versucht, größere und bessere Idioten zu produzieren. Bisher gewinnt das Universum.

- Rick Cook

Jonas
quelle
98

Das Messen des Programmierfortschritts anhand von Codezeilen entspricht dem Messen des Flugzeugbaufortschritts anhand des Gewichts.
  - Bill Gates

ahsteele
quelle
3
Dies gilt auf mehreren Ebenen. Ein Edelstein.
3
Der Hauptunterschied besteht natürlich darin, dass das endgültige Gewicht des Flugzeugs bekannt ist, während die endgültige LOC-Zählung der Software unbekannt ist.
mmyers
5
Warum vermitteln mir die meisten Microsoft-Produkte das Gefühl, mit dem Fuß an ein Flugzeug angekettet zu sein, das Schwierigkeiten hat, von der Startbahn zu kommen?
Sharpie
86

In der Informatik gibt es zwei schwierige Probleme: die Ungültigkeit des Cache, die Benennung von Dingen und 1-malige Fehler.

    - Leon Bambrick (@ secretGeek )

(Eigentlich alles von http://q4td.blogspot.com/search/label/programming , da ich die Liste kuratiere.)

Evan
quelle
Ich habe noch nie ein Zitat gesehen, das darauf hinweist, wie schwierig es sein kann, Dinge zu benennen. Ich fühle eine plötzliche Solidarität.
CodexArcanum
Das sind 3 Dinge. Die ersten beiden sind das Originalzitat von Phil Karlton. @CodexArcanum. Dinge gut zu benennen ist der Trick.
StuperUser
@StuperUser whooosh! Du hast den Witz verpasst!
Vor
Es hat zwei Sekunden gedauert, bis Sie darauf hingewiesen haben. Ich Idiot.
StuperUser
85

Neun Menschen können in einem Monat kein Baby bekommen.
  - Fred Brooks, der mythische Mann-Monat

größer
quelle
14
technisch gesehen: 18 Menschen können in einem Monat kein Baby bekommen
Here Be Wolves
13
@ HierBeWolves oder 10
WalterJ89
14
Was ist los mit 1 Mann und 8 Damen? Klingt für mich fast richtig.
4
Wenn wir Zwillinge oder Drillinge anstreben, brauchen wir weniger Frauen.
12
Während das erste Baby eine Wartezeit von 9 Monaten hat, liefert das richtige Pipelining weiterhin 1 pro Monat ...
Brian Knoblauch
82

Wir sollten kleine Wirkungsgrade vergessen, sagen wir in 97% der Fälle: Vorzeitige Optimierung ist die Wurzel allen Übels. Dennoch sollten wir unsere Chancen bei diesen kritischen 3% nicht verpassen.
  - Donald Knuth, Structured Programming with go to Statements , JACM Computing Surveys, Bd. 6, Nr. 4, Dezember 1974, S. 268

Dies ergibt sich aus den beiden folgenden Absätzen, in denen nicht nur erläutert wird, warum er zu der obigen Schlussfolgerung gelangt, sondern auch Informationen dazu bereitgestellt werden , wie dieser Fehler vermieden werden kann:

Es besteht kein Zweifel, dass der Gral der Effizienz zu Missbrauch führt. Programmierer verschwenden enorm viel Zeit damit, über die Geschwindigkeit unkritischer Teile ihrer Programme nachzudenken oder sich Gedanken zu machen, und diese Effizienzversuche wirken sich bei der Prüfung von Debugging und Wartung stark negativ aus. Wir sollten kleine Wirkungsgrade vergessen, sagen wir in 97% der Fälle: Vorzeitige Optimierung ist die Wurzel allen Übels.

Dennoch sollten wir unsere Chancen bei diesen kritischen 3% nicht verpassen. Ein guter Programmierer wird durch solche Überlegungen nicht zur Selbstzufriedenheit gebracht. aber erst nachdem dieser Code identifiziert wurde. Es ist oft ein Fehler, von vornherein zu beurteilen, welche Teile eines Programms wirklich kritisch sind, da die universelle Erfahrung von Programmierern, die Messwerkzeuge verwendet haben, darin bestand, dass ihre intuitiven Vermutungen fehlschlagen. (…)

Scott Dorman
quelle
2
@ Roger Pate: Ich vermute, Sie haben recht, die meisten Leute wissen nicht, dass das Zitat mehr enthält.
Scott Dorman
5
Hoffe es macht dir nichts aus, dass ich ein bisschen mehr aufgenommen habe. Ich denke, es ist wirklich wichtig und vielleicht wird dies mehr dazu ermutigen, die ganze Zeitung zu lesen. :)
@ Roger Pate: Überhaupt nicht!
Scott Dorman
5
+1 Danke für das vollständige Zitat. Ich weiß nie, dass mehr dahinter steckt.
Evan Plaice
2
Es ist großartig, dass Sie das gesamte Angebot veröffentlicht haben. Viele Leute kennen nur die Sortierversion und haben keine Ahnung, was Knuth damit eigentlich gemeint hat.
DasIch
80

Debugger entfernen keine Fehler. Sie zeigen sie nur in Zeitlupe.

- Unbekannt

pramodc84
quelle
35
Oder lassen Sie sie in vielen Fällen nicht mehr vollständig angezeigt werden.
Graeme Perrow
12
@ Graeme diese Fälle heißen Heisenbugs :)
Here Be Wolves
76

Die ersten 90% des Codes machen die ersten 90% der Entwicklungszeit aus. Die restlichen 10% des Codes machen die restlichen 90% der Entwicklungszeit aus.

- Tom Cargill

Roger Pate
quelle
Wer hat das ursprünglich gesagt?
Paddyslacker
10
Ich denke, Sie werden feststellen, dass 90% des Codes 90% der Zeit beanspruchen und die letzten 10% des Codes die restlichen 90% der Zeit.
FacticiusVir
2
Tom Cargill von Bell Labs: en.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin
1
Ich weiß das: 20% Kumpels trinken 80% Bier.
Zzz
1
Persönlich würde ich sagen, dass die ersten 90% des Codes die ersten 90% der Entwicklungszeit ausmachen. Die restlichen 90% des Codes machen dann die restlichen 90% der Entwicklungszeit aus.
Kaz Dragon
70

Wenn Java eine echte Garbage Collection hätte, würden sich die meisten Programme beim Ausführen selbst löschen.
  - Robert Sewell

größer
quelle
22
lustig, habe mich nur an php denken lassen.
WalterJ89
2
@ WalterJ89: Mach dir keine Sorgen! Bis PHP 5.3 wird PHP neu gezählt.
Zneak
Ich mag dieses!
MDV2000,
@ WalterJ89 Nun, ich sehe keinen Grund, Java im Gegensatz zu COBOL, C ++, VB oder anderen herauszustellen.
Mark C
69

In der Informatik geht es nicht mehr um Computer als in der Astronomie um Teleskope

- Edsger Dijkstra

größer
quelle
4
Ja, aber es soll um Programmieren gehen , nicht um Informatik. [schlau grinsen]
Mark C
Beim Programmieren wird nur das in der Informatik gesammelte Wissen angewendet. Sie brauchen keinen Computer, um zu programmieren, zumindest nicht einen, mit dem die meisten vertraut sind.
DasIch
Ich war immer der Meinung, dass das Ärgerlichste an der Programmierung ist, dass ich sie nicht von Computern trennen kann.
LoveMeSomeCode
57

Wenn das Debuggen das Entfernen von Softwarefehlern ist, muss das Programmieren das Einfügen dieser Fehler sein.
  - Edsger Dijkstra

pramodc84
quelle
24
Aus diesem Grund bezeichne ich meinen Job gerne als nervenaufreibend .
Betrügen Sie den
9
Und Wartung als Rebugging ?
Joe D
1
@ JoeD Nein, "Bugwatching".
Mark C
56

Es gibt nur zwei Arten von Sprachen: die, über die sich die Leute beschweren, und die, die niemand benutzt

- Bjarne Stroustrup

größer
quelle
15
schlechte Entschuldigung für C ++ suckage
hasen
3
C # ist ein offensichtliches Gegenbeispiel.
Timwi
7
Und VB fällt in beide Kategorien.
Quick Joe Smith
48

Das Beste an einem Booleschen ist, selbst wenn Sie sich irren, sind Sie nur ein bisschen daneben. - (anonym)

pramodc84
quelle
Das Schlimmste ist, dass Sie sich nicht mehr irren können?
POSIX_ME_HARDER 24.04.11
46

Bei zwei Gelegenheiten wurde ich gefragt: "Beten Sie, Herr Babbage, wenn Sie falsche Zahlen in die Maschine eingeben, werden die richtigen Antworten herauskommen?" In einem Fall hat ein Mitglied des Oberhauses und im anderen ein Mitglied des Unterhauses diese Frage gestellt. Ich bin nicht in der Lage, die Art von Ideenverwirrung zu erfassen, die eine solche Frage provozieren könnte.
  - Charles Babbage

Wahrscheinlich der erste dokumentierte Fall eines Programmierers, der auf dumme Benutzerfragen stößt.

Jay
quelle
5
Klingt nach einer T-Shirt Idee! "Benutzerfehler: Fehler seit 1832". (Datum?)
Mark C
42

Ich habe mir immer gewünscht, dass mein Computer so einfach zu bedienen ist wie mein Telefon. Mein Wunsch ist in Erfüllung gegangen, weil ich nicht mehr herausfinden kann, wie ich mit meinem Telefon umgehen soll

-- Bjarne Stroustrup

größer
quelle
42

Es wird solange geredet, bis der Code ausgeführt wird.
  - Ward Cunningham

Walter
quelle
39

Unicode-Unterstützung ist kein "Feature". Es wird Verhalten erwartet.

Zugegeben, es ist sehr spezifisch, aber es ist mein Favorit, weil veraltete Zeichensätze immer noch zu weit verbreitet sind ...

Timwi
quelle
3
Jetzt muss man sich nur noch über den Unicode streiten
Martin Beckett
@Martin: Nicht wirklich, da die Konvertierung zwischen den verschiedenen Arten verlustfrei ist.
Billy ONeal
Aargh der Schmerz! Warum muss ich mit einem Kunden darüber streiten, dass wir nicht "nur" unsere gesamte Infrastruktur auf Latin-1 umstellen können, um es für ihn unendlich bequemer zu machen? "Schließlich benutzt hier niemand diese seltsamen Sonderzeichen; kann doch nicht so schwer sein, oder?"
Piskvor
39

Das Kommentieren Ihres Codes ist wie das Reinigen Ihres Badezimmers - Sie möchten es nie tun, aber es schafft wirklich eine angenehmere Erfahrung für Sie und Ihre Gäste.

- Ryan Campbell

Coder Hawk
quelle
1
Meh ... Die meisten Kommentare, auf die ich in meinem Leben gestoßen bin, wurden unter der Annahme geschrieben, dass Kommentare schlecht geschriebenen Code
ausgleichen können
Sie können das Badezimmer reinigen, aber wenn die Dusche nur kaltes Wasser und das Waschbecken keine Seife hat, wird es eine unangenehme Erfahrung sein. Schreiben Sie Code, der leicht zu lesen ist, anstatt große Kommentare zu verfassen, um die Dinge zu erklären.
Keyo
Eigentlich finde ich das Kommentieren ganz angenehm. Manchmal füge ich wichtige Kommentare in kleine Kästchen ein, die aus Sternchen und Schrägstrichen bestehen. Andererseits bin ich ein Freak.
Maxpm
2
Ich schreibe auch gerne Kommentare, aber Sie möchten nicht mein Badezimmer sehen.
Timwi
Ich war einmal in einem Waschraum, wo es wirklich langatmige Kommentare gab, wie und warum man den Waschraum sauber halten sollte. Es war nicht sauber.
Rei Miyasaka
38

Der Narr wundert sich, fragt der Weise.
  - Benjamin Disraeli

Dan Dyer
quelle
@TomWij: Siehe meinen Kommentar von als ich das bearbeitete, diese Zitate wurden in separate Antworten aufgeteilt.
35

Programmieren ist wie Sex: Ein Fehler und Sie müssen ihn für den Rest Ihres Lebens unterstützen.
  - Michael Sinz

größer
quelle
34

Das Semble ist perfekt, es ist nicht nur ein Plus, sondern auch ein Plus für den Retrancher.
  - Antoine de Saint-Exupéry, französischer Schriftsteller (1900-1944), Terre des Hommes (1939)

(Es scheint, dass Perfektion nicht dann erreicht wird, wenn nichts mehr hinzuzufügen ist, sondern wenn nichts mehr wegzunehmen ist.)

Bill Karwin
quelle
Und es gilt auch für Musik
Heinz Z.
2
Perfektion ist
David Kendal
2
@ David Kendal: Schön! In ähnlicher Weise sagte Henry David Thoreau: "Vereinfachen, vereinfachen." Was mich immer zum Nachdenken bringt: "Vereinfachen".
Bill Karwin
33

Java ist zu JavaScript wie Auto zu Teppich.
  - Chris Heilmann

Bill Karwin
quelle
In meinem Auto ist ein Teppich, also ist Javascript in Java?
Keyo
1
@Keyo: Ja, ich habe darüber nachgedacht. Ich finde das Zitat immer noch sehr schlau.
Bill Karwin
31

Wie von Eric S. Raymond formuliert :

Linus 'Gesetz

Bei einer ausreichenden Anzahl von Betatestern und Mitentwicklern wird fast jedes Problem schnell charakterisiert und die Behebung ist für jemanden offensichtlich.

Oder, weniger formal,

Bei genügend Augäpfeln sind alle Käfer flach.

user8
quelle
klingt ein bisschen wie die Affe / Schreibmaschine Regel für mich ...
Sean Patrick Floyd
Warum scheinen Linux-Enthusiasten mehr Zeit damit zu verbringen, dieses Zitat zu wiederholen, als die Fehler zu beheben?
Timwi
Oder Atwoods Slogan für StackOverflow: "Keiner von uns ist so dumm wie wir alle". Siehe codinghorror.com/blog/2008/09/…
Evan Plaice