Lua je fajn, startuje rychle, JIT je mnohem rychlejší, než cokoli z Pythonu (i než PyPy), ale vždycky jsem bojoval s operátorem # a potom s číslováním polí od jedničky. Prostě přechody mezi jazyky zase takové problémy nedělají (je to jen syntaxe), ale to číslování je "schované" a vyleze vždycky tam, kde to čekáme nejméně :/
No to číslování je sice v Lue logičtější, ale už jsme si všude jinde zvykli na indexy od nuly, takže to skutečně mate. Hlavně při přepisech algoritmů nebo při rychlém přechodu mezi jazyky. A právě tady může Lua Fun trošku pomoci, protože se spousta smyček ušetří (pravda, ty smyčky by stejně byly for-in a ne počítané for, ale i tak).
No líp se mapuje na běžný jazyk, protože první prvek má index taky jedna a ne nula, první řádek v textovém editoru má číslo 1, první řádek v tabulkovém procesoru taky 1 (tedy kromě "sc", který čísluje on nuly), ID generovaná při "autoincrement" většinou taky začíná jedničkou...
Navíc to nevede k problémům s chápáním range(10) v Pythonu, které vrací čísla 0..9, nebo s funkcí len() v prakticky jakémkoli jazyku (nebo new array v těch jazycích, kde se zapisuje kapacita). To v důsledku vede k nelogickému (pro mnohé lidi) chování řezu (slice).
Nám co jsme si už za ta léta zvykli, to tak nepřipadne, ale začátečníci na kurzech to dost zaráží (než si zvyknou ve stylu "nojo to je nekonzistentní IT").
i ve Fortranu, COBOLu a Algolu, což vede k myšlence, že až céčková větev jazyků přišla s indexováním od nuly.
Btw ani jsem nevěděl, že si někdo dal tu práci a udělal sumář:
https://en.wikipedia.org/wiki/Comparison_of_programming_languages_%28array%29#Array_system_cross-reference_list