Penalaran tentang apakah pewarisan (atau fitur tunggal, benar-benar) diperlukan atau tidak tanpa juga mempertimbangkan sisa bahasa semantik tidak ada gunanya; Anda berdebat dalam ruang hampa.
Yang Anda butuhkan adalah filosofi desain bahasa yang konsisten; bahasa harus mampu menyelesaikan masalah secara elegan. Model untuk mencapai ini mungkin atau mungkin tidak memerlukan warisan, tetapi sulit untuk menilai ini tanpa gambaran besar.
Jika, misalnya, bahasa Anda memiliki fungsi kelas satu, aplikasi fungsi parsial, tipe data polimorfik, variabel tipe dan tipe generik, Anda telah cukup banyak membahas basis yang sama seperti yang Anda miliki dengan warisan OOP klasik, tetapi menggunakan paradigma yang berbeda.
Jika Anda memiliki pengikatan yang terlambat, pengetikan dinamis, metode-sebagai-properti, argumen fungsi fleksibel, dan fungsi kelas satu, Anda juga membahas alasan yang sama, tetapi sekali lagi, menggunakan paradigma yang berbeda.
(Menemukan contoh untuk dua paradigma yang diuraikan dibiarkan sebagai latihan untuk pembaca.)
Jadi, pikirkan tentang jenis semantik yang Anda inginkan, bermain-main dengan mereka dan lihat apakah mereka cukup tanpa warisan. Jika tidak, Anda dapat memutuskan untuk memasukkan warisan ke dalam campuran, atau Anda dapat memutuskan bahwa ada sesuatu yang hilang.