Apa kutipan favorit Anda tentang pemrograman? [Tutup]


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


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


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


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


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



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


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


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.


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


98

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



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


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


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


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


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


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


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


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


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


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


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)


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.


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


42

Semuanya bicara sampai kode berjalan.
  - Ward Cunningham


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


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


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



@ 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


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


Dan itu juga berlaku untuk musik
Heinz Z.


2
@ David Kendal: Bagus! Demikian pula, Henry David Thoreau berkata, "Sederhanakan, Sederhanakan." Yang selalu membuat saya berpikir, "Sederhanakan."
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.


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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.