Saya tidak pernah menjadi pendukung pemrograman berorientasi objek, dan jika ada sesuatu yang saya kembangkan semakin sedikit sehingga semakin banyak yang saya pelajari tentang pemrograman secara umum. Seperti yang saya sudah mempelajari paradigma pemrograman yang berbeda, aku menyadari bahwa kekekalan adalah salah satu yang konsep pusat desain program, yang mempengaruhi perangkat lunak yang ditulis sesuai dengan setiap filsafat. Ini sangat penting dalam pemrograman fungsional, dengan implikasi dalam optimasi dan konkurensi di atas jaminan keselamatan sederhana.
Pada dasarnya, semua yang bisa berubah mungkin harus , kecuali Anda punya alasan yang bagus untuk keadaan yang bisa berubah. Dalam pengalaman saya, menulis program dalam bahasa apa pun untuk mencapai tujuan ini mengarah pada kode yang lebih aman dan lebih baik . Anda tidak akan rugi dengan menggunakan const
mana yang berlaku — keabadian gratis!
(Kebetulan, saya bermain-main dengan gagasan membuat garpu GCC untuk dialek C ++ di mana semua jenis const
kecuali memenuhi syarat secara eksplisit mutable
. Jika ada dukungan untuk hal seperti itu, saya benar-benar akan berkomitmen untuk mempertahankan dan menggunakannya.)
Dari sudut pandang OO, immutability memberlakukan enkapsulasi dengan mencegah akses tulis tidak terbatas. Ini mengurangi kopling antar kelas karena objek yang tidak dapat diubah harus sepenuhnya mengelola negara mereka sendiri dan dengan demikian berperilaku seperti nilai-nilai biasa. Kebenaran Konst secara signifikan memudahkan proses pembuktian kebenaran program, terutama dalam konteks pemrograman bersamaan. Dengan referensi C ++ dan semantik referensi nilai C ++ 0x, Anda dapat menggunakan objek yang tidak dapat diubah tanpa khawatir tentang biaya penyalinannya di semua tempat. Lebih lanjut, kompiler dapat bekerja dengan sihir optimasi yang sangat luar biasa jika Anda bekerja dengan sebagian besar objek yang tidak dapat diubah.
Saya tahu ini menyebalkan untuk mengetik di const
mana-mana, tetapi Anda dengan cepat terbiasa dengannya, dan manfaatnya menjadi jelas seiring waktu dalam hal keandalan dan pemeliharaan. Saya bukan penulis yang brilian, dan tampaknya menjadi tugas yang terbukti sulit untuk membuat kasus untuk itu, tapi saya tahu bahwa kebenaran const telah sangat membantu saya sebagai pengembang ketika merancang dan mengimplementasikan program, dan saya pikir pengalaman adalah guru terbaik dalam hal ini.