Так как мозгов у меня не хватит даже чтобы написать транслятор в го, я просто поделюсь с вами идеального синтаксиса. Можете пиздить вдохновляться идеями, я не против.1) Синтаксис лямбд как отдельный аргумент.Лямбды пишутся через { ... }Функции декларируются через "fun" как в котлине, чтобы выровнять на 3 буквы (можно заменить на def если нравится или xyz)2) Декларация переменных.let - иммутабельныеmut - мутабельные3) Структура.Основная идея что нет никаких свойств, все поля раскрываются в одноименные функции и можно только переписать как тебе нужно геттер или сеттер.Вызов без скобок - равносилен get вызовуприсвоение - равносилен всегда вызову с одним аргументомНикакие поля (переменные) типа, не доступны из вне, всегда дергается функция (это сделано чтобы реализовать интерфейсы даже для полей, потому что все метод).Наследования нет, только агрегация структур.Экстеншен функции имеют доступ только к публичным полям
Вброшу RPLY, генератор парсеров для питона. Для тех, кому лень писать рекурсивный спуск вручную на сишке.https://rply.readthedocs.io/en/latest/
>>1578525 (OP)Куча ошибок в комментах - тупо копипастил (потому что раскраски нет по синтаксису).Но я думаю башкавитые все равно мысль уловят.
>>1578571Возможно, свифт не щупал. Но разве там есть вызов метода без скобок "()" или отдельная декларация для лямбда-функции?
>>1578580Нет, без скобок - это будет ссылкой на функцию, а не вызов. И соответственно передается все в параметрах, последний из которых можно раскрыть как на твоем пике.
>>1578632Тут идея что 'str'.size()и'str'.size равносильно, не имеет значение что это, свойство или метод (это всегда метод, полей публичных нет)
>>1578525 (OP)1. Фигурные скобки — ненужная соль. При чтении мы ориентируемся по отступам, а не ищем маркеры начала/конца блока.2. Изменение/неизменность данных — свойство функции, оперирующей над ними, а не самой структуры данных.3. Юникод уже давно везде есть, вместо "МинусБольше" давно пора использовать стрелки.
>>1579179Для лямбд вообще хотел только символ равно (писать быстро лямбды важно, ибо бесить начинают классические конструкции).Но боюсь что парсер не сможет в одно равно (непонятно это выражение лямбды или там уже присвоение где-то пошло)
>>1579179>1. Фигурные скобки — ненужная соль. При чтении мы ориентируемся по отступам, а не ищем маркеры начала/конца блока.Питонячий стайл прикольный, если редактор с линкиром есть, иначе превращается в боль.Ну и си-стайл людям ближе (хотя за много лет я тоже к питонячим отступам пригрелся)
>>1579179>2. Изменение/неизменность данных — свойство функции, оперирующей над ними, а не самой структуры данных.Мне понял к чему, весь поинт - убрать понятия "свойства" класса/структуры
>>1578525 (OP)Что бы посрамить всех байтоёбов с их низкоуровневыми оптимизациями в 90% critical path проблем достаточно...https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md#data-oriented-structures
>>1579228>Зачем писать новый языкКаждый программист должен написать новый язык, а если не может, то хотя бы высрать синтаксис на двачах.мимо ОП
В общем, хочется написать что-то типа croovy/kotlin/swift/go/pythonНо нормально, без VM и производительно.
>>1578525 (OP)>идеального синтаксисаИдеальный синтаксис - это Естественный язык. Все остальное хуйня программистская.Хуею с людей, которые хотят идеального синтаксиса, но не хотят идеальной семантики.
>>1579446Не кроссплатформенная засахаренная магия.........end....endendСобственно что ожидать от барана с сажей
>>1579475Нет.VM исключает производительность, отсутствие активной VM исключает нормальность - байтоабстракции без VM будут протекать. Отсюда или мы забиваем на производительность продукта и получаем качество разработки и качество кода, или мы ударяемся в байтолюбство и ловим выстрелы по ногам, а попытка поднять качество при сохранении производительности оборачивается затягиванием сроков. И если бы на горизонте не маячил бы предел single core performance, то и проблем бы не было, байтолюбство бы осталось в загоне, где есть ограничения по финансам на железо но нужно быстро (игры) и не влияло бы на основной рынок разработки, а разработка за счет оверхеда по железу велась бы хорошо.
>>1579467>Не кроссплатформеннаяAndroid не поддерживается?>засахареннаяТебе удовольствие или заебаться?>магияСорцы открыты, читай.>endПиши }, если нравится, в чём проблема?
>>1579597>Пиши }, если нравится, в чём проблема?Пацаны не поймут. еще бы табы в питоне посоветовал> Сорцы открыты, читай.Я вот понимаю почему в js такой говнокаст и почему работает это именно так, но мне от этого не легче.>Тебе удовольствие или заебаться?Когда сахар становится магией, это уже диагноз.>Android не поддерживается?Понятно. Вы бы хоть для начала на венде без костылей работать стали, а уже потом в ведро лезете.Мне там год назад обещали JIT, завезли уже?
>>1579602>еще бы табы в питоне посоветовалПитон в принципе не советую, только конченые долбоебы могли сделать отступы частью синтаксиса.>сахар становится магиейНет никакой магии, всё just works, в одну строчку из пяти слов пишется такоэ, на что в других скриптопарашах подключают зависимость.>вендеДепрекейтед системы нинужны.
>>1579616О чём задавать questions, если язык настолько хорош, что в нём уже всё понятно, а что было непонятно — уже разжёвано.
>>1579616Я еще вчера в другом треде сдержался, чтобы не спросить тебя. Ты совсем дебил? Как можно судить о популярности чего-либо по количеству вопросов. Они же блять не бесконечные, отвеченный сегодня вопрос - это незаданный завтра.
>>1579627Вайтишники не умеют гуглить и задают вопросы заново. Соответственно, чем более популярна какая-то технология у вайтишников, тем более растущим будет такой график. Что не мешает компаниям типа Гитхаба и Гитлаба продолжать пилить свой основной дичайше популярный продукт на Ruby.
>>1578525 (OP)Мне очень нравится принцип composition over inheritance, но когда тебе по сути нужно сделать полезную работу в одной функции, а в остальных 10 просто передать параметры композируемому объекту, как-то рука сама тянется пронаследоваться. В этом языке, раз тут везде композиция, нужно чтобы такое делалось просто, без лишних keystrokes, как говорится.
>>1579624Ты же программист ты же должен понимать. Чем больше новых людей интересуются тем больше вопросов создается. Не интересуется новых людей, язык уходи в забвение (дрочат его только динозавры на легаси)
>>1580184Мне нравится идея mixin, когда ты в один класс можешь добавлять различные поведения.Например у тебя есть класс Орг и к нему можешь добавить (примешивать) подклассы "ходить" (со своими методами и полями), атаковать (тоже со своими методами и полями, скажем, урон).Подобное очень хорошо можно реализовать в языке питона.Но в действительностью это ужасно ложиться на ООП модель.Для статических языков, можно разрешить примешивание только полей к структурам, у которых нет никогда методов. И дать возможность везде и всегда привязывать функции.Звучит радикально, но это позволит насыщать (миксовать) объект (нужным поведением - всегда.Примерно как на картинке.Понятно что данные миксин нужно прятать как-то от дочерних классов, но при этом дочерние классы должны как-то иметь доступ к родительским данным (в итоге начинаешь придумывать снова ООП и потом снова получаешь недостатки ООП).Питон очень гибок, дает поиграться с разными подходами, вот сейчас играюсь и тупо смотрю как лучше.
В общем, ООП модель ложится нормально, когда у тебя есть конечный объект типа точка, или строка, то есть реальный тип. Но только доходит к тому чтобы добавить еще поведения, даже через наследование начинается жопа (а агрегация смотрится ужасно. Делегирование очень затратна, даже если брать какой-то котлин, там либо можно все делегировать либо если частично то только ручками)
>>1582087Так и не смог в производительность. Даже жирножаба смогла с её то JIT, а SBCL по прежнему даже в SSE1 из Pentium 3 1999 года не может.
>>1578525 (OP)Мутабельные-хуйтабельные, какой же ты тупорылый долбоеб, блять. Вместо того, чтобы придумать годных фич, они опять месят говно в ступе, меняя function на fun и велосипедя синтаксис еще шизанутее, чем в существующих говноязычках.Пример нужной, полезной и существенной фичи - возможность задавать для классов кастомные лэйауты в памяти. Ну т.е. группировать одноименные поля разных объектов этого класса по массивам, например, для оптимизации времени работы некоторых часто выполняемых над этими данными алгоритмов, которые не затрагивают остальные поля.
>>1582119Иммутабельность дает некоторые плюшки компилятору для оптимизации.Структуры по-умолчанию предполагают упорядоченность в памяти. Отсутствие наследование и прочей виртуальной и мета херни - тоже способствуют экономию ресурсов (агрегация делается компиляцией, в том числе и утиная типизация).Новые фичи? Отсутствие возможности публичных полей и генерация все в методы (в том числе и для lvalue выражений). Можно сделать лямбды инлайн-функциями.>Вместо того, чтобы придумать годных фичТвоя очередь, раунд.
>>1582545Когда-нибудь они изобретут хаскелль, где вместо подобных кейвордов спецсимволы:f :: Type1 -> Type2Но и хаскелль не пионер в этом
>>1582497>Структуры по-умолчанию предполагают упорядоченность в памяти.Упорядоченность - понятие растяжимое.Фича, про которую я говорил, могла бы дать значительный выигрыш в производительности в огромном количестве случаев за счет оптимизации промахов по кэшу, но без отказа от ООП, как это происходит сейчас.>Отсутствие возможности публичных полей и генерация все в методы (в том числе и для lvalue выражений)Это поставит крест на оптимальности, лол. Или на ООП в условиях борьбы за производительность.>Можно сделать лямбды инлайн-функциями.Они уже inline в крестах, вообще-то. Тащи уж тогда локальные классы, как в Java и JS.
>>1582609В том, что функции и процедуры -- это не какие-то волшебные объекты, которые имеют особый статус по сравнению с "обычными" типами данных, а точно такой же тип, как и какие-нибудь инты с даблами. Мы из коробки получаем функции высшего порядка и частичное применение функций как минимум.
>>1578580Без скобок это либо обсервер переменная либо кложуре (частично)По сути, кокотлин и свифт это нормальные продолжители языков, хотя я не знаю есть ли в котлине екстеншены и прочее, но раскрытие опционалов там тоже свое и оно хотя бы есть.Остальные языки очень вялые и старые. Да и ты дерьмом занимаешься если честно.
>>1582608>>Структуры по-умолчанию предполагают упорядоченность в памяти.>Упорядоченность - понятие растяжимое.Что ты сейчас высрал?Сладость сахара - понятие растяжимое.
>>1582608>Это поставит крест на оптимальности, лол. Или на ООП в условиях борьбы за производительность.Компилятор пустые геттеры и сеттеры обрежет.>Они уже inline в крестах, вообще-то.Ой ну раз в крестах лямбды инлайн, тогда все, прекращаем разработку, такое уже есть в крестах.Тебя не смутило что и структуры есть в крестах, а еще функции есть в крестах. И!!! ДАЖЕ ПЕРЕМЕННЫЕ ТАМ ЕСТЬ!
>>1582119>Пример нужной, полезной и существенной фичи - возможность задавать для классов кастомные лэйауты в памяти.В будущей джаве уже есть.
>>1583629Интересно, а можно ссылочку?>>1583621>все, прекращаем разработкуНу прекращай, хули. А ты ее начинал, кстати, зумерок?Создал чат в телеге, канал на ютубе и этот тред, лол?>сеттеры обрежетА линковать ты как собрался, иксперд малолетний?
Так, я не понял, ОП треда всё, сдриснул? Не видать нам теперь нового русского языка программирования? Его хватило ровно на неделю?
>>15857591С. И какая-нибудь совковая паскалеподобная хуйня (раз даже паскаль сдох, что уж говорить про его клоны).
>>1585748>Так как мозгов у меня не хватит даже чтобы написать транслятор в го, я просто поделюсь с вами идеального синтаксиса. Можете пиздить вдохновляться идеями, я не против.Жопой читаешь?
>>1578525 (OP)Пишем всем двачем@Пишет только ОП@Кококо, все говно, оп хуй!@Кококо, я увидел let, значит язык похож на свифт!@Кококо, как ты в своем языке будешь линковать методы, ведь другие линкуют и ты линкуй, часики то тикают.@Кококо, ты что не написал мне еще язык, слился?@ээээ, я руби обмудок, путаю лямбды с блоками@Я поел борща, на те вам хаскель, а то все уже забыли про хаскель.
>>1585788>1СОграниченное говно. Я даже как-то хотел (и хочу, т.к. пишу на этом говне по работе) транслятор сделать из языка похожего на схему (схема потому что парсить легко) в котором был бы вывод типов. Была бы безопасная хуйня со скобочками, паттерн матчингом и лямбдами.