ทำไมโปรแกรม Linux ส่วนใหญ่เขียนใน C? ทำไมพวกเขาถึงไม่เขียนด้วย C ++ ซึ่งใหม่กว่า?
ทำไมโปรแกรม Linux ส่วนใหญ่เขียนใน C? ทำไมพวกเขาถึงไม่เขียนด้วย C ++ ซึ่งใหม่กว่า?
คำตอบ:
มีการพูดคุยกันมากมายเกี่ยวกับเรื่องนี้ สาเหตุหลักมาจากเหตุผลทางปรัชญา C ถูกประดิษฐ์ขึ้นเป็นภาษาง่าย ๆ สำหรับการพัฒนาระบบ (ไม่พัฒนาแอพพลิเคชั่นมากนัก) มีข้อโต้แย้งมากมายสำหรับการใช้ C ++ แต่มีข้อโต้แย้งมากมายสำหรับการไม่ใช้ C ++ และการผสานกับ C
ในท้ายที่สุดมันเป็นปัญหาทางประวัติศาสตร์ แอปพลิเคชั่นส่วนใหญ่เขียนด้วยภาษา C เนื่องจากเนื้อหาเคอร์เนลส่วนใหญ่เขียนด้วยภาษาซีและตั้งแต่นั้นมาเนื้อหาส่วนใหญ่เขียนด้วยภาษา C ผู้คนมักจะใช้ภาษาดั้งเดิม
ณ จุดนี้บางคนอาจถามว่า "ตกลงดังนั้นทำไมเคอร์เนลเขียนใน C และไม่ได้พอร์ตไปยัง C ++" . เรื่องนี้ได้รับการพูดคุยเกี่ยวกับ kerneltrapบางเวลาที่ผ่านมา หนึ่งคำอธิบายที่ดีที่สามารถยกมาจากหัวข้อนี้คือการตอบสนองโดย yoshi314 (อ้างโดยตรง):
นั่นเป็นเพราะแอพ c ++ เกือบทุกตัวต้องการไลบรารี่มาตรฐาน c ++ ที่แยกต่างหากเพื่อใช้งาน ดังนั้นพวกเขาจะต้องย้ายพอร์ตไปยังเคอร์เนลและคาดว่าจะมีค่าใช้จ่ายเพิ่มเติมทุกที่
c ++ เป็นภาษาที่ซับซ้อนมากขึ้นและนั่นหมายความว่าคอมไพเลอร์สร้างรหัสที่ซับซ้อนมากขึ้นจากมัน เพราะเหตุนั้นการค้นหาว่าปัญหาเกิดจากข้อผิดพลาดของคอมไพเลอร์มากกว่าข้อผิดพลาดของรหัสจะง่ายกว่าใน c
ภาษาซีเป็นแบร์โบนมากกว่าและง่ายต่อการติดตามการนำเสนอของมันซึ่งมักจะทำนายได้ง่าย
c ++ นั้นมีความหลากหลายมากกว่า แต่ c เหมาะสำหรับสิ่งที่ระดับต่ำหรือฝังมากกว่า
ในทางกลับกัน "โปรแกรม Linux ส่วนใหญ่" ค่อนข้างเข้าใจผิด ดูที่แอปพลิเคชั่นกราฟิก Python ได้รับความนิยมเพิ่มขึ้นเรื่อย ๆ โดยเฉพาะในสภาพแวดล้อม GUI บน Linux เกี่ยวกับสิ่งเดียวกันที่เกิดขึ้นกับ Windows และ. NET
หลังจากอ่านอีเมลต่อไปนี้จาก Linus Torvalds ผู้สร้าง linux ฉันอดคิดไม่ได้ว่าคำตอบข้างต้นไม่ถูกต้อง ดูเหมือนว่าเขาจะคิดว่าโปรแกรมเมอร์ C ++ ไม่ใช่โปรแกรมเมอร์ระบบที่ดี และคุณสมบัติพิเศษใน C ++ มักจะทำให้เกิดปัญหามากขึ้นในระยะยาวเมื่อเทียบกับผลประโยชน์ที่พวกเขานำมาในระยะสั้น ในขณะที่บางคนอาจไม่เห็นด้วยกับเขา แต่ก็ยากที่จะพูดเกินจริงถึงอิทธิพลที่เขามีต่อระบบปฏิบัติการ linux
C++
ใหม่กว่าC
แต่ก็ไม่เกี่ยวข้องเลย พวกเขาเป็นภาษาที่แตกต่างกัน