Saya telah banyak berpikir tentang desain bahasa dan elemen apa yang diperlukan untuk bahasa pemrograman "ideal", dan mempelajari Google's Go telah membuat saya mempertanyakan banyak pengetahuan umum.
Secara khusus, Go tampaknya memiliki semua manfaat menarik dari pemrograman berorientasi objek tanpa benar-benar memiliki struktur bahasa berorientasi objek. Tidak ada kelas, hanya struktur; tidak ada kelas / pewarisan struktur - hanya penyisipan struktur. Tidak ada hierarki, tidak ada kelas induk, tidak ada implementasi antarmuka eksplisit. Sebagai gantinya, aturan pengecoran tipe didasarkan pada sistem longgar yang mirip dengan pengetikan bebek, sehingga jika sebuah struktur mengimplementasikan elemen-elemen yang diperlukan dari "Pembaca" atau "Permintaan" atau "Pengkodean", maka Anda dapat melemparkannya dan menggunakannya sebagai satu.
Apakah ada sesuatu tentang OOP seperti yang diterapkan dalam C ++ dan Java dan C # yang secara inheren lebih mampu, lebih dapat dipelihara, entah bagaimana lebih kuat sehingga Anda harus menyerah ketika pindah ke bahasa seperti Go? Apa manfaat yang Anda harus berikan untuk mendapatkan kesederhanaan yang diwakili oleh paradigma baru ini?
EDIT
Menghapus pertanyaan "usang" yang tampaknya terlalu sering digantung dan dibenci oleh pembaca.
Pertanyaannya adalah, apa yang paradigma berorientasi objek tradisional (dengan hierarki dan semacamnya) seperti yang sering terlihat dalam implementasi bahasa umum yang ditawarkan yang tidak dapat dilakukan dengan mudah dalam model yang lebih sederhana ini? Atau, dengan kata lain, jika Anda mendesain bahasa hari ini, adakah alasan Anda ingin memasukkan konsep hierarki kelas?