ไม่กี่วันที่ผ่านมา พนักงาน Google เปิดเผย ที่กำลังพัฒนาภาษาโปรแกรมใหม่ที่เรียกว่า "ถ่านหิน", นี้ อยู่ในตำแหน่งแทนการทดลองสำหรับ C++ขยายภาษานี้และขจัดข้อบกพร่องที่มีอยู่
ตามการนำเสนอของ Carruth ภาษาได้รับการพัฒนาเพื่อให้สามารถสร้างซอฟต์แวร์ที่ประสิทธิภาพเป็นสิ่งสำคัญ พวกเขายังต้องการให้นักพัฒนาใช้ประโยชน์จากการออกแบบภาษาโปรแกรมที่ทันสมัยโดยใช้ Carbon
บางสิ่งที่เน้นว่าเป็นไฮไลท์ของ Carbon เมื่อเทียบกับ C++ ได้แก่ ไวยากรณ์ที่ง่ายกว่าและการนำเข้า API. ตามที่ Carruth กล่าว ภาษาทดลองใหม่นี้ควรทำงานร่วมกันแบบสองทิศทางกับ C++ ซึ่งหมายความว่าโครงการควรจะสามารถโยกย้ายจากภาษาหนึ่งไปยังอีกภาษาหนึ่งได้โดยไม่ยาก
นอกจากนี้ ยังเป็นเป้าหมายที่จะพัฒนาภาษาต่อไปในทางที่เปิดกว้างบนอินเทอร์เน็ต ซึ่งใครก็ตามที่ต้องการสามารถสนับสนุนซอร์สโค้ดได้ โครงการนี้เผยแพร่สู่สาธารณะบน Github และเปิดให้บริการสำหรับ ดึงคำขอ
ภาษารองรับการพกพา C++ พื้นฐานสามารถผสานรวมกับโค้ด C++ ที่มีอยู่ และจัดเตรียมเครื่องมือเพื่อทำให้การย้ายโปรเจ็กต์ที่มีอยู่ง่ายขึ้นโดยการแปลไลบรารี C++ เป็นโค้ด Carbon โดยอัตโนมัติ
ตัวอย่างเช่น คุณสามารถเขียนไลบรารีบางไลบรารีใหม่ใน Carbon และใช้ในโครงการ C++ ที่มีอยู่ คอมไพเลอร์ Carbon เขียนโดยใช้ LLVM และ Clang builds
จากลักษณะเด่นของคาร์บอนสิ่งต่อไปนี้โดดเด่น:
- ประสิทธิภาพของโค้ดที่ได้นั้นเทียบได้กับ C++ ในขณะที่ยังคงความสามารถในการเข้าถึงที่อยู่ระดับต่ำและข้อมูลระดับบิต
- พกพาได้ด้วยโค้ด C++ ที่มีอยู่ รวมถึงการสืบทอดคลาสและเทมเพลต
- การคอมไพล์ที่รวดเร็วและความสามารถในการรวมเข้ากับระบบบิลด์ที่มีอยู่สำหรับ C++
- ลดความซับซ้อนของการย้ายข้อมูลระหว่าง Carbon เวอร์ชันต่างๆ
- จัดเตรียมเครื่องมือที่ปลอดภัยสำหรับหน่วยความจำซึ่งป้องกันช่องโหว่ที่เกิดจากการระบุพื้นที่หน่วยความจำหลังจากที่ปล่อยว่างแล้ว การยกเลิกการอ้างอิงตัวชี้ null และบัฟเฟอร์โอเวอร์โฟลว์
แน่นอนว่าเรามี Rust เป็นทางเลือกแทน C และ C++ แต่นี่ไม่ใช่ภาษาส่วนขยายจริงๆ มันเป็นภาษาที่เต็มเปี่ยม มาเริ่มกันใหม่อีกครั้ง Carbon พยายามที่จะเป็นเหมือน Rust ในขณะที่ยังคงเข้ากันได้กับโลกของ C ++ ในหน้า Github ของมันบอกว่า:
- การจับคู่ประสิทธิภาพ C++ โดยใช้ LLVM พร้อมการเข้าถึงบิตและที่อยู่ระดับต่ำ
- ทำงานร่วมกับโค้ด C++ ที่มีอยู่ของคุณ ตั้งแต่การสืบทอดไปจนถึงเทมเพลต
- บิลด์ที่รวดเร็วและปรับขนาดได้ซึ่งทำงานกับระบบบิลด์ C++ ที่มีอยู่ของคุณ
คาร์บอนถูกอ้างว่ามีความจำเป็นเนื่องจากการปรับปรุงที่เพิ่มขึ้นของ C ++ นั้นเป็นไปไม่ได้อีกต่อไปเนื่องจากสัมภาระในอดีตที่ไม่สามารถกำจัดได้ โดยส่วนตัวแล้ว ฉันจะไปต่อและแนะนำว่า "การปรับปรุง" ที่เพิ่มขึ้นใน C ++ เป็นส่วนหนึ่งของเหตุผลที่เป็นภาษาที่มีขนาดใหญ่ในทางปฏิบัติ
“มีภาษาใหม่ๆ อยู่เสมอที่พยายามจะเป็นผู้สืบทอดของ C++ ฉันยินดีต้อนรับการทดลองเกี่ยวกับภาษาโปรแกรมและรูปแบบการเขียนโปรแกรม แต่ฉันไม่ต้องการให้เกิดความขัดแย้ง เป็นการง่ายที่จะวิพากษ์วิจารณ์ภาษาที่จัดตั้งขึ้น (เราทราบปัญหาของพวกเขา) แต่มักจะเป็นเรื่องยากที่จะเสนอทางเลือกอื่นโดยไม่สร้างปัญหาชุดใหม่ทั้งหมดในกฎของภาษา ห้องสมุด และการกำกับดูแล Carbon เป็นสิ่งใหม่และไม่ได้ระบุไว้จนฉันไม่สามารถแสดงความคิดเห็นทางเทคนิคที่มีความหมายได้” Bjarne Stroustrup นักประดิษฐ์ C++ กล่าวในอีเมล
ในขณะที่ Carbon เริ่มเป็นโครงการภายในของ Google ทีมพัฒนาต้องการลดการมีส่วนร่วมจาก Google หรือบริษัทอื่นๆ ให้เหลือน้อยกว่า 50% ภายในสิ้นปีนี้ ในท้ายที่สุด พวกเขาต้องการมอบโครงการนี้ให้กับมูลนิธิซอฟต์แวร์อิสระ ซึ่งอาสาสมัครจะเป็นผู้ดำเนินการพัฒนา
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติม คุณควรรู้ว่าการพัฒนาของโครงการนั้นเผยแพร่ภายใต้ลิขสิทธิ์ Apache 2.0 และคุณสามารถปรึกษาพวกเขาได้ ในลิงค์ต่อไปนี้.