Comments 14
Почему-то на ум приходят Cuneiform и Gleam, но новые языки это всегда интересно.
Макросов в berry не будет. Но макросы из библиотек эликсира использовать будет можно!
это как, метапрограммирование на полшишечки?
Думаю, первый вопрос, который у вас возник, когда вы прочитали предисловие
...зачем нужен этот язык?
Чего не хватает в уже существующих?
Какие проекты на нем предполагается реализовывать?
Кто их будет потом поддерживать?
Т.е. любая работа начинается с постановки цели. Не просто "еще один язык написать" (который с вероятностью 90% не доживет до осмысленного релиза, а с вероятностью 99% через три года будет просто заброшен), а "под вот эту задачу нет адекватного инструментария, придется разрабатывать свой".
Вообще, на определенном этапе развития у многих разработчиков возникает непреодолимая тяга к велосипедостроению и хреносозидательству - "а вот я сейчас запилю то же самое, но с вистом и профурсетками!". Это и не хорошо и не плохо. Это просто есть.
Вы из ЕКБ, что ли? Не позорьте город)
А в чем "позор"?
Мне самому приходилось "язык" писать. Но там была вполне конкретная ситуация - был нужен под конкретную задачу скриптовый язык, в котором были бы реализованы команды управления специфической платой расширения.
В целом - приятно работать с человеком, который может что-то сам делать, а не только из готовых кирпичиков лепить. Но втройне приятно, когда он может внятно объяснить почему именно ту не подходит готовое а требуется что-то свое. Потому что писать свое - это всегда время. Которого (ну вот у меня лично) всегда катастрофически не хватает - в работе постоянно 2-3 проектных задачи, не считая технических... И вот поработав в таком режиме какое-то время, начинаешь понимать что любое нестандартное решение должно быть обосновано очень четко и конкретно.
Иначе... Ну представьте себе ситуацию - вот вы пришли в некую компанию и вам дают на доработку некий модуль. А там поправить надо всего чуть. Но написано он на каком-то непонятном языке. На вопрос "а это вообще что???" вам отвечают - "да тут до вас человек работал, написал вот свой язык, модуль написан на нем, сейчас уволился...". И вы понимаете, что проще переписать все заново на обычном языке, чем разбираться во всех тонкостях того, что он там наваял.
Ну, во-первых, язык для платформы BEAM - отсюда можно понять, для каких целей его можно использовать (распределённые системы и сервисы на стороне сервера всех сортов). Чего не хватает - написано же: он добавляет типы в эликсир. Даже синтаксис заимствует - тоже из эликсира. По сути, это добавление фичи в эликсир.
Что же касается того, что нужна не решённая задача - я не думаю, что это обязательно. Просто есть хорошая идея и почему бы не реализовать.
Ну, во-первых, язык для платформы BEAM - отсюда можно понять, для каких целей его можно использовать
Лично для меня BEAM не говорит ровным счетом ничего. Как для Вас, например, вряд ли что скажет "платформа AS/400" или "язык RPGLE" - что это зачем без гугля сходу вряд ли ответите :-)
Просто есть хорошая идея и почему бы не реализовать.
Не спорю, но если эта идея используется в коммерческом проекте, найдется ли человек, который сможет все это поддерживать после того как Вы оттуда уволитесь? Или ваши проекты не предусматривают дальнейшего развития и поддержки?
Мне по долгу службы много приходится работать со старым чужим кодом (оптимизация, доработка и т.п.). И основная проблема - разобраться как оно работает. Даже на знакомом языке иногда бывает написано так, что с первого взгляда непонятно что зачем и почему. Поэтому на ревью всегда требую чтобы код был прокомментирован. Или привязка к ТЗ - что делает тот или иной блок кода, какой пункт ТЗ он реализует. Или, если используется какой-то "хитрый" алгоритм, то пояснение как он работает. Все-таки, надо думать и о тех, кто в Ваш код полезет через год (например), а Вас там уже не будет.
Если это какая-то библиотека для общего использования - она обязательно должна быть подробно и с примерами документирована. Чтобы любой мог ее взять, почитать документацию и работать, не бегая аза Вами с вопросами "а это что, а тут как..."
Да давайте автору сразу ссылку на полный чеклист.
Programming in this language is an adequate punishment for inventing it - lol
[ ] You have reinvented Lisp but worse
[ ] You have reinvented Javascript but worse
[ ] You have reinvented Java but worse
[ ] You have reinvented C++ but worse
[ ] You have reinvented PHP better, but that's still no justification
[ ] You have reinvented Brainfuck but non-ironically
Прикольно. Но у меня сразу вопрос: а чем вам Haskell не нравится? (Или на худой конец Scala 3, там скобочек чуть больше)
Синтаксис это же самая малоинтересная часть в языках, особенно в статически типизированных, нет?
berry-lang — новый язык для BEAM со статической типизацией