อย่างที่ Linus Torvalds สัญญาไว้ ในการประชุมสุดยอดโอเพ่นซอร์สครั้งที่แล้ว โดยรักษาคำพูดและไม่มีรายละเอียดที่อาจทำให้การรวมล่าช้าตอนนี้จะผลักดันให้ Rust สำหรับ Linux รวมอยู่ในเคอร์เนล 6.1
การเปลี่ยนแปลงนี้มาพร้อมกับเหตุการณ์สำคัญที่ หลังจาก 31 ปี Linux จะยอมรับภาษาที่สอง สำหรับการพัฒนาเคอร์เนล ด้วยเหตุนี้ การโต้วาทีที่เกี่ยวข้องจึงเกิดขึ้นอีกครั้งเกี่ยวกับความเป็นไปได้ที่จะละทิ้ง C เพื่อสนับสนุนภาษา Rust เนื่องจากข้อได้เปรียบที่นำเสนอ ชี้แจงเล็กน้อย: ในขณะนี้ Rust ได้เพียง API อย่างเป็นทางการเพื่ออนุญาตให้มีการพัฒนาโมดูลหรือไดรเวอร์แยกต่างหาก
สำหรับคำถามเกี่ยวกับความเป็นไปได้ที่จะละทิ้งภาษา C ผู้สร้างภาษา C ได้ระบุสาเหตุหลายประการว่าทำไมความคิดริเริ่มในทิศทางนี้จึงมีแนวโน้มที่จะล้มเหลว:
คนแรกคือ เครื่องมือภาษาซี
ภาษา C ไม่ได้เป็นเพียงภาษาเท่านั้น แต่ยังเป็นเครื่องมือในการพัฒนาทั้งหมดที่พัฒนาขึ้นสำหรับภาษานี้ด้วย คุณต้องการวิเคราะห์แบบคงที่ของซอร์สโค้ดของคุณหรือไม่? – มีหลายคนที่ทำงานเกี่ยวกับหัวข้อนี้สำหรับ C. Tools เพื่อตรวจจับการรั่วไหลของหน่วยความจำ การแข่งขันของข้อมูล และข้อผิดพลาดอื่นๆ มีมากมายแม้ว่าภาษาของคุณจะพร้อมกว่าก็ตาม
หากคุณต้องการกำหนดเป้าหมายไปยังแพลตฟอร์มที่ไม่คุ้นเคย คุณอาจใช้สถานะของ C. C เนื่องจากภาษากลางของการคำนวณในปัจจุบันทำให้เป็นเครื่องมือในการเขียนที่คุ้มค่า และมีเครื่องมือมากมายที่เขียนขึ้น
หากใครมีห่วงโซ่เครื่องมือที่ใช้งานได้ เหตุใดจึงเสี่ยงต่อการเปลี่ยนภาษา "C ที่ดีกว่า" ควรสร้างผลงานพิเศษจำนวนมากเพื่อกระตุ้นให้ใช้เวลาตั้งค่า toolchain ใหม่ เป็นไปได้หรือไม่นั้นต้องรอดู
ความไม่แน่นอนของภาษาใหม่
ก่อนที่ภาษาจะถึงวุฒิภาวะ มักจะมีปัญหาและปรับเปลี่ยนอย่างมีนัยสำคัญเพื่อแก้ไขปัญหาทางความหมายของภาษา และภาษายังสอดคล้องกับโฆษณาหรือไม่ คุณสามารถเสนอบางอย่าง เช่น "เวลาในการรวบรวมที่พิเศษ" หรือ "เร็วกว่า C" แต่เป้าหมายเหล่านี้ทำได้ยากมากเมื่อภาษาเพิ่มชุดคุณลักษณะครบชุด
และผู้ดูแล? แน่นอนว่าคุณสามารถแยกภาษาโอเพ่นซอร์สได้ แต่ฉันสงสัยว่าหลายบริษัทจะสนใจที่จะใช้ภาษาที่พวกเขาอาจถูกบังคับให้เก็บไว้ในภายหลัง การเดิมพันในภาษาใหม่นั้นมีความเสี่ยงสูง
ภาษากล่าวถึงจุดปวดที่แท้จริงของ C หรือไม่? ปรากฎว่าผู้คนไม่เห็นด้วยกับจุดอ่อนของ C เสมอไป การจัดสรรหน่วยความจำ การจัดการอาร์เรย์และสตริงมักจะซับซ้อน แต่ด้วยไลบรารีที่เหมาะสมและกลยุทธ์หน่วยความจำที่ดี ภาษาไม่ได้กล่าวถึงปัญหาที่ผู้ใช้ขั้นสูงไม่สนใจจริงๆ หรือ หากเป็นเช่นนั้น มูลค่าที่แท้จริงอาจต่ำกว่าที่คาดไว้มาก
ขาดนักพัฒนาที่มีประสบการณ์สำหรับภาษาใหม่
มีการกล่าวถึงว่าภาษาใหม่จะมีกลุ่มนักพัฒนาที่มีประสบการณ์น้อยกว่ามาก สำหรับบริษัทขนาดกลางหรือขนาดใหญ่ นี่เป็นปัญหาใหญ่ ยิ่งมีนักพัฒนาที่พร้อมสำหรับบริษัทมากเท่าใด ก็ยิ่งดีเท่านั้น
นอกจากนี้ หากบริษัทมีประสบการณ์ในการสรรหานักพัฒนา C พวกเขาจะไม่ทราบวิธีการรับสมัครสำหรับภาษาใหม่นี้
ข่าวเกี่ยวกับการรวม Rust สำหรับ Linux ในเวอร์ชัน 6.1 ของเคอร์เนล มันมาท่ามกลางการเปลี่ยนแปลงในมุมมองของ Linus Torvalds เกี่ยวกับภาษา Rust
การสนับสนุน Rust สำหรับการพัฒนาเคอร์เนล Linux ยังคงดำเนินต่อไปและ ถือว่าเป็น "ขั้นตอนสำคัญในการเขียนตัวควบคุมในภาษาที่ปลอดภัยยิ่งขึ้น"
Rust ของ Mozilla Research เป็นภาษาการเขียนโปรแกรมประเภทหนึ่งที่เขียนโค้ดสำหรับระบบอินพุต/เอาต์พุตพื้นฐาน (BIOS) ตัวจัดการการบูต ระบบปฏิบัติการ ฯลฯ มีความสนใจ
มันเป็นอนาคตของการเขียนโปรแกรมระบบมากกว่าภาษา C ในความเป็นจริง ผู้เชี่ยวชาญกล่าวว่ามีการรับประกันความปลอดภัยของซอฟต์แวร์ที่ดีกว่า C/C++