Saya lebih suka versi tanpa kawat gigi jika memungkinkan.
Penjelasan berikut ini agak panjang. Tolong bersamaku. Saya akan memberikan alasan kuat bagi saya untuk memilih gaya ini. Saya juga akan menjelaskan mengapa saya berpikir bahwa argumen bantahan yang biasa tidak berlaku.
(Dekat-) jalur kosong adalah pemborosan
Alasan untuk ini adalah bahwa kurung kurawal memerlukan baris kode tambahan - dan demikian pula kurung kurawal, tergantung gaya. 1
Apakah ini masalah besar? Secara dangkal, tidak. Lagipula, kebanyakan orang juga meletakkan baris kosong dalam kode mereka untuk memisahkan blok yang sedikit independen secara logis, yang sangat meningkatkan keterbacaan.
Namun, saya benci membuang ruang vertikal. Monitor modern sebenarnya memiliki ruang horizontal yang luas. Tetapi ruang vertikal masih sangat, sangat terbatas (kecuali jika Anda menggunakan monitor dengan posisi tegak, yang tidak biasa). Ruang vertikal terbatas ini merupakan masalah: diakui secara luas bahwa metode individual harus sesingkat mungkin, dan bahwa kawat gigi yang sesuai (atau pembatas blok lainnya) tidak boleh lebih dari perbedaan ketinggian layar sehingga Anda dapat melihat seluruh blok tanpa bergulir.
Ini adalah masalah mendasar : sekali Anda tidak bisa melihat seluruh blok lagi di layar, semakin sulit untuk dipahami.
Sebagai akibatnya, saya benci garis kosong yang berlebihan. Di mana satu baris kosong sangat penting untuk membatasi blok independen (lihat saja tampilan visual teks ini), baris kosong berturut - turut adalah gaya yang sangat buruk dalam buku saya (dan menurut pengalaman saya, itu biasanya merupakan pertanda programmer pemula).
Demikian juga, garis yang hanya menahan penyangga, dan yang bisa dihemat, seharusnya. Blok pernyataan tunggal yang dibatasi oleh kawat gigi membuang satu hingga dua baris. Dengan hanya 50 garis ish per tinggi layar, ini terlihat.
Menghilangkan kawat gigi mungkin tidak ada salahnya
Hanya ada satu argumen yang menentang penghapusan kawat gigi: bahwa seseorang nantinya akan menambahkan pernyataan lain ke blok yang dimaksud dan akan lupa untuk menambahkan kawat gigi, sehingga secara tidak sengaja mengubah semantik kode.
Ini memang akan menjadi masalah besar.
Tapi menurut pengalaman saya, tidak. Saya seorang programmer yang ceroboh; namun, dalam dekade pengalaman pemrograman saya, saya dapat dengan jujur mengatakan bahwa saya tidak pernah lupa untuk menambahkan kawat gigi ketika menambahkan pernyataan tambahan ke blok tunggal.
Saya bahkan merasa tidak masuk akal bahwa ini harus menjadi kesalahan umum: blok adalah bagian mendasar dari pemrograman. Resolusi dan pelingkupan tingkat blok adalah proses mental yang mendarah daging secara otomatis bagi para programmer. Otak hanya melakukannya (jika tidak, penalaran tentang pemrograman akan jauh lebih sulit). Tidak ada upaya mental tambahan yang diperlukan untuk mengingat menempatkan kawat gigi: pemrogram juga ingat untuk indentasi pernyataan yang baru ditambahkan dengan benar, setelah semua; jadi programmer telah secara mental memproses blok yang terlibat.
Sekarang, saya tidak mengatakan bahwa menghilangkan kawat gigi tidak menyebabkan kesalahan. Apa yang saya katakan adalah bahwa kita tidak memiliki bukti satu atau lain cara. Kami hanya tidak tahu apakah itu menyebabkan kerusakan.
Jadi sampai seseorang dapat menunjukkan kepada saya data keras, yang dikumpulkan dari eksperimen ilmiah, menunjukkan bahwa ini memang masalah dalam praktiknya, teori ini tetap merupakan " cerita biasa-biasa saja ": hipotesis yang sangat meyakinkan yang belum pernah diuji, dan bahwa harus tidak digunakan sebagai argumen.
1 Masalah ini kadang-kadang diselesaikan dengan meletakkan segala sesuatu - termasuk kawat gigi - pada baris yang sama:
if (condition)
{ do_something(); }
Namun, saya yakin aman untuk mengatakan bahwa kebanyakan orang membenci ini. Lebih jauh lagi, itu akan memiliki masalah yang sama dengan varian tanpa kawat gigi jadi itu yang terburuk dari kedua dunia.