> после С++ постоянно синтаксические ошибки на нем сажаю Это просто вопрос привычки, язык тут ни при чем. Добавьте к списку bash и Tcl, и переключайтесь между ними каждые 10 минут
> javascript и php реакции отторжения меня не вызывают
А зря, это примеры просто невыносимо-отвратительных языков программирования. Говорят сейчас пых немного исправляется, но 10 лет назад это было позорище
> что именно делает его быстрым
Если про ванильный lua - то очень легкий рантайм. Интерпретатор lua весит около мегабайта, рантайм никакущий, там просто нечего инициализировать. Если про luajit (а часто пользуются именно им) - то это сильно оптимизированная виртуальная машина, написанная на асме, которая является трассирующим jit-компилятором (то есть оптимизация идёт на основании реальной загрузки программы и самым неожиданным образом). Luajit не скован бинарной совместимостью C/C++ программ, поэтому легко может инлайнить методы из разных библиотек, оптимизировать их по самое не хочу, а то и вовсе вызов до константы схлопнуть.
> всё дело в компиляции в байткод, то на каком этапе это происходит?
Компиляция в байткод происходит на этапе парсинга файла исходника. Более того, её можно пропустить см. luac