Bahasa pemrograman ringan yang populer di dunia game development, embedded systems, dan scripting, Lua, baru saja merilis versi terbarunya yaitu Lua 5.5. Rilis ini membawa sejumlah peningkatan signifikan yang menjadikannya lebih efisien, lebih mudah di-maintenance, dan lebih ramah bagi pengembang modern, tanpa kehilangan keunggulan utamanya, yaitu kesederhanaan dan kecepatan.

Bagi yang belum familiar, Lua adalah bahasa scripting kecil, cepat, dan mudah ditambahkan (embeddable) ke dalam aplikasi lain. Banyak game besar seperti World of Warcraft, Roblox, dan Crysis menggunakan Lua untuk logika permainan. Selain itu, Lua juga dipakai di sistem jaringan, IoT, dan bahkan dalam mesin basis data seperti Redis.
Yang membuat Lua istimewa adalah ukurannya yang sangat ringan, interpreter-nya hanya sekitar 300 KB, namun tetap powerful berkat desain bahasanya yang sederhana dan ekstensif.
Salah satu peningkatan paling mencolok di Lua 5.5 adalah penggunaan memori yang jauh lebih hemat, terutama untuk array atau tabel besar. Berkat optimasi struktur data internal, array besar kini menggunakan sekitar 60% lebih sedikit memori dibanding versi sebelumnya. Hal ini sangat penting untuk aplikasi yang menangani data besar di lingkungan terbatas (seperti perangkat IoT atau game dengan banyak entitas).
Lua 5.5 memperkenalkan mode garbage collection (GC) generasional, mirip seperti yang digunakan Java atau .NET, yang membedakan antara objek “baru” dan “lama”. Hasilnya yaitu garbage collection berjalan lebih cepat dan tidak mengganggu performa aplikasi secara drastis.
Selain itu, major garbage collection kini dilakukan secara inkremental, artinya proses pembersihan memori tidak lagi menyebabkan jeda (pause) panjang yang bisa mengganggu pengalaman pengguna, khususnya di game atau aplikasi real-time.
Fungsi utf8.offset() kini tidak hanya mengembalikan posisi awal karakter UTF-8, tetapi juga posisi akhirnya. Hal ini mempermudah manipulasi teks multibahasa, terutama untuk aplikasi yang menangani input pengguna dalam berbagai bahasa (misalnya, game global atau antarmuka web).
Salah satu kritik lama terhadap Lua adalah potensi kesalahan akibat typo pada variabel global, karena Lua secara otomatis membuat variabel baru jika salah ketik. Di Lua 5.5, pengembang kini bisa mendeklarasikan variabel global secara eksplisit, sehingga membantu mencegah bug tak terduga dan meningkatkan kejelasan kode.
Contoh:
global x -- Mendeklarasikan x sebagai variabel global
x = 42
Tanpa deklarasi ini, Lua akan memberi peringatan (jika diaktifkan), mendorong praktik pengkodean yang lebih ketat.
for loop kini hanya-baca (read-only) → mencegah perubahan tidak sengaja.float) dicetak dengan presisi cukup untuk dibaca kembali secara akurat, sehingga menghindari kehilangan data saat serialisasi.table.create() memungkinkan alokasi tabel dengan kapasitas awal yang ditentukan, meningkatkan efisiensi saat membangun struktur data besar.lua.c (interpreter CLI) kini memuat readline secara dinamis, menghindari ketergantungan wajib dan membuat binari lebih ringan.Meski Lua 5.5 menawarkan banyak peningkatan, komunitas mengakui bahwa adopsi versi baru Lua seringkali lambat. Banyak proyek masih menggunakan Lua 5.1, terutama karena kompatibilitas dengan LuaJIT, implementasi Lua berkecepatan tinggi yang belum mendukung versi Lua terbaru.
Namun, seperti yang diingatkan oleh pengembang Lua, Lua dirancang untuk menjadi “embedded”, artinya setiap aplikasi bisa menggunakan versi Lua yang paling cocok—tanpa perlu mengikuti tren versi global. Jadi, meski tidak semua proyek langsung bermigrasi, Lua 5.5 tetap menjadi pilihan ideal untuk proyek baru yang mengutamakan efisiensi dan kejelasan.
Lua 5.5 tetap menggunakan lisensi MIT, yang berarti bebas digunakan, dimodifikasi, dan didistribusikan, bahkan untuk proyek komersial, asalkan mencantumkan pemberitahuan hak cipta asli.
Kode sumbernya tersedia di lua.org, dan siap dikompilasi di hampir semua platform, termasuk Linux, macOS, Windows, dan sistem embedded.
Lua 5.5 bukan sekadar pembaruan rutin, rilis kali ini adalah langkah cerdas untuk menjaga relevansi bahasa scripting klasik di era modern. Dengan penggunaan memori yang jauh lebih efisien, garbage collection yang lebih halus, dan fitur keamanan kode yang ditingkatkan, Lua tetap menjadi pilihan utama bagi siapa saja yang butuh kecepatan, ukuran kecil, dan fleksibilitas tinggi.
Bagi pengembang game, insinyur sistem, atau pembuat alat otomatisasi, Lua 5.5 layak dipertimbangkan untuk proyek berikutnya.
Sumber: