Apa kutipan favorit Anda tentang pemrograman? [Tutup]

110

Apa kutipan favorit Anda tentang pemrograman?

Satu kutipan per jawaban , dan periksa duplikat sebelum memposting!

Gelatin
sumber

Jawaban:

231

Debugging dua kali lebih sulit daripada menulis kode di tempat pertama. Karena itu, jika Anda menulis kode sepintar mungkin, Anda, menurut definisi, tidak cukup pintar untuk debug itu.

- Brian W. Kernighan

Fishtoaster
sumber
Setiap kali saya menulis sedikit kode yang cerdas, saya mengingatkan diri sendiri pada aturan ini dan melihat kembali untuk melihat apakah saya tidak dapat melakukan hal-hal dengan cara yang lebih sederhana yang akan lebih mudah untuk dipertahankan nanti, atau setidaknya menambahkan beberapa komentar lagi .
CodexArcanum
6
Sebuah koroner dari pepatah yang sebaliknya benar: Jangan lupa bahwa diagram dapat meningkatkan kekuatan otak Anda. Anda dapat menukar "ingat struktur hal besar" ke kertas nonvolatile.
Tim Williscroft
1
Saya suka kutipan tetapi implikasinya adalah bahwa kita harus paling banyak menempatkan 50% dari upaya kita dalam pengkodean di tempat pertama.
Jon Hopkins
4
Saya pikir implikasinya adalah bahwa Anda harus menghindari keinginan programmer untuk menggunakan cara 'pintar' untuk melakukan sesuatu ketika cara yang sedikit lebih lama dan lebih jelas dalam melakukan sesuatu bekerja dengan baik.
Fishtoaster
2
Tetapi bagaimana jika itu kode "sempurna"? Tidak ada cara untuk "men-debug" itu.
Mateen Ulhaq
183

Berjalan di atas air dan mengembangkan perangkat lunak dari suatu spesifikasi adalah mudah jika keduanya dibekukan.

- Edward V Berard

Tobiasopdenbrouw
sumber
Kutipan tahun ini, saya akan menggunakan yang ini
Gortron
Aku benci yang ini. Tidak pernah demikian, jadi siapa yang peduli?
JP Alioto
138

Itu selalu memakan waktu lebih lama dari yang Anda harapkan, bahkan ketika Anda memperhitungkan Hukum Hofstadter.
  - Hukum Hofstadter

nivlam
sumber
72
Brain stack overflow.
Nathan Taylor
3
@ Jo D: Saya ingin tahu bagaimana Anda akan menulis ulang kalimat bahasa Inggris rekursif menjadi satu kalimat non-rekursif.
Jon Purdy
4
Mungkin konvergen untuk nilai-nilai kecil yang cukup "lebih lama"
mouviciel
3
+1 - Saya bangga menghitung diri saya di antara miliar programmer terbaik bersama dengan Douglas Hofstadter.
Peter Turner
@ gf: Ketika diubah menjadi mendefinisikan sumber setelahnya (dengan tanda hubung), pengantar utama tidak dibenarkan ("A: Blah." -> "Blah. - A"). Ini tidak menghapus bagian dari kutipan.
126

Selalu kode seolah-olah orang yang akhirnya mempertahankan kode Anda akan menjadi psikopat kejam yang tahu di mana Anda tinggal.

- Rick Osborne

Wil
sumber
12
sepertinya saya terus mempertahankan kode yang saya harap saya tahu di mana pencipta tinggal, tetapi mungkin itu hal yang baik saya tidak.
WalterJ89
Membawa makna baru ke istilah "aplikasi pembunuh." Sepertinya saya selalu mempertahankan kode psikopat setelah dipenjara.
webbiedave
8
@webbiedave Anda bekerja di ReiserFS? :)
Neil Aitken
Perusahaan harus benar-benar membenci Anda jika si pembunuh mendapatkan pekerjaan Anda.
Mateen Ulhaq
118

Anda dapat memiliki proyek:

  • Selesai Tepat Waktu
  • Dilakukan Sesuai Anggaran
  • Dilakukan dengan Benar

Ambil dua.

- Tidak dikenal

