Lua, hafif yapısı ve inanılmaz esnekliğiyle video oyunlarından akıllı cihazlara kadar pek çok alanda parlayan bir programlama dili. 1993’te Brezilya’da doğan bu dil, özellikle gömülü sistemler ve oyun motorlarında kendine sağlam bir yer edinmiş. Küçük boyutu, C diliyle uyumu ve her ortama kolayca adapte olabilmesi, Lua’yı diğer dillerden ayıran en büyük artılar.
Lua’nın Tarihçesi
Lua Nasıl Ortaya Çıktı?
Lua’nın kökeni, 1990’ların başında Brezilya’daki PUC-Rio Üniversitesi’ne uzanıyor. Roberto Ierusalimschy, Luiz Henrique de Figueiredo ve Waldemar Celes, şirketlerin veri girişini kolaylaştırmak için önce DEL ve SOL adında iki dil geliştirmiş. Ama bu diller ihtiyaçları karşılamayınca, 1993’te Lua sahneye çıkmış.
Lua, Portekizce’de “Ay” demek. SOL (Güneş) diliyle de güzel bir uyum yakalıyor, değil mi?
Lua, farklı dillerden ilham alarak kendi yolunu çizmiş. if
, while
gibi akış kontrolleri ve özellikle table
veri yapısıyla esnekliği zirveye taşımış.
Lua’nın Yolculuğu
- 1993: Lua’nın ilk versiyonu dünyaya merhaba dedi.
- 2000: Lua 4.0 ile başka sistemlere entegre olmak kolaylaştı.
- 2003: Lua 5.0, MIT lisansı ile açık kaynak oldu.
- 2006–2020: 5.1’den 5.4’e kadar yeni özellikler geldi:
- modüller
- farklı sayı türleri
- sabit değişkenler
- metatablolar
Lua’yı Nerede Görürüz?
- World of Warcraft’ın efsanevi arayüzlerinde
- Angry Birds’ün eğlenceli dünyasında
- Wikipedia’nın şablonlarında
- Akıllı cihazlarda
- Robotik sistemlerde
Lua, minik boyutuyla gömülü sistemlerde adeta bulunmaz bir nimet.
Lua’nın Süper Güçleri
-
Küçük ama Kudretli
Sadece ~120 KB’lık boyutuyla her cihaza sığar, hem de performansından ödün vermez. -
Tablo Sistemi
Tek bir veri yapısıyla listeler, sözlükler, hatta nesneler oluşturabilirsiniz. Bu kadar basit! -
Metatablolar
Operatörlerin davranışını değiştirip nesne yönelimli programlamaya kendi tarzınızı katabilirsiniz. -
Esnek Stil
İster prosedürel, ister nesne yönelimli yazın, Lua size ayak uydurur. -
LuaJIT
Lua’nın derlenmiş hali LuaJIT, hızıyla göz kamaştırır.
Lua’nın Zor Yanları
-
nil
Meselesi
tablo["anahtar"] = nil
yazdığınızda veri silinir, ama bu bazen beklenmedik hatalara yol açar. -
1’den Başlayan İndeksler
Çoğu dilde diziler 0’dan başlar, ama Lua 1’den gider. Alışmak biraz zaman alabilir. -
Global Değişken Tuzağı
local
kullanmazsanız, tüm değişkenleriniz global olur. Dikkatli olmak lazım! -
Metatabloların Karmaşası
Yanlış kullanırsanız kodunuz bir anda çözülmesi zor bir bulmacaya dönüşebilir. -
Dokümantasyon Sıkıntısı
Resmi belgeler kısa ve öz, ama bazen fazla öz. Daha fazla örnek olsa fena olmazdı. -
Küçük Topluluk
Lua’nın sadık bir topluluğu var, ama büyük dillerin kalabalık topluluklarıyla yarışamaz.
Son Söz
Lua, minimalist yapısıyla büyük işler başaran bir dil. Ücretsiz ve açık kaynak olması, herkesin ona ulaşabilmesini sağlıyor. Küçük boyutuna rağmen devasa projelerde boy gösteren Lua, özellikle oyun geliştiricileri ve gömülü sistemlerle uğraşanlar için adeta bir hazine.
Lua, yazılım dünyasında küçük ama etkili bir yıldız gibi parlıyor.