เมื่อเร็ว ๆ นี้ มีการประกาศการเปิดตัวรุ่นแรก เป็นอิสระจากภาษาโปรแกรม Luauซึ่งดำเนินต่อไปด้วยการพัฒนา Lua และยังเข้ากันได้กับ Lua 5.1 เวอร์ชันก่อนหน้า
ภาษา Luau คือ ออกแบบมาสำหรับการฝังสคริปต์เอ็นจิ้นเป็นหลัก ในการใช้งานและมุ่งหวังให้มีประสิทธิภาพสูงและใช้ทรัพยากรน้อย รหัสโครงการเขียนด้วย C ++ และเปิดภายใต้ใบอนุญาต MIT
Luau ขยาย Lua ด้วยความสามารถในการตรวจสอบประเภทและบิลด์บางส่วน วากยสัมพันธ์ใหม่ เช่น อักษรสตริง ภาษาเข้ากันได้กับ Lua 5.1 เวอร์ชันก่อนหน้าและบางส่วนกับเวอร์ชันที่ใหม่กว่า. รองรับ Lua Runtime API อนุญาตให้ใช้ Luau กับรหัสและลิงก์ที่มีอยู่แล้ว
ณ วันนี้ Luau ไม่ได้เป็นส่วนหนึ่งของแพลตฟอร์ม Roblox อีกต่อไป เป็นภาษาโอเพ่นซอร์สอิสระ
รันไทม์ของภาษานั้นอิงตามรหัสรันไทม์ Lua 5.1 ที่แก้ไขอย่างหนัก แต่ล่ามได้รับการเขียนใหม่ทั้งหมด การพัฒนาเกี่ยวข้องกับเทคนิคการเพิ่มประสิทธิภาพใหม่บางอย่างที่ทำให้สามารถบรรลุประสิทธิภาพที่สูงขึ้นเมื่อเทียบกับ Lua
เมื่อ Roblox ถูกสร้างขึ้นเมื่อ 15 ปีที่แล้ว เราเลือก Lua เป็นภาษาการเขียนโปรแกรม Lua มีขนาดเล็ก รวดเร็ว ง่ายต่อการผสานรวมและเรียนรู้ และเปิดโอกาสอันยิ่งใหญ่สำหรับนักพัฒนาของเรา
Roblox ส่วนใหญ่สร้างขึ้นบน Lua ซึ่งรวมถึงโค้ดที่พัฒนาภายในหลายแสนบรรทัดซึ่งขับเคลื่อนแอปพลิเคชัน Roblox และ Roblox Studio มาจนถึงทุกวันนี้ และประสบการณ์นับล้านที่นักพัฒนาสร้างมา สำหรับหลายๆ คน ภาษานี้เป็นภาษาการเขียนโปรแกรมภาษาแรกที่พวกเขาเรียนรู้
โปรเจ็กต์นี้พัฒนาโดย Roblox และใช้ในโค้ดแพลตฟอร์มเกมและแอปพลิเคชันที่กำหนดเอง จากบริษัทนี้ รวมทั้งผู้จัดพิมพ์ Roblox Studio ในขั้นต้น Luau ได้รับการพัฒนาหลังปิดประตู แต่ในที่สุดก็ตัดสินใจโอนไปยังหมวดหมู่ของโครงการเปิดเพื่อการพัฒนาร่วมกันต่อไปด้วยการมีส่วนร่วมของชุมชน
คุณสมบัติหลัก:
- ระบบประเภทตามลำดับ ซึ่งใช้ตำแหน่งกลางระหว่างการเขียนแบบไดนามิกและแบบคงที่ Luau อนุญาตให้เขียนแบบคงที่ได้ตามต้องการโดยระบุข้อมูลประเภทผ่านคำอธิบายประกอบพิเศษ
- NS ในตัวประเภท "ใดๆ", "ไม่มี", "บูลีน", "หมายเลข", "สตริง" และ "เธรด" ในขณะเดียวกัน ความสามารถในการใช้การพิมพ์แบบไดนามิกโดยไม่ต้องกำหนดประเภทของตัวแปรและฟังก์ชันอย่างชัดเจนก็ยังคงอยู่
- รองรับสตริงตามตัวอักษร (เหมือนในหลัว 5.3)
- รองรับนิพจน์ "continue" นอกเหนือจากคีย์เวิร์ด "break" ที่มีอยู่แล้ว เพื่อข้ามไปยังการวนซ้ำใหม่ของลูป
- รองรับตัวดำเนินการกำหนดแบบผสม
- รองรับการใช้งาน บล็อคแบบมีเงื่อนไข "If-then-else" ในรูปแบบของนิพจน์ที่คืนค่าที่คำนวณระหว่างการดำเนินการของบล็อก คุณสามารถระบุจำนวนคำสั่ง elseif ได้ตามต้องการในบล็อก
- การปรากฏตัวของโหมดแซนด์บ็อกซ์ ซึ่งอนุญาตให้คุณเรียกใช้รหัสที่ไม่น่าเชื่อถือ ฟังก์ชันนี้สามารถใช้เพื่อจัดระเบียบโค้ดและโค้ดของคุณเองที่เขียนขึ้นโดยนักพัฒนารายอื่น เช่น ไลบรารีของบุคคลที่สามที่ไม่สามารถรับประกันได้ ให้ทำงานเคียงข้างกัน
- ข้อจำกัดของไลบรารีมาตรฐานที่ฟังก์ชันที่อาจสร้างปัญหาด้านความปลอดภัยถูกลบออก ตัวอย่างเช่น ไลบรารี "io" (การเข้าถึงไฟล์และกระบวนการเริ่มต้น), "แพ็คเกจ" (การเข้าถึงไฟล์และโมดูลโหลด), "os" (ฟังก์ชันในการเข้าถึงไฟล์และการเปลี่ยนแปลงตัวแปรสภาพแวดล้อมถูกลบออก), "Debug" (ไม่ปลอดภัย การจัดการหน่วยความจำ), "dofile" และ "loadfile" (การเข้าถึงระบบไฟล์)
- จัดเตรียมเครื่องมือสำหรับการวิเคราะห์รหัสคงที่ การตรวจจับข้อผิดพลาด (Linter) และการตรวจสอบความถูกต้องของการใช้ประเภท
- เครื่องวิเคราะห์ ล่ามไบต์โค้ด และคอมไพเลอร์ที่เป็นเอกสิทธิ์เฉพาะที่มีประสิทธิภาพสูง
- Luau ยังไม่รองรับการคอมไพล์ JIT แต่มีข้อโต้แย้งว่าล่าม Luau นั้นค่อนข้างจะเทียบได้ในด้านประสิทธิภาพกับ LuaJIT ในบางสถานการณ์
ในที่สุด หากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.