Lua คืออะไรครับ

  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
  • warning: realpath() [function.realpath]: SAFE MODE Restriction in effect. The script whose uid is 1005 is not allowed to access /tmp owned by uid 0 in /var/www/sites/sugree/codenone.com/subdomains/www/html/includes/file.inc on line 190.
sugree's picture

Lua เป็นภาษาสคริปต์ครับ เล็ก เรียบง่าย ถูกออกแบบมาเพื่อใช้ร่วมกับภาษาอื่นโดยเฉพาะ นั่นแปลว่าตัวมันเองแทบจะทำอะไรไม่ได้ แค่อยากจะเปิด socket ก็ไม่ได้ซะแล้ว ต้องเขียนด้วยภาษาอื่น เช่น C เป็นต้น ซึ่งการเขียนโมดูลเข้ามาเสริมนั้นง่ายมากๆ ไม่เหมือนกับ Python ที่เรื่องมาก เขียนยาว แล้วยังยากด้วย แต่ในข้อเสียก็มีข้อดี เนื่องจากมันเขียนด้วยภาษาอื่น ซึ่งมักจะเป็น C หรืออะไรแนวๆ นี้ ประสิทธิภาพที่ได้จึงดีมากๆ

การเขียนด้วย Lua จึงเป็นการผสมผสานความยืดหยุ่นและประสิทธิภาพเข้าด้วยกัน ส่วนใหญ่จะมีสองแนว

  1. เป็นตัวเชื่อม - เขียนโปรแกรมหลักด้วย Lua ซึ่งไปเชื่อมกับภาษาอื่นๆ อีกเพียบ ได้ประสิทธิภาพ 80%
  2. เป็นตัวเสริม - โปรแกรมหลักเป็น C แล้วให้เขียนโมดูลเสริมด้วย Lua อย่างพวก AI นี่ใช้ Lua จะได้ปรับแต่งง่าย เกมหลายเกมใช้วิธีนี้ โดยเฉพาะพวกวางแผน

ที่น่าสนใจก็คือ มันสนับสนุน Thread แบบจริงจังครับ เขียนง่าย ใช้สะดวก ถ้าเรื่องแนวนี้ Python แพ้กระจุย อ้อ ส่วนขนาดที่ว่าเล็กนี่ Lua ทั้งตัวขนาดประมาณ 200 KB ส่วน Python จะอยู่ประมาณ 1.5 MB

เวลาผมนึกถึง Lua ผมจะนึกถึงพวก Glue language
สมัยก่อนถ้าพูดถึง glue language แล้วจะนึกถึงเจ้า Tcl
ซึ่งมีวัตถุประสงค์ในตอนเริ่มเหมือนกับ Lua นั่นคือ เพื่อใช้ "embedded into applications"

พอจะมีตัวอย่างการใช้งานหรือเปล่าครับ

The Ubuntu Counter Project - user number # 13421

..

sugree's picture

หมายถึงโค้ด หรือว่าโปรแกรมที่นำ lua ไปใช้?

มีรายชื่อของงานที่ใช้ lua ที่ http://www.lua.org/uses.html ลองดูตัวอย่างแบบโด่งดัง

  • World of Warcraft
  • FarCry

ย้าย Codenone

ประกาศย้าย Codenone ไปใช้ Forum ของ Blognone แทนครับ ตามไปตั้งกระทู้ต่อได้ที่ Codenone Forum (รายละเอียดอ่านจากกระทู้ ย้าย Codenone ไปรวมกับ Blognone)

กระทู้เก่าๆ จะย้ายตามไปในภายหลัง ตอนนี้ปิดการโพสต์กระทู้ไว้ เหลือไว้เฉพาะอ้างอิงเท่านั้น