Tampaknya, pertanyaan Anda bukan tentang hubungan arus pendek yang baik atau buruk secara umum, tetapi tentang mengapa VB.NET memberikan operator dengan dan tanpa itu. Dengan mengingat hal ini, jawabannya
kapan evaluasi hubung singkat buruk?
sederhana: ketika melanggar kompatibilitas ke belakang .
Ok, sekarang Anda dapat mengatakan VB.NET tidak kompatibel dengan VB6 atau VBA lama, namun setidaknya bagian-bagian tertentu dari bahasa tersebut. Keputusan Microsoft untuk menjaga semantik AND dan OR lama (tanpa hubungan arus pendek) membuat kategori kesalahan yang sangat kecil kemungkinannya terjadi ketika ketika porting program VB lama ke VB.NET.
Di sisi lain, perancang bahasa VB.NET mungkin membagikan pendapat Anda tentang hubungan arus pendek menjadi hal yang baik. Ketika saya ingat dengan benar, versi pra-rilis VB.NET pertama menyediakan hubungan pendek DAN atau OR dengan operator, tetapi umpan balik pengembang pastilah sangat buruk MS menarik keputusan ini sebelum VB.NET 1.0 muncul. Jadi para desainer memutuskan untuk menerapkannya dalam hal kata kunci baru ANDALSO
dan ORELSE
sebagai trade-off antara kompatibilitas mundur dan kegunaan.
IMHO ini adalah keputusan yang bagus. Saya harus mem-porting beberapa program yang lebih tua dalam dekade terakhir, dan tidak harus membuat analisis dampak yang berat untuk setiap ekspresi logika termasuk DAN dan / atau OR (pun intended) membuat tugas itu jauh lebih mudah dan lebih ekonomis. Di sisi lain, setiap kali saya harus menulis ekspresi logis baru di VB.NET, pilihan default saya untuk operator adalah bentuk hubung singkat, itulah yang biasa saya gunakan dari C, C ++, C # dll, dan memungkinkan saya menulis beberapa idiom dalam bentuk yang lebih ringkas (walaupun ANDALSO membutuhkan 4 karakter lebih banyak untuk diketik).
Jika Anda tidak yakin, saya sarankan untuk membaca artikel hebat Joel Spolsky tentang Mars Headset , yang tentang mengapa keputusan desain awal dalam pengembangan perangkat lunak tidak dapat dengan mudah dicabut setelah komponen atau bahasa atau API yang dipertaruhkan telah mencapai basis pengguna dengan ukuran tertentu. .