Mengapa sebagian besar program Linux ditulis dalam bahasa C? Mengapa tidak ditulis dengan C ++, yang lebih baru?
Mengapa sebagian besar program Linux ditulis dalam bahasa C? Mengapa tidak ditulis dengan C ++, yang lebih baru?
Jawaban:
Sudah banyak diskusi tentang ini. Terutama, alasannya adalah alasan filosofis. C diciptakan sebagai bahasa sederhana untuk pengembangan sistem (tidak begitu banyak pengembangan aplikasi). Ada banyak argumen untuk menggunakan C ++, tetapi ada sekitar banyak untuk tidak menggunakan C ++ dan menempel C.
Pada akhirnya, ini adalah masalah sejarah. Sebagian besar aplikasi ditulis dalam bahasa C, karena sebagian besar Kernel ditulis dalam bahasa C. Dan sejak saat itu kebanyakan aplikasi ditulis dalam bahasa C, orang cenderung menggunakan bahasa aslinya.
Pada titik ini, seseorang mungkin bertanya "OK, jadi mengapa kernel ditulis dalam C dan tidak porting ke C ++?" . Ini sudah dibahas di kerneltrap beberapa waktu lalu. Satu penjelasan bagus yang dapat dikutip dari utas ini adalah tanggapan oleh yoshi314 (mengutip langsung):
itu karena hampir setiap aplikasi c ++ memerlukan pustaka c ++ standar yang terpisah untuk beroperasi. jadi mereka harus mem-port-nya ke kernel, dan mengharapkan overhead tambahan di mana-mana.
c ++ adalah bahasa yang lebih kompleks dan itu berarti kompiler membuat kode yang lebih kompleks darinya. karena itu, menemukan bahwa masalah berasal dari bug kompiler, daripada kesalahan kode lebih mudah di c.
juga c bahasa lebih barebone, dan lebih mudah untuk mengikuti representasi majelisnya, yang seringkali mudah diprediksi.
c ++ lebih fleksibel, tetapi c lebih cocok untuk hal-hal tingkat rendah atau tertanam.
Di sisi lain, "sebagian besar program Linux" cukup menyesatkan. Lihatlah aplikasi grafis. Python mendapatkan semakin banyak tanah terutama di lingkungan GUI di Linux. Tentang hal yang sama yang terjadi dengan Windows dan .NET.
Setelah membaca email berikut dari Linus Torvalds pencipta linux. Saya tidak tahan untuk berpikir bahwa jawaban di atas salah. Dia tampaknya berpikir bahwa programmer C ++ bukan programmer sistem yang baik . Dan bahwa fitur tambahan dalam C ++ sering menyebabkan lebih banyak masalah dalam jangka panjang dibandingkan dengan manfaat yang mereka bawa dalam jangka pendek. Walaupun orang mungkin tidak setuju dengannya, sulit untuk melebih-lebihkan pengaruh yang dimilikinya terhadap sistem operasi linux.
C++
lebih baru dariC
, tapi itu agak tidak relevan. Mereka adalah bahasa yang berbeda.