Neden C yerine tamamen C++ kullanılmıyor?

Katılım
19 Aralık 2020
Mesajlar
689
C++ C'den daha iyiyse C neden alternatifsiz? Yani C işletim sistemlerinde kullanılıyor. Az çok C++ mı ne kullanıyor diye biliyorum. Eğer C++ C'nin bir üstüyse neden, C yerine tamamen kullanılmıyor?
 


Bu tarz önemli ve gerekli sorularını soracağın yer aslında burası değil, fakat platformda konu olarak olması güzel. Daha önce quora, stack gibi mekanlarda çokça tartışıldı zamanında. Buradan okumak herkes için daha yararlı.

Dillerin birbirlerinden "iyi" olduğunu söylemek yanlış, kullanımlara göre "bu daha uygun" demek daha doğru bir cevap.
 
C++ C'nin üstü derken iPhone 11 ve iPhone 12 gibi üstü olmuyor. C++ daha "yüksek seviyeli" bir dildir. Burada seviye düştükçe makine diline yaklaşılır, daha karmaşık fakat daha hızlı çalışan kod anlamına gelir. Gömülü sistemler için C daha uygun iken çeşitli programlar için C++ daha uygundur.
 
C++ da işletim sistemlerinde kullanılıyor. SerenityOS'a bakabilirsin. Rust dili ile de işletim sistemleri var.

Inline Assembly destekleyip "runtime environment" gerektirmeyen dillerin hepsi ile işletim sistemi yazılabilir.

C#'taki Cosmos projesinden bahsedecek olabilirsin, buna da cevabım bu kodların direkt olarak Assembly'e çevrilip öyle çalıştırıldığı olacaktır.
 
C++ da donanıma çok yakın bir dil ancak C daha da yakın.
Bir dil donanıma ne kadar yakın ise o kadar verimli ve statik bir hale gelir.

C++, C'nin gücü ile Simula'nın "Class" yapısının birleştirilmesi ile oluşmuştur.

C ölü demek doğru olmaz ancak kullanım alanı gittikçe azalıyor.
Linux çekirdeği neredeyse tamamı C ile yazılmıştır. "git" SCM'in yarısı C ile yazılmıştır (Kalan yarısının büyük kısmı da Shell).
 
C ve C++ dilleri donanıma oldukça yakındır. Buradan kastım, herhangi bir mikro işlemcide kullanılmasından ziyade, Assembly ya da makine diline olan yakınlığıdır. Makine diline ne kadar yakınsanız, özellikle üzerinde çalıştığınız donanımı o kadar kolay yönetebilirsiniz. C ve C++ olayı da bu aslında.

C ve C++ kullanılıyor aslında, artık gömülü sistemler ve mikroişlemcilerde C++ daha fazla kullanılıyor gibi geliyor ancak birini bilen diğerini de biliyor.

Şu an mikroişlemciler, mikrodenetleyiciler, gömülü sistemlerde C++ kullanılıyor. Kullanılmaya da devam edecek.

Arduino'da uygulamalar yapmak için C bilmek gerekiyor, hatta bu hafta Rasperry, Pico adında MicroPython ve C destekleyen yeni mikrodenetleyicisini piyasaya sürdü. Şu an daha çok IoT ve sürücülerde kullanılıyor.

Arduino'da C ve C++'ın syntaxlerini kullanan bir karışım var. Tam olarak C ya da C++ diyemeyiz, çünkü küçük bir kısmını kapsıyor.

C++ C'den daha iyiyse C neden alternatifsiz? Eğer C++ C'nin bir üstüyse neden, C yerine tamamen kullanılmıyor?

Bana dillerin kullanım alanlarını ve amaçlarını kavrayamamışsın gibi geldi. C'nin alternatifsiz olması demeyelim de bu kadar önemli olmasının sebebi, makine diline oldukça yakın olması. Bir şeyi kontrol etmek istersen, ona yakın olman gerekir. Aynı şekilde, işletim sistemi de yazarken makineye yakın olman gerekir. Makineye yakınlık hızın dışında verimlilik ve kolaylık sağlar. Makine dili için bu makaleye bakabilirsin:

 
C programları hafızada daha az yer kaplıyor. Düşük hafızalı cihazlar için önemli bir durum. Derleyiciye göre de farklar oluyor. cc386 ile derlenen en küçük program bile, gcc ile derlenen aynı programdan daha küçük boyutlu mesela.

C programları yine C++ programlarından çok az da olsa, daha hızlı çalışıyor. Zayıf işlemcilerde bu fark önemli olabilir.
 

Yeni konular

Geri
Yukarı