- Vala เป็นภาษาโปรแกรมที่มีเป้าหมายเพื่อมอบความสามารถของภาษาโปรแกรมสมัยใหม่ให้แก่นักพัฒนา GNOME
- เมื่อเทียบกับแอปพลิเคชันและไลบรารีที่เขียนด้วย C จะไม่เพิ่มข้อกำหนดด้านรันไทม์เพิ่มเติมและไม่ใช้ ABI ที่แตกต่างกัน
- ฟีเจอร์ภาษาสมัยใหม่ที่รองรับ: อินเทอร์เฟซ, พร็อพเพอร์ตี, ซิกแนล, Foreach, แลมบ์ดาเอกซ์เพรสชัน, การอนุมานชนิดข้อมูลสำหรับตัวแปรโลคัล, เจเนอริก, ชนิดแบบ Non-null, การจัดการหน่วยความจำ, การจัดการข้อยกเว้น
- สามารถเขียนโค้ดได้สะดวกด้วยการใช้แอบสแตรกชันระดับสูงในแนวทางเชิงวัตถุ และผสานรวมอย่างลึกซึ้งกับเทคโนโลยีของ GNOME เช่น GObject, GTK
- คอมไพล์โค้ดเป็นไบนารีเนทีฟที่รวดเร็วมาก สามารถนำโค้ด C เดิมกลับมาใช้ในโปรแกรม Vala หรือสร้างโค้ด C จาก Vala ได้
ความเข้ากันได้กับไลบรารี C เดิม
- Vala ถูกออกแบบมาให้เข้าถึงไลบรารี C เดิมได้โดยไม่ต้องมีรันไทม์ไบน์ดิง โดยเฉพาะไลบรารีที่อิงกับ GObject
- หากมีเพียงไฟล์ API ที่มีการประกาศคลาสและเมธอดด้วยไวยากรณ์ของ Vala ก็สามารถใช้ไลบรารีนั้นร่วมกับ Vala ได้
- ปัจจุบัน Vala มาพร้อมกับไบน์ดิงสำหรับ GLib และ GTK+
คอมไพเลอร์ Vala valac
valac เป็นคอมไพเลอร์แบบ self-hosting ที่แปลงซอร์สโค้ด Vala ให้เป็นซอร์สโค้ด C และไฟล์เฮดเดอร์
- ใช้ระบบชนิดข้อมูลของ GObject เพื่อสร้างคลาสและอินเทอร์เฟซที่ประกาศไว้ในซอร์สโค้ด Vala
- ไวยากรณ์ของ Vala คล้ายกับ C# แต่มีการปรับให้เข้ากับระบบชนิดข้อมูลของ GObject ได้ดียิ่งขึ้น
การใช้งานคลาสและเมธอดที่เขียนด้วย Vala จาก C
- เพียงติดตั้งไฟล์เฮดเดอร์ที่สร้างจากไลบรารี Vala ก็สามารถเข้าถึง API แบบ GObject ของไลบรารี Vala จากแอปพลิเคชัน C ได้ตามวิธีปกติ
- เนื่องจาก Vala parser ถูกเขียนเป็นไลบรารี และสามารถใช้ข้อมูลทั้งหมดในช่วงคอมไพล์ตอนสร้างไบน์ดิงได้ จึงน่าจะเขียนตัวสร้างไบน์ดิงเพื่อเข้าถึงไลบรารี Vala จากแอปพลิเคชันที่เขียนด้วย C# เป็นต้นได้ไม่ยาก
ความเห็นของ GN⁺
- Vala มีข้อดีคือเป็นภาษาเชิงวัตถุที่มีไวยากรณ์คล้าย C และผสานรวมกับเทคโนโลยี GNOME ได้ดี โดยเฉพาะเหมาะกับการพัฒนาแอปพลิเคชัน GUI ที่เชื่อมต่อกับ GTK, Granite เป็นต้นได้ง่าย
- Vala เป็นภาษาที่ออกแบบมาเฉพาะสำหรับการพัฒนาสภาพแวดล้อมเดสก์ท็อป GNOME จึงดูไม่น่าจะมีการใช้งานกว้างขวางมากนักในด้านอื่น
- Vala ที่มีไวยากรณ์คล้าย C# น่าจะช่วยให้นักพัฒนาที่คุ้นเคยกับ C# เข้ามามีส่วนร่วมในการพัฒนา GNOME ได้ง่ายขึ้น
- เป้าหมายของ Vala ที่ต้องการให้ความสำคัญกับความเข้ากันได้กับไลบรารี C เดิม พร้อมรองรับฟีเจอร์ภาษาสมัยใหม่ เป็นแนวคิดที่สดใหม่ แต่ก็อาจทำให้ความเป็นเอกลักษณ์ของภาษานั้นลดลง
- หากดูจากโปรเจกต์ Vala จะพบว่าส่วนใหญ่เป็นแอปเดสก์ท็อปสำหรับ GNOME หรือ elementary OS แต่ก็เป็นภาษาที่สามารถนำไปใช้กับการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ได้เช่นกัน เพียงแต่ระบบนิเวศในด้านนั้นยังไม่มากนัก
- ยังไม่ชัดเจนว่า Vala จะถูกใช้อย่างแพร่หลายเพียงใด แต่ในระบบนิเวศ GNOME การใช้ Vala แทน C ก็น่าคาดหวังเรื่องการเพิ่มผลิตภาพได้
- ยังมีภาษาอีกตัวชื่อ Genie ที่มีไวยากรณ์คล้าย Vala และสามารถใช้เทคโนโลยี GNOME ได้เช่นกัน โดยมีจุดเด่นคือใช้การเยื้องแบบ Python เพื่อแยกบล็อกโค้ด จึงอาจพิจารณาเป็นทางเลือกแทน Vala ได้
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
valac)