- написан на C# - маленький - быстрый - си подобный синтаксис - строгая динамическая типизация (и ЛОГИЧНОЕ!!! отсутствие классов... но есть конструкторы для объектов - то бишь "недоООП аля жс идёт на хер") - явная инициализация переменных (тип переменной задается при инициализации и смене не подлежит) - есть оператор приведения типа (так как типизация строгая - то никаких нежданчиков, как в жс) - "всё есть выражение" (никаких statements) (вот пример корректного кода: var x = if ($param > 0) createList($param) else []; ) - лексическая область видимости с затенением ({...} задают блок, а также циклы/условные операторы/обработка исключений/сопоставление с образцом) (можно писать вот так: var result = try myFunc(); catch (e) cout e.message; ) (и вот так: try result = myFunc(); catch (e) on ListError -> processListError() on TupleError -> processTupleError() on _ -> processUnknownError(); ) - создание пользовательских операторов (унарных и бинарных) - else обязательный (если нужен if без else, то используется when или unless пример: when (x != 0) cout x; то же самое: unless (x == 0) cout x; ) - вот пример как можно написать классическую reduce: let reduce(seq, fun) { var el = (); for (e in seq) { if (el is unit) el = e; else el = fun(el, e); } el } reduce([0, 1, 2, 3, 4], _ + _); ) - полиморфные варианты: * автоматически генерируемые конструкторы * пользовательские - ленивые значения - модули (являются ПЕРВОКЛАССНЫМИ ОБЪЕКТАМИ - их можно передавать в функции) - всего 5 типов данных, размещаемых на стеке: 1,2) 32-битные целые и вещественные 3) булевый тип 4) модули 5) символы - сomprehension почти как в F# - генераторы - сопоставление с образцом: * И * ИЛИ * as * ЛИТЕРАЛ * unit * is * ПЕРЕМЕННАЯ * ЛЮБОЕ_ЗНАЧЕНИЕ * КОРТЕЖ * МАССИВ * СПИСОК * ГОЛОВА_ХВОСТ * ВАРИАНТ * ЛЮБОЙ_ВАРИАНТ * ПОЛЕ * СТРУКТУРА * ВЗЯТЬ_ЗНАЧЕНИЕ * СРАВНЕНИЕ - компилятор кидает предупреждение, когда возвращаемое значение не используется Чёткое позиционирование в качестве скриптового языка (хоть помимо интерпретации есть и компиляция). Джаваскриптерам можно использовать урезанную часть языка "аля жс сделанный по уму", постепенно учась фишкам из ФП. А вообще, проще вот по этим двум ссылкам пройти - человека реально приятно почитать (видно, что всё продумывал не по одному разу - читать сплошное удовольствие). Блин, ссылки забыл указать 😁😁😁 http://www.k-press.ru/cs/2010/3/ela/ela.asp https://www.rsdn.org/article/dotnet/ElaDevelopment.xml #Ela
> преймущество > си подобный синтаксис ну это бан 😌
> А с каких пор си-подобный синтаксис перестал быть самым простым? С изобретения лиспа, годах так в 60-х)
Нет, если бы вместо слова "лисп" было слово "форт", то я бы ответил "блин, ранил... а может быть и убил... зараза". А так, лисп не канает))) Удобный для кого?
я уверен, что мы разные виды людей. Когда я в 2004 впервые увидел форт, у меня чуть энурез не прорезался
Как минимум, есть некоторая красота в том, что твой код сразу сериализован:))
Форт удобен только что бы интерпретаторы на лабах писать. Использовать его как язык общего назначения невыносимо.
Это взгляд глазами отнюдь не рукожопа. А ребёнок рукожоп - ему хочется "бац-бац и в яблочко". На все эти "работаем с аст напрямую" ребенку пофигу, ибо "не грузи, да негрузим будешь"))
тогда, во избежание абстрактных разговоров, можно сразу обозначать, какие цели преследуются и для чего язык рассматривается.
Да ну, если б нетскейп всю ту кучу работы проделал на форте - сейчас бы форт проклинали (за его "катализаторность" них-синдрома) 🤣🤣🤣
А тут недостаточно обозначено: >> Я же смотрю на Ela как "на язык, интерпретатор которого можно встроить, чтобы человек, ничего кроме жс никогда не видевший, мог расширить поле задач, решаемых с помощью написанного тобой приложения". И я вижу, что создатель языка хорошо об этом подумал (прям очень хорошо). << ?? На мой взгляд проблемы выбора "что-то встроить для себя" как бы и нет. Есть проблема выбора "а как бы встроить что-то с современными возможностями и чтоб новичок (для которого это и делается) при виде такого счастья не испугался и не убежал".
Я пожалуй даже в некоторой степени при таких вводных соглашусь - Ela как "аля жс но лучше" норм вариант, но далее возникает вопрос удобства (тулинга), надо редактор с автокомплитом, справочники стд либы..
Увы, "есть только это". Человек и так охренеть какую работу проделал и вон сколько лет продержался.
Меня, честно говоря, удивляет, почему микрософт за это не ухватится - они ж ца и имеющийся спрос (пусть и не в очень явном виде) "на лету ловить" должны.
Я кстати вспомнил, лет 5 назад видел этот язык и даже мне понравился
Меня не только микрософт удивляет... Те же стартаперы... Ну видно же, что ms паровозит .net (и уже темп сбавлять не будет) - любой кто шарит в теме (один человек или команда) может подхватить проект, причесать (именно с точки зрения новичка)... пара-тройка лет и никуда ms не денется - или выкупит, или ещё как "проглотит".
А для 5 лет назад Ela вообще бомба (с учётом, что один человек делает).
Обсуждают сегодня