Зачем на свете существует Lua, если есть JavaScript,
который не менее хорош для всех, более стандартизован (ECMA-262),
занимает бОльшую долю рынка и поддерживается крупной корпорацией Oracle
(«JavaScript» — зарегистрированный товарный знак, но для ухода от проблем с торговыми марками стандарт ECMA 262 называет язык ECMAScript)
?
28 лидирующих ИТ-компаний выразили намерение использовать в своих продуктах JavaScript
как объектный скриптовый язык с открытым стандартом.
Согласно TIOBE Index, JavaScript находится на 7 месте, а Lua на 30-м
LuaJIT самый медленный
Код JS и Lua идентичен, за исключением мелких синтаксических различий.
JavaScript используется в офисных приложениях для автоматизации рутинных действий, написания макросов
(интерпретатор JavaScript Rhino, имеется редактор и отладчик JavaScript-сценариев)
JavaScript преподаётся в школах (есть проект Computer science in JavaScript про алгоритмы и структуры данных)
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>LuaJIT самый медленный
Оцените объём встраиваемого интерпретатора — это основной критерий.
AS>JavaScript на два года современнее чем Lua, учёл его ошибки
Творчески их расширив, углубив, сделав коварнее и изощрённее, добавил ещё своих новых ошибок и успешно добился первого места по количеству WTF среди всех современных языков, опередив соперников на две головы.
AS>даже wiki страница у JavaScript длиннее!!
Здравствуйте, netch80, Вы писали:
AS>>LuaJIT самый медленный
N>Оцените объём встраиваемого интерпретатора — это основной критерий.
На самом деле это никому не интересно. Я встраивал скриптинг в самые разные приложения. JS это сплошной чит. В начале нулевых уже была целая куча самый разных реализаций, от однострочников, до продвинутых интерпретаторов. Для бедных можно было пойти двумя вещами — наклепать свой на коленке и это работало, или взять WSH и это тоже работало.
AS>>JavaScript на два года современнее чем Lua, учёл его ошибки
N>Творчески их расширив, углубив, сделав коварнее и изощрённее, добавил ещё своих новых ошибок и успешно добился первого места по количеству WTF среди всех современных языков, опередив соперников на две головы.
JS первые лет десять ходил под стол пешком. Lua уже к релизу JS был довольно серьезным языком — см версию 2.1. https://www.lua.org/spe.html
JS только в версии ES6 худо-бедно покрывает возможности lua 2.1 С учетом того, что актуальная версия JS это ES5 а чуть не три четверти всего кода вообще на ES3 написаны...
Вобщем как раз классический пример, когда красивый и вывереный язык слил уродцу.
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>Зачем на свете существует Lua, если есть JavaScript,
Правильно задавать вопрос так — почему есть JS если одновременно с рождением JS двадцать лет назад вышел lua 2.1 https://www.lua.org/spe.html
Lua 2.1 может конкурировать с ES6, хотя текущий стандарт по факту ES5 а чуть не весь код написан ажно на ES3.
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>Зачем на свете существует Lua, если есть JavaScript,
Зачем они существуют оба, если есть нормальные, статически типизированные языки? Что такого в "вебе" делается сверхнеординарного, требующего писать на языке таймбомб?
Здравствуйте, Ikemefula, Вы писали:
I>Правильно задавать вопрос так — почему есть JS если одновременно с рождением JS двадцать лет назад вышел lua 2.1 https://www.lua.org/spe.html I>Lua 2.1 может конкурировать с ES6, хотя текущий стандарт по факту ES5 а чуть не весь код написан ажно на ES3.
Потому что поддержали браузеры. Была ли в каком-нибудь вообще поддержка Lua искаропки? Lua API?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>Зачем на свете существует Lua, если есть JavaScript,
Потому что к тому времени, когда появились нормальные встраиваемые интерпретаторы JS, Lua уже успел занять определенную нишу.
AS>JavaScript на два года современнее чем Lua, учёл его ошибки
JS, как язык, ужасен. "Учел все ошибки" — это значит, что он не забыл их повторить?
Lua, впрочем, тоже не подарок. Уже за идею использовать слова вместо фигурных скобок и начинать индексацию массива с 1, а не 0, стоит убивать.
AS>JavaScript преподаётся в школах (есть проект Computer science in JavaScript про алгоритмы и структуры данных)
Его надо в медвузах преподавать. На кафедре психиатрии.
Здравствуйте, Ops, Вы писали:
I>>Правильно задавать вопрос так — почему есть JS если одновременно с рождением JS двадцать лет назад вышел lua 2.1 https://www.lua.org/spe.html I>>Lua 2.1 может конкурировать с ES6, хотя текущий стандарт по факту ES5 а чуть не весь код написан ажно на ES3.
Ops>Потому что поддержали браузеры. Была ли в каком-нибудь вообще поддержка Lua искаропки? Lua API?
Браузеры поддержали — это смешной аргумент. JS изначально писался под браузер, потому как все остальные языки надо было ембедить и приседать вокруг ихнего рантайма. Потому набор фич в JS изначально был ничтожно мизерным. Именно это и сделало возможность легкого эмбеддинга впоследствии.
Здравствуйте, Arsen.Shnurkov, Вы писали:
AS>LuaJIT самый медленный AS>Код JS и Lua идентичен, за исключением мелких синтаксических различий.
Сравнение 5-летней давности как-то не очень серьезно для наброса. Тем более, что уже тогда в комментариях выяснилось что разница нивелируется простым тюнингом сборщика мусора. Гугл по запросу "luajit vs. v8" выдаст и противоположные результаты.
AS>JavaScript на два года современнее чем Lua, учёл его ошибки AS>Lua появился в 1993 AS>JS появился в 1995
Не верю что вы ни разу не видели видео отсюда https://www.destroyallsoftware.com/talks/wat
AS>JavaScript используется в офисных приложениях для автоматизации рутинных действий, написания макросов AS>(интерпретатор JavaScript Rhino, имеется редактор и отладчик JavaScript-сценариев)
AS>JavaScript преподаётся в школах (есть проект Computer science in JavaScript про алгоритмы и структуры данных)
Лет 20-30 назад эта роль была у Basic. JavaScript взлетел лишь потому что был встроен в браузеры, ну и node.js помог.
Лично я так и не смог принять индексацию массивов с 1. Может, если бы в Lua была конструкция типа option base 0, то все сложилось бы иначе.
Здравствуйте, PM, Вы писали:
PM>Лично я так и не смог принять индексацию массивов с 1. Может, если бы в Lua была конструкция типа option base 0, то все сложилось бы иначе.
В lua есть такая конструкция. Но применяя ее, вы получаете несовместимый диалект языка.
Здравствуйте, Ikemefula, Вы писали:
I>Браузеры поддержали — это смешной аргумент. JS изначально писался под браузер, потому как все остальные языки надо было ембедить и приседать вокруг ихнего рантайма. Потому набор фич в JS изначально был ничтожно мизерным. Именно это и сделало возможность легкого эмбеддинга впоследствии.
И не говори. Lua куда только не встраивают, а вот в браузерах какая-то недоступная ему магия водится.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Ops, Вы писали:
I>>Браузеры поддержали — это смешной аргумент. JS изначально писался под браузер, потому как все остальные языки надо было ембедить и приседать вокруг ихнего рантайма. Потому набор фич в JS изначально был ничтожно мизерным. Именно это и сделало возможность легкого эмбеддинга впоследствии. Ops>И не говори. Lua куда только не встраивают, а вот в браузерах какая-то недоступная ему магия водится.
Теоретическая возможность никого не интересует. И правильность языка тоже. JS испокон веков эмбеддится направо и налево. Только движков джаваскриптовых минимум пару десятков, каждый из которых эмбеддится.
Кроме всего этого есть клоны навроде JScript, JSctipt.NET. Пример — FiddlerScript.
Если порыть-поискать все, что относится к Ecmascript да с небольшими отклонениями, то можно прийти в ужас.
Здравствуйте, PM, Вы писали:
PM>Лично я так и не смог принять индексацию массивов с 1. Может, если бы в Lua была конструкция типа option base 0, то все сложилось бы иначе.
Обычные люди считают элементы последовательности с 1, программисты — с 0, BSD'шники и шарповцы — с -1.
(Если в String.Format() первый позиционный это номер 0, то сама форматная строка это -1, не так ли?)
Здравствуйте, netch80, Вы писали:
N>Обычные люди считают элементы последовательности с 1, программисты — с 0
А ЯП для кого вообще предназначены?
N>, BSD'шники и шарповцы — с -1. N>(Если в String.Format() первый позиционный это номер 0, то сама форматная строка это -1, не так ли?)
Чего за бред ты придумал? В string.Format сигнатура такая:
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, netch80, Вы писали:
N>>Обычные люди считают элементы последовательности с 1, программисты — с 0
НС>А ЯП для кого вообще предназначены?
Некоторые — для не-программистов. Например, Fortran — для математиков.
N>>, BSD'шники и шарповцы — с -1. N>>(Если в String.Format() первый позиционный это номер 0, то сама форматная строка это -1, не так ли?)
НС>Чего за бред ты придумал? В string.Format сигнатура такая: