Russ Cox (@ _rsc ) นักพัฒนาโครงการ Go ประกาศข้อเสนอชุด Go 2 สำหรับการปรับปรุงส่วนสำคัญๆ ของภาษา Go ได้แก่การดักความผิดพลาด และการรองรับ Generic
การดักความผิดพลาดจากเดิมที่ภาษา Go ไม่ใช้ exception แต่อาศัยการคืนค่าความผิดพลาดและต้องตรวจสอบทุก statement ทำให้โค้ดค่อนข้างเลอะ การออกแบบใหม่อาศัยคำสำคัญ check และ handle โดย check ไว้ตรวจว่าฟังก์ชั่นที่ตามหลังทำงานผิดพลาดหรือไม่ และ handle ทำหน้าที่เป็นชุดคำสั่งจัดการความผิดพลาดที่เกิดขึ้น
อีกส่วนคือการรองรับ Generics ที่ระบุว่าตัวแปรที่จะถือว่าใช้งานได้ต้องมีหน้าตาเป็นอย่างไรบ้าง เช่น รองรับการเปรียบเทียบค่ากัน หรือสามารถรวมค่าเข้าด้วยกันได้
ฟีเจอร์ต่างๆ ของ Go 2 จะไม่ได้ออกเป็นอัพเดตใหญ่ๆ ทีเดียว แต่ค่อยๆ ผ่านกระบวนการออกแบบและทดสอบความคิดจนกว่าจะเข้ามาเป็นส่วนหนึ่งของภาษาหลัก ตอนนี้ข้อเสนอต่างๆ รวมไว้ในเว็บ Go 2 Draft Designs โดยนักพัฒนาสามารถเข้าไปแสดงความเห็นได้
Comments
ในที่สุดก็จะยอมเพิ่ม Generics สักที Reflect กันอยู่นมนาน
SPICYDOG's Blog
ไม่ใช่ยอมเพิ่มครับ นี่เป็นแค่การขอความเห็นจากชุมชนเฉยๆ ยังไม่สัญญาว่าจะยอมเพิ่ม และ Go 2 ยังอีกยาวไกล (ไกลแบบ long term มองยาวระดับห้าปีสิบปี)
อย่างที่ทราบขั้นตอนพัฒนา Golang แต่เดิมคือผู้พัฒนาทั้งสามคน (Griesemer, Pike, Thompson) ต้องเห็นพ้องในฟีเจอร์ใดๆหมดทุกคนก่อนจะถูกนำเข้าไปในภาษาหลัก ปัจจุบันแนวทางนี้ยังใช้อยู่แต่ในสเกลที่ใหญ่ขึ้น อาศัยความเห็นจากชุมชนและ Go Team ต้องเห็นพ้องกัน ปัญหาคือ Go Team ยังไม่ convince เรื่อง Generic เลยครับ
ดังนั้นที่ Russ Cox (หัวฯของ Go Team ปัจจุบัน) เสนอ draft มานี่ไม่ได้หมายความอะไรมากไปกว่า "นี่คือความเห็นผมว่าอาจทำแบบนี้ได้ ทางชุมชนเห็นว่าไง และใช่ ต้องโน้มน้าวทีมให้ได้ว่าทำไม ยังไง"
.
ซึ่งจากประวัติข้อเสนอของชุมชน(ไปอ่านได้ใน issue บน github)หลายๆฟีเจอร์ก็ยังติดอยู่ที่ Go Team ไม่ convince ค้างอยู่แบบนั้นก็เยอะ
ครั้งนี้ก็เช่นกัน ยังไม่ได้ข้อสรุปใดๆ เพียงรอบนี้ engage community มากขึ้น สาเหตุถ้าใครตาม ดรา ม่า v go คงเห็นภาพชัดเจน XD
ส่วนตัวผมเห็นด้วยกับ Go Team, ถ้าท่านใดใช้งาน golang และมีความเห็นเกี่ยวกับพวกนี้ เขียน blog หรือบทความ แล้วส่งลิงค์ไปได้ครับ :)
I see ขอบคุณครับ อ่านไวรีบดีใจไปหน่อย
SPICYDOG's Blog