Zum Inhalt springen
Lua Anfรคnger 15 min

Was ist Lua?

Lua ist die schlanke, einbettbare Scriptsprache hinter Roblox, Neovim und unzaehligen Games. Erfahre, warum diese winzige Sprache so maechtig ist.

Aktualisiert:
Inhaltsverzeichnis

Was ist Lua?

Lua (portugiesisch fuer โ€œMondโ€) ist eine kleine, extrem schnelle Scriptsprache, die 1993 an der PUC-Rio in Brasilien entwickelt wurde. Der Clou: Lua ist als einbettbare Sprache konzipiert - sie lebt oft innerhalb groesserer Anwendungen.

Die komplette Laufzeit passt in weniger als 300 KB. Mit LuaJIT erreicht sie Geschwindigkeiten, die mit C mithalten koennen.

Wofuer wird Lua genutzt?

Scripting in Games

  • Roblox - die grosse Ausnahme: Roblox-Scripting ist Luau (Lua-Variante), nicht Lua pur. Hunderte Millionen Spieler erstellen Games in Luau.
  • World of Warcraft - Addon-System
  • Garryโ€™s Mod - Das gesamte Gameplay-Scripting
  • Factorio, Donโ€™t Starve, Defold - Lua als Scripting-Ebene
  • CryEngine, Lร–VE, PICO-8 - weitere Engines

Neovim - moderne Editor-Konfiguration

Die neue Neovim-Welt ist in Lua:

vim.keymap.set("n", "<leader>f", ":Telescope find_files<cr>")
require("lazy").setup(plugins)

Wer Neovim mag, lernt automatisch Lua.

Netzwerk-Infrastruktur

  • NGINX mit lua-nginx-module
  • OpenResty - Web-Plattform basierend auf NGINX + Lua
  • Wireshark - Paket-Dissektoren in Lua

Embedded & IoT

In Firmware und Hardware-Projekten: Lua laeuft auf Systemen mit wenig RAM wunderbar.

Was macht Lua besonders?

Tiny und blitzschnell

Der Interpreter ist winzig. Mit LuaJIT lande Lua regelmaessig in Benchmarks knapp hinter C - und oft vor anderen dynamischen Sprachen.

Nur ein Datentyp: Tables

Der wohl ungewoehnlichste Aspekt: Lua hat eine einzige Datenstruktur - die Table. Sie ist gleichzeitig:

  • Array
  • Dictionary / Hash
  • Objekt / Struct
  • Namespace / Modul
-- Als Array
local arr = {"Max", "Anna", "Leo"}

-- Als Dictionary
local person = {name = "Anna", alter = 28}

-- Gemischt
local bunt = {"erstes", name = "Anna", 42}

Das klingt verrueckt - funktioniert aber erstaunlich gut.

Erste-Klasse Funktionen

local addieren = function(a, b) return a + b end
print(addieren(3, 4))  -- 7

Funktionen sind Werte, die du in Variablen speichern, als Argument uebergeben oder zurueckgeben kannst.

OOP ueber Metatables

Lua hat keine Klassen eingebaut - aber Metatables erlauben es, Klassen selbst zu bauen. Robloxโ€™ Luau hat OOP via __index-Metatable als Standard-Muster etabliert.

Lesbare Syntax

for i, name in ipairs({"Max", "Anna", "Leo"}) do
  if #name > 3 then
    print("Hallo, " .. name .. "!")
  end
end

Keine Klammern um Bedingungen, do ... end statt { ... }, Punkt-Punkt .. fuer String-Konkatenation.

Lua vs. Luau

  • Lua (Referenz) ist die Original-Sprache von PUC-Rio. Aktuell ist Lua 5.4.
  • Luau ist Robloxโ€™s Fork mit Typen, Updates und Roblox-spezifischen Features.
  • Beides ist grossteils kompatibel; Roblox-Devs sollten Luau-Docs nutzen.

Dieser Kurs fokussiert auf Lua 5.4 - die Kenntnisse transferieren sich leicht auf Luau.

Wie fuehlt sich Lua-Code an?

-- Eine kleine Demo
local Person = {}
Person.__index = Person

function Person.new(name, alter)
  local self = setmetatable({}, Person)
  self.name = name
  self.alter = alter
  return self
end

function Person:gruessen()
  print("Hallo, ich bin " .. self.name .. "!")
end

local anna = Person.new("Anna", 28)
anna:gruessen()

Klein und funktional. Keine Schluesselwoerter wie class - Klassen werden selbst gebaut.

Schattenseiten

  • Indizes beginnen bei 1 statt 0 (wie Mathematik, aber ungewohnt)
  • Nur nil und false sind falsy (wie Ruby)
  • Fehler zur Laufzeit - kein Typsystem (in Luau etwas anders)
  • Fuer grosse Codebasen faehlt Infrastruktur (Tooling ist schlanker als bei Python/JS)

Lohnt sich Lua 2026?

Ja, wenn du:

  • Roblox-Spiele bauen willst (unausweichlich)
  • Neovim als Editor anpassen willst
  • Game-Scripting in Engines betreibst
  • NGINX/OpenResty im Backend einsetzt
  • einfach eine kompakte, elegante Sprache lernen willst

Lua macht dich zu einer Art Spezialisten - eine wertvolle Nische. Der Hauptmarkt ist Gaming und Infrastruktur, nicht der allgemeine App-Bau.

Als Naechstes: Im naechsten Kapitel installieren wir Lua.

Zurรผck zum Lua Kurs