Bobby
sumber
5
Mengingatkan saya pada segitiga yang sama, tetapi dengan wanita. "Kamu dapat memiliki pacar yang: Cerdas, menarik, memiliki kepribadian yang baik."
Maks.
Jangan lupa bahwa pengecualian memang ada, meskipun jarang - jangan mengandalkannya.
Mircea Chirea
5
@ Maxm: Versi yang saya dengar adalah "The 4 S: Smart, Sexy, Sane, Single. Pilih 3."
Mason Wheeler
1
Jadi, ketika tidak ada batasan waktu dan anggaran, Anda tidak dapat melakukannya dengan benar. Senang mendengarnya.
Antsan
111

Beberapa orang, ketika dihadapkan dengan masalah, berpikir, "Saya tahu, saya akan menggunakan ekspresi reguler."
Sekarang mereka memiliki dua masalah.

- Jamie Zawinski

Noah Goodrich
sumber
5
Klasik abadi
Factor Mystic
5
Beberapa orang, ketika dihadapkan dengan masalah, berpikir "Saya tahu, saya akan menggunakan <beberapa implementasi pemecahan masalah>." Sekarang mereka memiliki dua masalah.
Callum Rogers
40
Beberapa orang ketika dihadapkan dengan masalah tidak berpikir, mereka hanya memposting di StackOverflow
Matt Ellen
5
Beberapa orang tidak mengerti ekspresi reguler, dan membencinya karena yang lain mengerti.
Orbling
3
@ Yar - Saya tidak pernah menemukan sintaks tumpul secara pribadi, dan kepadatan adalah hal yang baik. Mengapa mengungkapkan sesuatu seperti kecocokan pola dalam format yang lebih bertele-tele? Di mana kejelasan diperlukan untuk sesuatu yang rumit, mode perluasan dapat digunakan dengan komentar.
Orbling
110

Secara teori, tidak ada perbedaan antara teori dan praktik. Tapi, dalam praktiknya, ada.

- Jan LA van de Snepscheut

Walter
sumber
27
Saya juga pernah mendengar "Perbedaan antara teori dan praktik lebih kecil dalam teori daripada dalam praktik."
1
Formulasi Roger Pate adalah yang saya dengar, ditulis oleh Olin Shivers dalam "History of T". Paul Graham membicarakannya di sini: paulgraham.com/thist.html
Michael H.
2
Saya akan mengatakan jika sebuah teori tidak diterjemahkan menjadi praktik, maka teorinya tidak lengkap.
Rei Miyasaka
105

Anda dapat menggunakan penghapus di atas meja penyusunan atau palu di situs konstruksi - Frank Lloyd Wright

Bukan kutipan pemrograman tapi itu pasti berlaku.

Tom Wijsman
sumber
14
IMO yang sangat aplikatif
John MacIntyre
3
Untungnya bagi kami ketika sebagian besar perangkat lunak salah itu tidak runtuh dan membunuh orang.
Neil Aitken
8
Kecuali ketika itu meledakkan Ariane 5 (Penerbangan 501), atau dosis orang dengan tingkat radiasi mematikan yang tinggi ...
Frank Shearar
2
Ironisnya, saya percaya banyak bangunan Frank Lloyd Wright yang lebih berbelit telah rusak.
Maks.
1
@TomWij, @Walter, @Roger: Harap jangan mengotori situs ini dengan metatalk Anda. Jika saya ingin mendengar pertengkaran, saya akan mengunjungi meta.stackoverflow.com. Di sinilah Anda harus memiliki percakapan yang menarik dan abadi ini.
Dan Rosenstark
103

Pemrograman hari ini adalah perlombaan antara para insinyur perangkat lunak yang berusaha untuk membangun program-program idiot-proof yang lebih besar dan lebih baik, dan Semesta berusaha menghasilkan para idiot yang lebih besar dan lebih baik. Sejauh ini, Semesta menang.

- Rick Cook

Jonas
sumber
98

Mengukur progres pemrograman berdasarkan garis kode sama seperti mengukur progres pembangunan pesawat terbang berdasarkan beratnya.
  - Bill Gates

ahsteele
sumber
3
Ini berlaku pada berbagai tingkatan. Sebuah permata.
3
Perbedaan utama adalah, tentu saja, bahwa bobot akhir pesawat diketahui sementara jumlah LOC akhir perangkat lunak tidak diketahui.
Mmyers
5
Jadi mengapa sebagian besar produk Microsoft memberi saya perasaan bahwa saya dirantai dengan kaki saya ke sebuah pesawat terbang yang berjuang untuk turun dari landasan?
Sharpie
86

Ada 2 masalah sulit dalam ilmu komputer: pembatalan cache, penamaan hal, dan kesalahan off-by-1.

    - Leon Bambrick (@ secretGeek )

