История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Если ты берёшь luajit значит ты осознанно идёшь на компромис, ты лишаешь себя некоторых возможных удобств в обмен на скорость. И наоборот, если ты используешь какую то определённую ванильную версию луа, то ты выбираешь её плюшки вместе с чемоданчиком неудобств по переносу на другие версии, если таковое будет.
Только благодаря тому что луа держится на компромисах между, весомыми плюшками и терпимыми неудобствами она может оставаться компактной, простой, более менее быстрой. Luajit же, это бескомпромиссный и радикальный подход, когда самое важное это скорость, в ущерб всему иному, как вспомогательный плюс получается стабильность, но просто потому чо в нём что-то менять это значит переписывать половину. Ну и luajit из 5.2 некоторые вещи притащило к себе.
Решай просто сам что тебе важнее, скорость или плюшка :) Некоторые используют luajit просто потому что там FFI из коробки, этим людям в целом плевать какая там скорость им просто надо взять произвольную сишную либу и просто с ней работать, без компиляций и прочего.
Лично я стараюсь писать всё сразу с учётом работы на любой версии Lua, модули могу раздельно написать для 5.1+ и 5.3+ например как тут https://gitflic.ru/project/blogdron/lua-base64 можно всё в 1 файл сунуть, но можно и не можно =) Или если делаю утилиту то просто избегаю применения того что разнится в версиях например как тут https://gitflic.ru/project/blogdron/braintractor или наоборот делаю небольшие добавки для совместимости между версиями типа как тут https://gitflic.ru/project/blogdron/pagepack суя модули как просто два куска текста, и подгружаю нужный в зависимости от той версии под которой запустилась программа.
Но это я упарываюсь, пытаясь в универсальность. Часто она просто нахрен не нужна. Например я хочу goto но не использую его, в том что выкладываю чтобы тупо оно работало и там где goto нету и так с кучей всего, хотя локально я в хвост и в гриву его использую.
Вот сам думаю, надо ли иметь 1 программу для всех версий. Или всё же пилить так как удобно, а если надо для другой версии, то запилить просто отдельно для другой версии, даже если там вся разница будет в к примеру есть goto и нет goto ну или там битовые операции. Делема та ещё. Сложный выбор. Пока на первом.
Ахтунг, я говнокодер и нуб. Воспринимай мои слова как бред сивой кобылы в целом, решай для себя всё сам.
Исправление LINUX-ORG-RU, :
Если ты берёшь luajit значит ты осознанно идёшь на компромис, ты лишаешь себя некоторых возможных удобств в обмен на скорость. И наоборот, если ты используешь какую то определённую ванильную версию луа, то ты выбираешь её плюшки вместе с чемоданчиком неудобств по переносу на другие версии, если таковое будет.
Только благодаря тому что луа держится на компромисах между, весомыми плюшками и терпимыми неудобствами она может оставаться компактной, простой, более менее быстрой. Luajit же, это бескомпромиссный и радикальный подход, когда самое важное это скорость, в ущерб всему иному, как вспомогательный плюс получается стабильность, но просто потому чо в нём что-то менять это значит переписывать половину. Ну и luajit из 5.2 некоторые вещи притащило к себе.
Решай просто сам что тебе важнее, скорость или плюшка :) Некоторые используют luajit просто потому что там FFI из коробки, этим людям в целом плевать какая там скорость им просто надо взять произвольную сишную либу и просто с ней работать, без компиляций и прочего.
Лично я стараюсь писать всё сразу с учётом работы на любой версии Lua, модули могу раздельно написать для 5.1+ и 5.3+ например как тут https://gitflic.ru/project/blogdron/lua-base64 можно всё в 1 файл сунуть, но можно и не можно =) Или если делаю утилиту то просто избегаю применения того что разнится в версиях например как тут https://gitflic.ru/project/blogdron/braintractor или наоборот делаю небольшие добавки для совместимости между версиями типа как тут https://gitflic.ru/project/blogdron/pagepack суя модули как просто два куска текста, и подгружаю нужный в зависимости от той версии под которой запустилась программа.
Но это я упарываюсь, пытаясь в универсальность. Часто она просто нахрен не нужна. Например я хочу goto но не использую его, в том что выкладываю чтобы тупо оно работало и там где goto нету и так с кучей всего, хотя локально я в хвост и в гриву его использую.
Вот сам думаю, надо ли иметь 1 программу для всех версий. Или всё же пилить так как удобно, а если надо для другой версии, то запилить просто отдельно для другой версии, даже если там вся разница будет в к примеру есть goto и нет goto ну или там битовые операции. Делема та ещё. Сложный выбор. Пока на первом.
Исправление LINUX-ORG-RU, :
Если ты берёшь luajit значит ты осознанно идёшь на компромис, ты лишаешь себя некоторых возможных удобств в обмен на скорость. И наоборот, если ты используешь какую то определённую ванильную версию луа, то ты выбираешь её плюшки вместе с чемоданчиком неудобств по переносу на другие версии, если таковое будет.
Только благодаря тому что луа держится на компромисах между, весомыми плюшками и терпимыми неудобствами она может оставаться компактной, простой, более менее быстрой. Luajit же, это бескомпромиссный и радикальный подход, когда самое важное это скорость, в ущерб всему иному, как вспомогательный плюс получается стабильность, но просто потому чо в нём что-то менять это значит переписывать половину. Ну и luajit из 5.2 некоторые вещи притащило к себе.
Решай просто сам что тебе важнее, скорость или плюшка :) Некоторые используют luajit просто потому что там FFI из коробки, этим людям в целом плевать какая там скорость им просто надо взять произвольную сишную либу и просто с ней работать, без компиляций и прочего.
Лично я стараюсь писать всё сразу с учётом работы на любой версии Lua, модули могу раздельно написать для 5.1+ и 5.3+ например как тут https://gitflic.ru/project/blogdron/lua-base64 можно всё в 1 файл сунуть, но можно и не можно =) Или если делаю утилиту то просто избегаю применения того что разнится в версиях например как тут https://gitflic.ru/project/blogdron/braintractor или наоборот делаю небольшие добавки для совместимости между версиями типа как тут https://gitflic.ru/project/blogdron/pagepack суя модули как просто два куска текста, и подгружаю нужный в зависимости от той версии под которой запустилась программа.
Но это я упарываюсь, пытаясь в универсальность. Часто она просто нахрен не нужна.
Исходная версия LINUX-ORG-RU, :
Если ты берёшь luajit значит ты осознанно идёшь на компромис, ты лишаешь себя некоторых возможных удобств в обмен на скорость. И наоборот, если ты используешь какую то определённую ванильную версию луа, то ты выбираешь её плюшки вместе с чемоданчиком неудобств по переносу на другие версии, если таковое будет.
Только благодаря тому что луа держится на компромисах между, весомыми плюшками и терпимыми неудобствами она может оставаться компактной, простой, более менее быстрой. Luajit же, это бескомпромиссный и радикальный подход, когда самое важное это скорость, в ущерб всему иному, как вспомогательный плюс получается стабильность, но просто потому чо в нём что-то менять это значит переписывать половину. Ну и luajit из 5.2 некоторые вещи притащило к себе.
Решай просто сам что тебе важнее, скорость или плюшка :)
Лично я стараюсь писать всё сразу с учётом работы на любой версии Lua, модули могу раздельно написать для 5.1+ и 5.3+ например как тут https://gitflic.ru/project/blogdron/lua-base64 можно всё в 1 файл сунуть, но можно и не можно =) Или если делаю утилиту то просто избегаю применения того что разнится в версиях например как тут https://gitflic.ru/project/blogdron/braintractor или наоборот делаю небольшие добавки для совместимости между версиями типа как тут https://gitflic.ru/project/blogdron/pagepack суя модули как просто два куска текста, и подгружаю нужный в зависимости от той версии под которой запустилась программа.
Но это я упарываюсь, пытаясь в универсальность. Часто она просто нахрен не нужна.