ทีมพัฒนา Ruby ประกาศปล่อยภาษา Ruby เวอร์ชัน 4.0.0 อย่างเป็นทางการ ตามธรรมเนียมของชุมชน Ruby ที่จะออกอัปเดตเวอร์ชันใหม่ในวันคริสต์มาสของทุกปี
Ruby 4.0.0 เป็นการอัปเดตใหญ่ที่ต่างจากทุกปีตรงที่มีการเปลี่ยนสโลแกนดั้งเดิมที่ใช้ว่า "programmer happiness" (ความสุขของโปรแกรมเมอร์) เป็น "A language where people gather, a site where people are visible." (ภาษาที่ผู้คนมารวมกัน และเป็นพื้นที่ที่ผู้คนได้แสดงออก) เพื่อสื่อถึงระบบนิเวศของชุมชนนักพัฒนา Ruby ที่มีความสร้างสรรค์และเปิดกว้างเป็นจุดขายร่วมด้วย แทนการใช้แค่ความง่ายของ syntax เป็นจุดขายเพียงอย่างเดียว
โดยการเปลี่ยนแปลงหลายส่วนในระดับภาษาและ runtime มีรายละเอียดสำคัญอ้างอิงจากประกาศอย่างเป็นทางการ ดังนี้
- Ruby::Box
Ruby 4.0 เพิ่ม Ruby::Box ซึ่งเป็นโครงสร้างใหม่สำหรับกำหนดขอบเขตของ constant, class และ method definition ภายใน process เดียวกัน แต่ละ Box จะมี definition space ของตัวเอง โดยไม่ชนกันใน global namespace แบบเดิม
รายละเอียดของ Ruby::Box สามารถตามอ่านได้จากบทความของทีมพัฒนา
-
ZJIT
เพิ่ม ZJIT ซึ่งเป็น Just-In-Time compiler ตัวใหม่ในสถานะ experimental โดย ZJIT ถูกออกแบบมาเพื่อใช้ทดลองแนวคิดด้าน JIT โดยไม่ผูกกับข้อจำกัดของ YJIT ซึ่งตอนนี้ยังไม่มีการเปิดใช้งานเป็นค่าเริ่มต้น และยังไม่แนะนำให้ใช้ใน production -
Ractor
มีการปรับปรุง Ractor เพิ่มเติมจากเวอร์ชันก่อนหน้า เพื่อแก้ไขข้อจำกัดและปรับ behavior ให้สอดคล้องกับการเปลี่ยนแปลงภายในของ Ruby 4.0 โดย Ractor ยังคงเป็น feature ขั้นสูงสำหรับผู้ที่ต้องการใช้งาน concurrency model ของ Ruby ซึ่งไม่จำเป็นสำหรับนักพัฒนาเบื้องต้น -
การเปลี่ยนแปลงอื่นๆ
มีการถอด feature ที่ถูกประกาศ deprecated ไว้ก่อนหน้าออก ปรับปรุง API และ behavior บางส่วนให้สอดคล้องกับ Ruby 4.0 รวมถึงการปรับปรุงเอกสารและ tooling ที่เกี่ยวข้อง
รายละเอียดทั้งหมดสามารถอ่านเพิ่มเติมได้จากประกาศต้นทาง
ที่มา: Ruby 4.0.0 Release, Ruby official blog post: Redesign Site identity
on