(Sebenarnya, semuanya dari http://q4td.blogspot.com/search/label/programming melihat saat saya menyusun daftar.)

Evan
sumber
Saya belum pernah melihat kutipan yang menunjukkan betapa sulitnya penamaan. Tiba-tiba saya merasakan solidaritas.
CodexArcanum
Itu 3 hal. Dua yang pertama adalah kutipan asli dari Phil Karlton. @CodexArcanum. Memberi penamaan dengan baik adalah triknya.
StuperUser
@StuperUser whooosh! Anda melewatkan lelucon!
Agos
Butuh dua detik untuk mendapatkannya setelah Anda menunjukkannya. Herp derp.
StuperUser
85

Sembilan orang tidak bisa menghasilkan bayi dalam sebulan.
  - Fred Brooks, The Mythical Man-Month

bigown
sumber
14
secara teknis: 18 orang tidak bisa menghasilkan bayi dalam sebulan
Here Be Wolves
13
@HereBeWolves atau 10
WalterJ89
14
Apa yang salah dengan 1 pria dan 8 wanita? Kedengarannya benar bagi saya.
4
Jika kita mencari anak kembar atau kembar tiga kita membutuhkan lebih sedikit wanita.
12
Sementara bayi pertama akan menderita latensi 9 bulan, pipelining yang tepat akan terus melahirkan 1 per bulan ...
Brian Knoblauch
82

Kita harus melupakan efisiensi kecil, katakanlah sekitar 97% dari waktu: optimasi prematur adalah akar dari semua kejahatan. Namun kita tidak boleh melewatkan peluang kita dalam 3% kritis itu.
  - Donald Knuth, Pemrograman Terstruktur dengan pergi ke Pernyataan , Survei Komputasi JACM, Vol 6, No. 4, Desember 1974, hal.268

Ini diambil dari dua paragraf di bawah ini, yang tidak hanya mengatakan mengapa ia sampai pada kesimpulan di atas, tetapi memberikan informasi tentang bagaimana menghindari kesalahan ini:

Tidak ada keraguan bahwa efisiensi akan mengarah pada pelecehan. Programmer menghabiskan banyak waktu untuk memikirkan, atau mengkhawatirkan, kecepatan bagian nonkritis dari program mereka, dan upaya efisiensi ini sebenarnya memiliki dampak negatif yang kuat ketika debugging dan pemeliharaan dipertimbangkan. Kita harus melupakan efisiensi kecil, katakanlah sekitar 97% dari waktu: optimasi prematur adalah akar dari semua kejahatan.

Namun kita tidak boleh melewatkan peluang kita dalam 3% kritis itu. Seorang programmer yang baik tidak akan terbuai oleh kepuasan dengan alasan seperti itu, ia akan bijaksana untuk melihat dengan cermat kode kritis; tetapi hanya setelah kode itu diidentifikasi. Seringkali merupakan kesalahan untuk membuat penilaian apriori tentang bagian mana dari suatu program yang benar-benar kritis, karena pengalaman universal programmer yang telah menggunakan alat pengukuran adalah bahwa tebakan intuisi mereka gagal. (...)

Scott Dorman
sumber
2
@Roger Pate: Saya curiga Anda benar, kebanyakan orang tidak menyadari ada lebih banyak dari kutipan itu.
Scott Dorman
5
Semoga Anda tidak keberatan bahwa saya termasuk lebih banyak. Saya pikir ini sangat penting dan mungkin ini akan mendorong lebih banyak untuk membaca makalah lengkapnya. :)
@Roger Pate: Tidak sama sekali!
Scott Dorman
5
+1 Terima kasih atas penawaran lengkapnya. Saya tidak pernah tahu ada lebih dari itu.
Evan Plaice
2
Sangat bagus bahwa Anda memposting seluruh kutipan. Banyak orang hanya tahu versi pengurutannya dan tidak tahu apa yang sebenarnya Knuth maksudkan dengan itu.
Dasich
80

Debuggers tidak menghapus bug. Mereka hanya menunjukkannya dalam gerakan lambat.

- Tidak dikenal

pramodc84
sumber
35
Atau dalam banyak kasus, buat mereka berhenti tampil sepenuhnya.
Graeme Perrow
12
@Graeme, kasing itu disebut Heisenbugs :)
Here Be Wolves
76

90% pertama dari kode menyumbang 90% pertama dari waktu pengembangan. 10% sisanya dari kode menyumbang 90% dari waktu pengembangan lainnya.

