Neden çoğu Linux programı C dilinde yazılmıştır? Neden daha yeni olan C ++ ile yazılmıyorlar?
Neden çoğu Linux programı C dilinde yazılmıştır? Neden daha yeni olan C ++ ile yazılmıyorlar?
Yanıtlar:
Bununla ilgili birçok tartışma oldu. Esas olarak, sebep felsefidir. C sistem gelişimi için basit bir dil olarak icat edildi (çok fazla uygulama geliştirme değil). C ++ birçok tartışma vardır, ancak bir çok yaklaşık vardır değil C ++ ve C yapışmasını
Sonunda, bu tarihsel bir konudur. Çoğu uygulama maddesi C dilinde yazılmıştır, çünkü çoğu Çekirdek maddesi C dilinde yazılmıştır. Ve o zamandan beri çoğu madde C dilinde yazılmıştır, insanlar orijinal dilleri kullanma eğilimindedir.
Bu noktada birileri "Tamam, öyleyse çekirdek neden C dilinde yazılmış ve C ++ 'a taşınmıyor?" Diye sorabilir. . Bu bir süre önce kerneltrap üzerinde tartışıldı . Bu konudan alıntılanabilecek güzel bir açıklama yoshi314'ün verdiği bir cevaptır (doğrudan alıntı yapmak):
çünkü hemen hemen her c ++ uygulamasının çalışması için ayrı bir c ++ standart kütüphanesine ihtiyacı vardır. bu yüzden onu çekirdeğe taşımak zorunda kalacaklar ve her yere fazladan bir ek yük bekleyeceklerdi.
c ++ daha karmaşık bir dildir ve bu, derleyiciden ondan daha karmaşık bir kod oluşturduğu anlamına gelir. bu nedenle, bir sorunun kod hatası yerine derleyici hatasından kaynaklandığını bulmak c.
Ayrıca c dili daha fazla barebone ve tahmin edilmesi kolay olan meclis temsilini takip etmek daha kolay.
c ++ daha çok yönlüdür, ancak c düşük seviyeli veya gömülü şeyler için daha uygundur.
Öte yandan, "Linux programlarının çoğu" oldukça yanıltıcıdır. Grafik uygulamalara bir göz atın. Python, özellikle Linux'taki GUI ortamlarında gittikçe daha fazla zemin kaplıyor. Windows ve .NET ile olanlarla ilgili.
Aşağıdaki e-postayı Linus Torvalds'dan okuduktan sonra linux'un yaratıcısı. Yukarıdaki cevabın yanlış olduğunu düşünmeden edemiyorum. C ++ programcılarının iyi sistem programcıları olmadığını düşünüyor . Ve C ++ 'daki ekstra özelliklerin genellikle kısa vadede getirdikleri faydalara kıyasla uzun vadede daha fazla soruna neden olması. Birisi onunla aynı fikirde olmasa da, linux işletim sistemi üzerindeki etkisinin fazla abartılması zor.
C++
daha yeniC
, ama bu biraz alakasız. Onlar farklı diller.