แนะนำภาษาโปรแกรม Borgo
- ต้องการภาษาสำหรับเขียนแอปพลิเคชันที่แสดงออกได้ดีกว่า Go แต่ไม่ซับซ้อนเท่า Rust
- Go เรียบง่ายและตรงไปตรงมา แต่บ่อยครั้งก็อยากให้มีความปลอดภัยด้านประเภทข้อมูลมากกว่านี้
- Rust ใช้งานได้ดี (อย่างน้อยสำหรับโค้ดเธรดเดียว) แต่มีขอบเขตกว้างและซับซ้อนเกินไป และบางครั้งก็ชวนให้ปวดหัว
- Borgo เป็นภาษาใหม่ที่ทรานสไพล์เป็น Go และเข้ากันได้อย่างสมบูรณ์กับแพ็กเกจ Go ที่มีอยู่เดิม
- ไวยากรณ์ของ Borgo คล้าย Rust โดยสามารถใส่เซมิโคลอนได้ตามต้องการ
ฟีเจอร์หลัก
- ชนิดข้อมูลเชิงพีชคณิตและการจับคู่แพตเทิร์น
- ใช้ Option แทน nil
- ใช้ Result แทนการคืนค่าหลายค่า
- การจัดการข้อผิดพลาดด้วยตัวดำเนินการ
?
รันบนเครื่องโลคัล
- Borgo เขียนด้วย Rust จึงต้องใช้ cargo
- หากต้องการคอมไพล์ไฟล์ .brg ทั้งหมดในโฟลเดอร์ปัจจุบัน:
- คอมไพเลอร์จะสร้างไฟล์ .go และสามารถรันไฟล์เหล่านั้นได้ตามปกติ
ความเห็นของ GN⁺
- Rust เป็นภาษาที่ทรงพลัง แต่มีเส้นโค้งการเรียนรู้ที่ชันและอุปสรรคในการนำมาใช้ค่อนข้างสูง ส่วน Borgo ดูเป็นความพยายามที่น่าสนใจในการนำข้อดีของ Rust มาใช้ในอีโคซิสเต็มของ Go อย่างไรก็ตาม เนื่องจากยังอยู่ในระยะเริ่มต้น จึงคาดว่าอีโคซิสเต็มยังไม่พร้อมมากนัก
- การปรับปรุงการใช้ nil และการจัดการข้อผิดพลาดด้วย Option และ Result รวมถึงการทำให้การจัดการข้อผิดพลาดง่ายขึ้นด้วยตัวดำเนินการ
? น่าจะแก้จุดที่นักพัฒนา Go มักรู้สึกไม่สะดวกได้
- การที่ยังสามารถใช้ไลบรารี Go เดิมได้ตามเดิมถือเป็นข้อดีอย่างมาก แต่ในเมื่อยืมไวยากรณ์แบบ Rust มา นักพัฒนา Go อาจต้องใช้เวลาปรับตัว
- เนื่องจากเป็นแนวทางแบบ transpile จึงมีความเป็นไปได้ว่าจะเสียเปรียบเมื่อเทียบกับโค้ด Go แบบเนทีฟในเรื่องการดีบักหรือประสิทธิภาพขณะรันไทม์ จึงอาจยังเร็วเกินไปสำหรับการนำไปใช้กับโค้ดโปรดักชันขนาดใหญ่
- เช่นเดียวกับที่ Kotlin ค่อย ๆ เพิ่มส่วนแบ่งในอีโคซิสเต็ม JVM หาก Borgo ต้องการเป็นทางออกของฝั่ง Go ก็ยังต้องปรับปรุงอย่างต่อเนื่องในหลายด้าน เช่น คุณภาพโค้ด ประสิทธิภาพการพัฒนา และเส้นโค้งการเรียนรู้ หากพัฒนาต่อไปได้ดี ก็มีโอกาสจะกลายเป็นทางเลือกที่น่าสนใจในโลกของ Go
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สรุป:
impl, ไวยากรณ์ของ channel และ goroutine, ฟังก์ชัน built-inzeroValue()pub/privateมาใช้แทนวิธีของ Go ที่แยกการมองเห็นฟิลด์ของ struct ด้วยตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ก็เป็นจุดที่ได้รับการมองในแง่บวก