- Tom Cargill

Roger Pate
sumber
Siapa yang mengatakan itu awalnya?
Paddyslacker
10
Saya pikir Anda akan menemukan bahwa 90% dari kode membutuhkan 90% dari waktu, dan 10% terakhir dari kode mengambil 90% dari waktu.
FacticiusVir
2
Tom Cargill dari Bell Labs: en.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin
1
Saya tahu ini: 20% teman minum 80% bir.
Zzz
1
Secara pribadi, saya akan mengatakan bahwa 90% pertama dari kode menyumbang 90% pertama dari waktu pengembangan. Kemudian, sisa 90% dari kode menyumbang 90% lainnya dari waktu pengembangan.
Kaz Dragon
70

Jika Java memiliki pengumpulan sampah yang benar, sebagian besar program akan menghapus sendiri setelah eksekusi.
  - Robert Sewell

bigown
sumber
22
lucu, baru saja membuat saya berpikir tentang php.
WalterJ89
2
@ WalterJ89: Jangan khawatir! Hingga PHP 5.3, PHP dihitung ulang.
zneak
Saya suka yang ini!
MDV2000
@ WalterJ89 Ya, saya tidak melihat alasan untuk memilih Java sebagai lawan COBOL, C ++, VB, atau lainnya.
Mark C
69

Ilmu Komputer tidak lebih tentang komputer daripada astronomi adalah tentang teleskop

- Edsger Dijkstra

bigown
sumber
4
Ya, tapi ini seharusnya tentang pemrograman , bukan ilmu komputer. [senyum licik]
Mark C
Pemrograman hanya menerapkan pengetahuan yang dikumpulkan dengan ilmu komputer. Anda tidak perlu komputer untuk diprogram, setidaknya tidak satu pun seperti kebanyakan yang terbiasa.
Dasich
Saya selalu merasa bahwa hal yang paling menjengkelkan tentang pemrograman adalah saya tidak dapat memisahkannya dari komputer.
LoveMeSomeCode
57

Jika debugging adalah proses menghilangkan bug perangkat lunak, maka pemrograman harus menjadi proses memasukkannya.
  - Edsger Dijkstra

pramodc84
sumber
24
Itu sebabnya saya suka menyebut pekerjaan saya sebagai enbugging .
tipuan
9
Dan pemeliharaan sebagai rebugging ?
Joe D
1
@ Joey Tidak, "bugwatching".
Mark C
56

Hanya ada dua jenis bahasa: yang dikeluhkan orang dan yang tidak digunakan siapa pun

- Bjarne Stroustrup

suka
sumber
15
alasan buruk untuk pemberian C ++
hasen
3
C # adalah contoh tandingan yang jelas.
Timwi
7
Dan VB termasuk dalam kedua kategori.
Cepat Joe Smith
48

Hal terbaik tentang boolean adalah bahkan jika Anda salah, Anda hanya akan sedikit mati. - (Anonim, tanpa nama)

pramodc84
sumber
Hal terburuk adalah Anda tidak bisa salah lagi?
POSIX_ME_HARDER
46

Pada dua kesempatan saya ditanya, "Berdoalah, Tuan Babbage, jika Anda memasukkan angka-angka yang salah di mesin, apakah jawaban yang benar akan keluar?" Dalam satu kasus seorang anggota Majelis Tinggi, dan yang lainnya seorang anggota Majelis Rendah mengajukan pertanyaan ini. Saya tidak dapat dengan tepat memahami jenis kebingungan gagasan yang dapat memancing pertanyaan semacam itu.
  - Charles Babbage

Bisa dibilang kasus terdokumentasi pertama dari seorang programmer menemukan pertanyaan pengguna bodoh.

Jay
sumber
5
Kedengarannya seperti ide T-Shirt! "Kesalahan Pengguna: Mengotori sejak 1832". (Tanggal?)
Mark C
42

Saya selalu berharap agar komputer saya semudah menggunakan telepon saya; keinginan saya menjadi kenyataan karena saya tidak bisa lagi mencari tahu bagaimana menggunakan telepon saya

- Bjarne Stroustrup

bigown
sumber
42

Semuanya bicara sampai kode berjalan.
  - Ward Cunningham

Walter
sumber
39

Dukungan Unicode bukan "fitur". Itu adalah perilaku yang diharapkan.

Memang, ini sangat spesifik, tetapi ini adalah favorit saya karena set karakter usang masih terlalu banyak digunakan ...

