@Kilian cevabı ile aynı fikirdeyim ancak bazı elementler ekleyeceğim.
1- İşletim Sistemine değil Sanal Makineye Karşı Çalışmak
Java ve C #, Sanal Makine üzerinden çalıştığından, işletim sistemi üzerinde çalışırken istediğinizi tam olarak yapamayacağınız için mantıklı bir şekilde beklenir, çünkü VM'de bir şeyi bozma ihtimaliniz vardır. Üstelik Java platform agnostik olarak yönlendirildiğinde, daha da mantıklı.
2- Tonlarca uygulama bu tür şeylere ihtiyaç duymanızı gerektirmez.
Gerçekten de bu kadar ayrıntıyı incelemenizi gerektirmeyen tonlarca uygulama var, ancak bunu yapmanız için gereken bir dille yaparsanız, şunları elde edin:
- Bu gereksiz şeylerden dolayı hata olması için daha fazla risk.
- Daha fazla geliştirme maliyeti, belleği yönetme ve test etme zaman ve çok para alıyor!
3- Dil, her şey gibi maliyet / kullanım / risk ağırlıklı bir seçim yapılır.
C ++ ile istediğinizi hemen hemen yapabilirsiniz, bu C ++ 'in tercihidir. Bununla birlikte, ne kadar fazla olursa, o kadar çok başa çıkmak gerekir.
Dolayısıyla, çoklu miras gibi şeyler sadece tehlikeli olmaları nedeniyle pes edilmezler, pes ederler, çünkü bunların uygulanmasının bir maliyeti (geliştirme, bakım) vardır, bunun için nadiren doğru bir şekilde kullanılan ve kullanılabilecek bir özellik için genellikle farklı şekilde yeniden yazılır.