ในความพยายามที่จะแทนที่ C ++ ที่น่ายกย่อง แต่เชื่องช้า นักวิจัยของ Google ได้แนะนำภาษาการเขียนโปรแกรมโอเพ่นซอร์ส "ทดลอง" ใหม่ล่าสุดที่ชื่อว่า Carbon
Carbon สามารถทำหน้าที่เป็นภาษาที่สืบทอดต่อจาก C ++ ซึ่งเป็นจุดเริ่มต้นที่ง่ายสำหรับนักพัฒนาในภาษาที่ใหม่กว่าซึ่งกล่าวถึงแนวคิดการพัฒนาร่วมสมัยเช่นความปลอดภัยของหน่วยความจำและชื่อสามัญ
ซึ่งจะคล้ายกับวิธีที่ Microsoft สร้าง Typescript เพื่ออัปเดต JavaScript และ Kotlin เพื่อเสริมจุดอ่อนใน Java
Google ได้พัฒนาภาษาโปรแกรมจำนวนมากตลอดหลายปีที่ผ่านมา ซึ่งบางภาษาก็ได้รับความอื้อฉาวและมีชื่อเสียงอย่างมาก
ตัวอย่างเช่น Golang (หรือเพียงแค่ Go) ได้รับการพัฒนาเพื่ออำนวยความสะดวกในการสร้างเซิร์ฟเวอร์และระบบแบบกระจายและต่อมาได้รับการยอมรับจากสาธารณชนทั่วไป
เดอะดาร์ท ภาษาโปรแกรมซึ่งสร้างขึ้นเพื่อใช้แทน JavaScript ไม่เป็นที่รู้จักจนกว่าจะมีการเปิดตัว Flutter
Chandler Carruth พนักงานของ Google ได้นำเสนอแนวคิดเกี่ยวกับภาษาการเขียนโปรแกรมใหม่ที่เรียกว่า Carbon เมื่อวันที่ 19 กรกฎาคม พ.ศ. 2022 ที่การประชุม Cpp North ในเมืองโตรอนโต ตามคอนเนอร์ เฮอกสตราที่เข้าร่วมและบันทึกสไลด์
เพื่อกำหนดสถานการณ์ Carruth ได้แสดงให้เห็นว่าภาษาโปรแกรมที่เป็นที่นิยมมากที่สุดในปัจจุบันมีลูกหลานที่ช่วยให้นักพัฒนาสามารถทำงานได้อย่างรวดเร็วและยังได้รับประโยชน์จากการออกแบบภาษาร่วมสมัยอีกด้วย
เริ่มต้นด้วยการแนะนำทั่วไปของภาษาการเขียนโปรแกรม Carbon รวมถึงคุณลักษณะต่างๆ วัตถุประสงค์ของการประดิษฐ์ของ Google และอื่นๆ
บทนำสู่ภาษาการเขียนโปรแกรมคาร์บอน
เมื่อวันที่ 19 กรกฎาคม พ.ศ. 2022 Google ได้เปิดเผยว่า Carbon เป็นภาษาโปรแกรมใหม่ล่าสุดที่สร้างขึ้น มีวัตถุประสงค์เพื่อแทนที่ C ++ ในการทดลอง
ขอบคุณที่ ระบบยาสามัญซึ่งขจัดความจำเป็นในการตรวจสอบโค้ดซ้ำสำหรับการสร้างอินสแตนซ์แต่ละครั้ง Carbon จะถูกสร้างบนพื้นฐานของแนวคิดการเขียนโปรแกรมสมัยใหม่
ภายในสิ้นปีนี้ การออกแบบวางแผนที่จะให้เวอร์ชันปฏิบัติการพื้นฐาน (เวอร์ชัน 0.1)
ความสมบูรณ์ของหน่วยความจำเป็นองค์ประกอบสำคัญที่ C++ ขาดหายไป หนึ่งในแหล่งที่มาหลักของข้อบกพร่องด้านความปลอดภัยคือปัญหาการเข้าถึงหน่วยความจำ
การพัฒนาการตรวจสอบขอบเขตแบบไดนามิก การติดตามสถานะที่ไม่ได้กำหนดค่าเริ่มต้นที่มากขึ้น และโหมดการสร้างดีบักที่เป็นค่าเริ่มต้นอย่างละเอียดเป็นเป้าหมายของทีม Carbon ผู้สร้างตั้งใจที่จะสร้างชุดย่อย Carbon ที่ปลอดภัยเมื่อเวลาผ่านไป
อย่างไรก็ตาม ต่อไปนี้คือคุณลักษณะที่สำคัญบางประการของภาษาการเขียนโปรแกรมใหม่:
- หากต้องการตั้งชื่อประเภท ให้ใช้นิพจน์
- ยาชื่อสามัญที่แข็งแกร่งพร้อมการตรวจสอบคำจำกัดความ
- ประเภทดำเนินการอินเทอร์เฟซโดยเฉพาะ
- ประโยคแนะนำตัวและไวยากรณ์เบื้องต้น
- พอยน์เตอร์อนุญาตการเข้าถึงและการกลายพันธุ์ได้ไม่จำกัด
- ค่าสำหรับพารามิเตอร์อินพุตของฟังก์ชันเป็นแบบอ่านอย่างเดียว
- เนมสเปซรูทคือแพ็คเกจ
- สามารถนำเข้า API ได้โดยใช้ชื่อแพ็คเกจ
- มีการประกาศเมธอดผ่านพารามิเตอร์อ็อบเจ็กต์ที่ชัดเจน
- ชั้นเรียนถือเป็นที่สิ้นสุดโดยค่าเริ่มต้น มรดกมีเพียงหนึ่งเดียว
คุณสมบัติของคาร์บอน
ทันสมัยและกำลังพัฒนา
- การอัพเกรดระหว่างรุ่น Carbon นั้นเรียบง่ายและอิงจากเครื่องมือ
- การสนับสนุนภาษาที่แข็งแกร่ง โดยเฉพาะอย่างยิ่งหากคุณเคยใช้ C ++ และง่ายต่อการเรียนรู้
- รากฐานที่ปลอดภัยกว่าและแนวทางทีละขั้นตอนสำหรับชุดย่อยที่ปลอดภัยสำหรับหน่วยความจำ
ยินดีต้อนรับชุมชนโอเพ่นซอร์ส
- ชุมชนที่มุ่งมั่นอบอุ่น ยอมรับ และเชิญชวน
- จุดมุ่งหมายและลำดับความสำคัญมีความชัดเจนและการกำกับดูแลที่เข้มแข็ง
- กลยุทธ์แบบครบวงจรพร้อมคอมไพเลอร์ ไลบรารี เอกสารประกอบ เครื่องมือ การจัดการแพ็คเกจ และอื่นๆ
รวดเร็วและเข้ากันได้กับ C++
- ทำงานร่วมกับ รหัส C ++ คุณมีอยู่แล้ว รวมถึงการสืบทอดและเทมเพลต
- ด้วย LLVM ประสิทธิภาพเทียบเท่ากับ C++ และการเข้าถึงบิตและที่อยู่ระดับต่ำ
- บิลด์ที่รวดเร็วและปรับขนาดได้ และเข้ากันได้กับระบบบิลด์ C++ ที่มีอยู่ของคุณ
เหตุใด Google จึงสร้างภาษาโปรแกรม Carbon
ซอฟต์แวร์ที่มีความสำคัญต่อประสิทธิภาพส่วนใหญ่ยังคงเขียนด้วยภาษา C++ ซึ่งมีฐานรหัสและการลงทุนจำนวนมากและขยายออกไป
อย่างไรก็ตาม กำลังประสบปัญหาในความก้าวหน้าและตอบสนองความต้องการของนักพัฒนาดังที่ได้กล่าวไว้ข้างต้น สาเหตุหลักมาจากหนี้ทางเทคโนโลยีที่สะสมมาหลายปี
เป็นการยากที่จะปรับปรุง C++ แบบทีละขั้นเนื่องจากหนี้ทางเทคนิคที่เกิดขึ้นตลอดจนปัญหาในกระบวนการวิวัฒนาการ
แนวทางที่เหมาะสมที่สุดในการแก้ปัญหาเหล่านี้คือการเริ่มต้นด้วยพื้นฐานภาษาที่แข็งแกร่ง เช่น ระบบชื่อสามัญร่วมสมัย โครงสร้างรหัสแบบแยกส่วน และรูปแบบที่สอดคล้องกันและตรงไปตรงมา แทนที่จะสืบทอดประเพณีของ C หรือ C++ โดยตรง
Go, Swift, Kotlin, Rust และภาษาร่วมสมัยอื่น ๆ อีกมากมายมอบประสบการณ์การพัฒนาที่โดดเด่นอยู่แล้ว นักพัฒนาที่สามารถใช้หนึ่งในภาษาปัจจุบันเหล่านี้ควร
น่าเสียดายที่การนำไปใช้และการย้ายจาก C++ ถูกขัดขวางอย่างมากจากการออกแบบของภาษาเหล่านี้ อุปสรรคเหล่านี้รวมถึงค่าใช้จ่ายด้านประสิทธิภาพและการปรับเปลี่ยนการออกแบบที่มีสำนวนของซอฟต์แวร์
Carbon ไม่ใช่ความพยายามที่จะปรับปรุง C ++ ทีละน้อย ค่อนข้างเป็นกลยุทธ์ทางภาษาที่สืบทอด โดยมุ่งเน้นที่การทำงานร่วมกันของ C++ รวมถึงการยอมรับและการย้ายข้อมูลอย่างกว้างขวางสำหรับนักพัฒนาและฐานรหัสที่ใช้ C++ ในปัจจุบัน
ภาษาแทนที่ C++ ต้องมี:
- ประสิทธิภาพที่เทียบได้กับ C++ เป็นคุณสมบัติที่สำคัญสำหรับนักพัฒนา
- เส้นโค้งการเรียนรู้ที่จัดการได้และระดับความคุ้นเคยสำหรับโปรแกรมเมอร์ C++
- การโยกย้ายที่สามารถปรับขนาดได้และรวมถึงการแปลโค้ด C++ ที่เป็นสำนวนจากต้นทางไปยังแหล่งที่มา
- การแสดงออกที่คล้ายคลึงกันและการสนับสนุนสถาปัตยกรรมและการออกแบบของซอฟต์แวร์ปัจจุบัน
- การทำงานร่วมกันกับ C++ ที่ราบรื่นและเป็นสองทิศทาง ทำให้ไลบรารีใดๆ นำ Carbon มาใช้โดยไม่ต้องพอร์ตส่วนที่เหลือของสแต็ก
ด้วยกลยุทธ์นี้ Google ได้เพิ่มระบบนิเวศที่มีอยู่แล้วสำหรับ C++ และรวมการลงทุนในปัจจุบัน ฐานรหัส และชุมชนการพัฒนา
มีบางภาษาที่ใช้แนวทางนี้สำหรับระบบนิเวศต่างๆ และ Carbon พยายามที่จะเล่นฟังก์ชันที่คล้ายกับ C ++ ในสถานการณ์เหล่านี้:
- ชวา – คอตลิน
- จาวาสคริปต์ – TypeScript
- C++ – คาร์บอน
C ++ VS รหัสคาร์บอน
Carbon ควรมีเส้นโค้งการเรียนรู้ต่ำ หากคุณเป็นนักพัฒนา C++ อยู่แล้ว ประกอบด้วยชุดโครงสร้างทางไวยากรณ์คงที่ซึ่งควรให้เสียงที่เป็นธรรมชาติและง่ายต่อการอ่านและทำความเข้าใจ
ตัวอย่างของรหัส C++:
รหัสคาร์บอนนี้สอดคล้องกับ:
คาร์บอนกับสนิม
ภาษาร่วมสมัยอีกภาษาหนึ่งที่ออกแบบมาอย่างชัดแจ้งเพื่อให้ตรงตามข้อกำหนดของแอปพลิเคชันประสิทธิภาพความปลอดภัยของหน่วยความจำเรียกว่า Rust
เหตุใดจึงไม่ใช้ Rust เพียงอย่างเดียว
ในขณะที่บางคนโต้แย้งว่า Rust ซึ่งเริ่มเป็นโครงการ Mozilla และต่อมาได้เติบโตขึ้นจนมีผู้ติดตามสาธารณะจำนวนมาก เป็นผู้สืบทอดต่อ C++ Carruth สงสัยว่าการขนานนั้นยังใช้ได้อยู่หรือไม่
ไม่ต้องสงสัยเลยว่า Rust เป็นภาษาที่ยอดเยี่ยมสำหรับการเริ่มต้นโปรเจ็กต์ใหม่ แต่เนื่องจากมันขาด "ความสามารถในการทำงานร่วมกันแบบสองทิศทาง" ของภาษาอย่าง Java และ Kotlin จึงเป็นความท้าทายที่จะค่อยๆ เปลี่ยนไปใช้
Carruth บรรยายที่ CPP North และสนับสนุนให้ผู้ที่ใช้ Rust อยู่แล้วทำต่อไป นักพัฒนาที่มีฐานโค้ด C++ ขนาดใหญ่อยู่แล้วซึ่งยากต่อการแปลงเป็น Rust ควรใช้ Carbon
โดยเฉพาะอย่างยิ่ง Carbon คือสิ่งที่ Carruth เรียกว่า "ภาษาผู้สืบทอด" ซึ่งสร้างขึ้นบนระบบนิเวศที่มีอยู่ ในตัวอย่างนี้ C++
ด้วยเหตุนี้ Carbon จึงเข้ากันได้อย่างสมบูรณ์กับรหัส C ++ ปัจจุบัน แม้ว่าจะมีวัตถุประสงค์มากมายกับ Rust เช่น การช่วยเหลือโปรแกรมเมอร์ในการสร้าง
นอกจากนี้ยังมีจุดมุ่งหมายเพื่อให้การย้ายจาก C ++ เป็น Carbon เป็นเรื่องง่ายที่สุด
สรุป
ในที่สุด ผู้สร้างภาษา Carbon ได้พยายามให้ความสนใจกับกระบวนการสร้าง รหัสโครงการสามารถขอและเก็บไว้อย่างเปิดเผยบน Githubและวัฒนธรรมถูกกำหนดให้เปิดกว้างสำหรับทั้งบุคคลทั่วไปและภาคไอที
ทีม Carbon คิดว่า Carbon จำเป็นต้องเป็นโครงการอิสระที่ขับเคลื่อนโดยชุมชน ไม่ใช่แค่โครงการที่ขับเคลื่อนโดย Google เพื่อพัฒนาในอนาคต
Caruth กล่าวเสริมว่าแม้จะได้รับความสนใจจากธุรกิจไอทีจำนวนมาก แต่แนวคิดนี้ยังอยู่ในขั้นทดลอง
เขียนความเห็น