Timwi
sumber
3
Sekarang Anda hanya perlu berdebat tentang unicode mana
Martin Beckett
@ Martin: Tidak juga, karena konversi di antara berbagai jenis itu tidak rugi.
Billy ONeal
Aargh rasa sakit! Mengapa saya harus berdebat dengan klien bahwa tidak, kita tidak bisa "hanya" mengalihkan seluruh infrastruktur kami ke Latin-1 agar lebih nyaman baginya? "Lagipula, tidak ada orang di sekitar sini yang menggunakan karakter khusus yang aneh itu; tidak mungkin terlalu sulit, kan?"
Piskvor
39

Mengomentari kode Anda seperti membersihkan kamar mandi Anda - Anda tidak pernah ingin melakukannya, tetapi itu benar-benar menciptakan pengalaman yang lebih menyenangkan bagi Anda dan tamu Anda.

- Ryan Campbell

Coder Hawk
sumber
1
Meh ... Sebagian besar komentar yang saya temui dalam hidup saya ditulis dengan asumsi bahwa komentar dapat menggantikan kode yang ditulis dengan buruk ..
riwalk
Anda dapat membersihkan kamar mandi, tetapi jika kamar mandi hanya memiliki air dingin dan wastafel tidak memiliki sabun, itu akan menjadi pengalaman yang tidak menyenangkan. Tulis kode yang mudah dibaca daripada menulis komentar besar untuk menjelaskan banyak hal.
Keyo
Saya sebenarnya menemukan komentar yang cukup menyenangkan. Kadang-kadang saya memasukkan komentar penting ke dalam kotak kecil yang rapi yang terbuat dari tanda bintang dan garis miring. Kemudian lagi, saya aneh.
Maks.
2
Saya menikmati menulis komentar juga, tetapi Anda tidak ingin melihat kamar mandi saya.
Timwi
Saya pernah berada di kamar kecil di mana ada komentar panjang lebar tentang bagaimana dan mengapa Anda harus menjaga kamar mandi bersih. Itu tidak bersih.
Rei Miyasaka
38

Si bodoh bertanya-tanya, pria bijak itu bertanya.
  - Benjamin Disraeli

Dan Dyer
sumber
@ TomWij: Lihat komentar saya ketika saya mengedit ini, kutipan ini telah dibagi menjadi jawaban yang terpisah.
35

Pemrograman seperti seks: satu kesalahan dan Anda harus mendukungnya selama sisa hidup Anda.
  - Michael Sinz

bigown
sumber
34

Jika Anda memiliki kesempurnaan dan kualitas, maka tidak perlu meminta rien à ajouter, tetapi juga meminta rien à retrancher plus.
  - Antoine de Saint-Exupéry, penulis Perancis (1900-1944), Terre des Hommes (1939)

(Tampaknya kesempurnaan dicapai bukan ketika tidak ada yang tersisa untuk ditambahkan, tetapi ketika tidak ada lagi yang tersisa untuk diambil.)

Bill Karwin
sumber
Dan itu juga berlaku untuk musik
Heinz Z.
2
Perfection Is
David Kendal
2
@ David Kendal: Bagus! Demikian pula, Henry David Thoreau berkata, "Sederhanakan, Sederhanakan." Yang selalu membuat saya berpikir, "Sederhanakan."
Bill Karwin
33

Java untuk JavaScript seperti mobil ke karpet.
  - Chris Heilmann

Bill Karwin
sumber
Ada karpet di mobil saya, jadi ada Javascript di Jawa?
Keyo
1
@Keyo: Ya, saya memikirkan itu. Saya masih berpikir kutipannya sangat pintar.
Bill Karwin
31

Seperti yang dirumuskan oleh Eric S. Raymond :

Hukum Linus

Dengan basis penguji beta dan basis pengembang yang cukup besar, hampir setiap masalah akan ditandai dengan cepat dan perbaikannya jelas bagi seseorang.

Atau, kurang formal,

Diberi cukup bola mata, semua bug dangkal.

pengguna8
sumber
kedengarannya seperti aturan monyet / mesin tik bagi saya ...
Sean Patrick Floyd
Mengapa penggemar Linux tampaknya menghabiskan lebih banyak waktu mengulangi kutipan ini daripada memperbaiki bug?
Timwi
Atau, slogan Atwood untuk StackOverflow, "Tidak seorang pun dari kita yang sebodoh kita semua". Lihat codinghorror.com/blog/2008/09/…
Evan Plaice