Программирование


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
95 18 39

Пишем лучший язык всем двачем Аноним 20/01/20 Пнд 12:55:48 15785251
image.png (52Кб, 778x692)
778x692
image.png (8Кб, 355x112)
355x112
image.png (155Кб, 997x1514)
997x1514
Так как мозгов у меня не хватит даже чтобы написать транслятор в го, я просто поделюсь с вами идеального синтаксиса. Можете пиздить вдохновляться идеями, я не против.

1) Синтаксис лямбд как отдельный аргумент.
Лямбды пишутся через { ... }
Функции декларируются через "fun" как в котлине, чтобы выровнять на 3 буквы (можно заменить на def если нравится или xyz)

2) Декларация переменных.
let - иммутабельные
mut - мутабельные

3) Структура.
Основная идея что нет никаких свойств, все поля раскрываются в одноименные функции и можно только переписать как тебе нужно геттер или сеттер.

Вызов без скобок - равносилен get вызову
присвоение - равносилен всегда вызову с одним аргументом
Никакие поля (переменные) типа, не доступны из вне, всегда дергается функция (это сделано чтобы реализовать интерфейсы даже для полей, потому что все метод).

Наследования нет, только агрегация структур.
Экстеншен функции имеют доступ только к публичным полям
20/01/20 Пнд 12:59:37 15785262
Лучший язык уже написан и это Ruby. Сажи ебанутым.
Аноним 20/01/20 Пнд 13:01:53 15785293
Аноним 20/01/20 Пнд 13:02:33 15785324
Аноним 20/01/20 Пнд 13:16:41 15785525
Вброшу RPLY, генератор парсеров для питона. Для тех, кому лень писать рекурсивный спуск вручную на сишке.
https://rply.readthedocs.io/en/latest/
Аноним 20/01/20 Пнд 13:19:51 15785566
20/01/20 Пнд 13:21:21 15785597
Хороши язык должен быть C-подобным
Аноним 20/01/20 Пнд 13:24:31 15785628
>>1578525 (OP)
Куча ошибок в комментах - тупо копипастил (потому что раскраски нет по синтаксису).
Но я думаю башкавитые все равно мысль уловят.
Аноним 20/01/20 Пнд 13:26:10 15785649
>>1578559
Да скажи что понравился
Аноним 20/01/20 Пнд 13:32:06 157857110
>>1578556
Я там все узнал. На нем можно писать вот как ты хочешь, а можно по-нормальному
Аноним 20/01/20 Пнд 13:56:37 157858011
>>1578571
Возможно, свифт не щупал. Но разве там есть вызов метода без скобок "()" или отдельная декларация для лямбда-функции?
Аноним 20/01/20 Пнд 14:57:32 157863212
.png (106Кб, 1232x760)
1232x760
>>1578580
Нет, без скобок - это будет ссылкой на функцию, а не вызов. И соответственно передается все в параметрах, последний из которых можно раскрыть как на твоем пике.
Аноним 20/01/20 Пнд 16:42:11 157872713
>>1578632
Тут идея что
'str'.size()
и
'str'.size

равносильно, не имеет значение что это, свойство или метод (это всегда метод, полей публичных нет)
Аноним 21/01/20 Втр 03:11:07 157917914
>>1578525 (OP)
1. Фигурные скобки — ненужная соль. При чтении мы ориентируемся по отступам, а не ищем маркеры начала/конца блока.

2. Изменение/неизменность данных — свойство функции, оперирующей над ними, а не самой структуры данных.

3. Юникод уже давно везде есть, вместо "МинусБольше" давно пора использовать стрелки.
Аноним 21/01/20 Втр 04:34:05 157918415
image.png (4Кб, 235x193)
235x193
>>1579179
Для лямбд вообще хотел только символ равно (писать быстро лямбды важно, ибо бесить начинают классические конструкции).

Но боюсь что парсер не сможет в одно равно (непонятно это выражение лямбды или там уже присвоение где-то пошло)
Аноним 21/01/20 Втр 04:35:34 157918516
>>1579179
>1. Фигурные скобки — ненужная соль. При чтении мы ориентируемся по отступам, а не ищем маркеры начала/конца блока.
Питонячий стайл прикольный, если редактор с линкиром есть, иначе превращается в боль.
Ну и си-стайл людям ближе (хотя за много лет я тоже к питонячим отступам пригрелся)

Аноним 21/01/20 Втр 04:36:26 157918617
>>1579179
>2. Изменение/неизменность данных — свойство функции, оперирующей над ними, а не самой структуры данных.

Мне понял к чему, весь поинт - убрать понятия "свойства" класса/структуры
Аноним 21/01/20 Втр 04:42:59 157918918
image.png (20Кб, 703x274)
703x274
Последовательности
Аноним 21/01/20 Втр 04:44:45 157919019
image.png (4Кб, 484x67)
484x67
>>1579189
Кортежи туда же (кто их любит)
Аноним 21/01/20 Втр 04:59:49 157919220
image.png (8Кб, 400x196)
400x196
>>1578525 (OP)
Создание своей последовательности
Аноним 21/01/20 Втр 05:13:23 157919321
image.png (51Кб, 853x675)
853x675
Интерфейсы и утиная типизация
Аноним 21/01/20 Втр 05:30:51 157919622
image.png (41Кб, 701x593)
701x593
Не явная работа с геттером и сеттером
Аноним 21/01/20 Втр 06:42:42 157920523
image.png (132Кб, 918x1396)
918x1396
>>1578525 (OP)
Агрегация (не наследование) и подход трейтов
Аноним 21/01/20 Втр 06:44:33 157920624
image.png (121Кб, 919x1307)
919x1307
>>1579205
Была ошибочная картинка, фикс
Аноним 21/01/20 Втр 08:00:07 157921725
Аноним 21/01/20 Втр 08:42:25 157922826
Зачем писать новый язык, если есть няшный Haskell
Аноним # OP 21/01/20 Втр 09:14:27 157923327
>>1579228
>Зачем писать новый язык
Каждый программист должен написать новый язык, а если не может, то хотя бы высрать синтаксис на двачах.

мимо ОП
Аноним 21/01/20 Втр 09:17:02 157923428
В общем, хочется написать что-то типа croovy/kotlin/swift/go/python
Но нормально, без VM и производительно.
Аноним 21/01/20 Втр 09:26:39 157923929
>>1579233
Свой язык, своя ОС, свой браузер, своя игра на голом OpenGL который якобы мёртв.
21/01/20 Втр 09:37:29 157924630
Аноним 21/01/20 Втр 09:41:03 157924831
21/01/20 Втр 10:09:26 157926432
>>1578525 (OP)
>идеального синтаксиса
Идеальный синтаксис - это Естественный язык. Все остальное хуйня программистская.

Хуею с людей, которые хотят идеального синтаксиса, но не хотят идеальной семантики.
Аноним 21/01/20 Втр 10:47:18 157929233
21/01/20 Втр 14:38:49 157944634
Аноним 21/01/20 Втр 14:54:40 157946735
ruby.jpg (99Кб, 502x640)
502x640
>>1579446
Не кроссплатформенная засахаренная магия.
........end
....end
end

Собственно что ожидать от барана с сажей
Аноним 21/01/20 Втр 14:56:53 157947136
>>1579234
>нормально, без VM и производительно.

Выбери одно
Аноним 21/01/20 Втр 14:58:34 157947537
>>1579471
Выбери два, ты хотел сказать?
Аноним 21/01/20 Втр 16:31:04 157956438
>>1579475

Нет.

VM исключает производительность, отсутствие активной VM исключает нормальность - байтоабстракции без VM будут протекать. Отсюда или мы забиваем на производительность продукта и получаем качество разработки и качество кода, или мы ударяемся в байтолюбство и ловим выстрелы по ногам, а попытка поднять качество при сохранении производительности оборачивается затягиванием сроков.

И если бы на горизонте не маячил бы предел single core performance, то и проблем бы не было, байтолюбство бы осталось в загоне, где есть ограничения по финансам на железо но нужно быстро (игры) и не влияло бы на основной рынок разработки, а разработка за счет оверхеда по железу велась бы хорошо.



Аноним 21/01/20 Втр 17:18:06 157959739
>>1579467
>Не кроссплатформенная
Android не поддерживается?
>засахаренная
Тебе удовольствие или заебаться?
>магия
Сорцы открыты, читай.
>end
Пиши }, если нравится, в чём проблема?
Аноним 21/01/20 Втр 17:29:44 157960240
>>1579597
>Пиши }, если нравится, в чём проблема?
Пацаны не поймут. еще бы табы в питоне посоветовал
> Сорцы открыты, читай.
Я вот понимаю почему в js такой говнокаст и почему работает это именно так, но мне от этого не легче.
>Тебе удовольствие или заебаться?
Когда сахар становится магией, это уже диагноз.
>Android не поддерживается?
Понятно.
Вы бы хоть для начала на венде без костылей работать стали, а уже потом в ведро лезете.

Мне там год назад обещали JIT, завезли уже?
Аноним 21/01/20 Втр 17:45:45 157960641
>>1579602
>еще бы табы в питоне посоветовал
Питон в принципе не советую, только конченые долбоебы могли сделать отступы частью синтаксиса.
>сахар становится магией
Нет никакой магии, всё just works, в одну строчку из пяти слов пишется такоэ, на что в других скриптопарашах подключают зависимость.
>венде
Депрекейтед системы нинужны.
Аноним 21/01/20 Втр 18:02:34 157961642
image.png (47Кб, 1134x675)
1134x675
>>1579606
>Депрекейтед системы нинужны.
НИНУЖНО работает и в обратную сторону
Аноним 21/01/20 Втр 18:15:03 157962443
>>1579616
О чём задавать questions, если язык настолько хорош, что в нём уже всё понятно, а что было непонятно — уже разжёвано.
Аноним 21/01/20 Втр 18:19:58 157962744
>>1579616
Я еще вчера в другом треде сдержался, чтобы не спросить тебя. Ты совсем дебил? Как можно судить о популярности чего-либо по количеству вопросов. Они же блять не бесконечные, отвеченный сегодня вопрос - это незаданный завтра.
Аноним 21/01/20 Втр 18:59:46 157966045
>>1579627
Вайтишники не умеют гуглить и задают вопросы заново. Соответственно, чем более популярна какая-то технология у вайтишников, тем более растущим будет такой график. Что не мешает компаниям типа Гитхаба и Гитлаба продолжать пилить свой основной дичайше популярный продукт на Ruby.
Аноним 22/01/20 Срд 00:00:37 158018446
>>1578525 (OP)
Мне очень нравится принцип composition over inheritance, но когда тебе по сути нужно сделать полезную работу в одной функции, а в остальных 10 просто передать параметры композируемому объекту, как-то рука сама тянется пронаследоваться. В этом языке, раз тут везде композиция, нужно чтобы такое делалось просто, без лишних keystrokes, как говорится.
Аноним 22/01/20 Срд 03:35:15 158029347
>>1579624
Ты же программист ты же должен понимать. Чем больше новых людей интересуются тем больше вопросов создается. Не интересуется новых людей, язык уходи в забвение (дрочат его только динозавры на легаси)
Аноним 22/01/20 Срд 03:36:57 158029448
image.png (43Кб, 1152x726)
1152x726
>>1579627
А ты подумай что твоя маня теория не работает
Аноним 22/01/20 Срд 04:13:36 158029649
image.png (56Кб, 1099x765)
1099x765
>>1580184
Мне нравится идея mixin, когда ты в один класс можешь добавлять различные поведения.
Например у тебя есть класс Орг и к нему можешь добавить (примешивать) подклассы "ходить" (со своими методами и полями), атаковать (тоже со своими методами и полями, скажем, урон).

Подобное очень хорошо можно реализовать в языке питона.
Но в действительностью это ужасно ложиться на ООП модель.

Для статических языков, можно разрешить примешивание только полей к структурам, у которых нет никогда методов. И дать возможность везде и всегда привязывать функции.
Звучит радикально, но это позволит насыщать (миксовать) объект (нужным поведением - всегда.
Примерно как на картинке.

Понятно что данные миксин нужно прятать как-то от дочерних классов, но при этом дочерние классы должны как-то иметь доступ к родительским данным (в итоге начинаешь придумывать снова ООП и потом снова получаешь недостатки ООП).

Питон очень гибок, дает поиграться с разными подходами, вот сейчас играюсь и тупо смотрю как лучше.
Аноним 22/01/20 Срд 04:28:36 158029750
image.png (20Кб, 466x199)
466x199
В общем, ООП модель ложится нормально, когда у тебя есть конечный объект типа точка, или строка, то есть реальный тип. Но только доходит к тому чтобы добавить еще поведения, даже через наследование начинается жопа (а агрегация смотрится ужасно. Делегирование очень затратна, даже если брать какой-то котлин, там либо можно все делегировать либо если частично то только ручками)
Аноним 22/01/20 Срд 07:13:47 158032051
Аноним # OP 22/01/20 Срд 12:24:36 158054452
Чет надоело мне синтаксис придумывать.
Аноним 22/01/20 Срд 12:30:03 158055053
>ООП
Все плюсы сразу перечеркнул.
Аноним 22/01/20 Срд 12:54:22 158057354
>>1580550
там как раз нет ООП
22/01/20 Срд 19:32:18 158092955
> Пишем лучший язык всем двачем
Ассемблер уже написан.
Аноним 22/01/20 Срд 23:25:49 158113656
>>1580929
Давай архитектуросрач
Motorolla 68k > ARM > x86
Аноним 24/01/20 Птн 04:00:53 158200457
>>1581136
Шесть пять ноль два.
Аноним 24/01/20 Птн 09:50:15 158208758
>>1580929
Ты хотел сказать лисп?
Аноним 24/01/20 Птн 09:57:41 158209359
>>1582087

Так и не смог в производительность. Даже жирножаба смогла с её то JIT, а SBCL по прежнему даже в SSE1 из Pentium 3 1999 года не может.

Аноним 24/01/20 Птн 10:52:56 158211960
15791488742290.png (721Кб, 1280x809)
1280x809
>>1578525 (OP)
Мутабельные-хуйтабельные, какой же ты тупорылый долбоеб, блять. Вместо того, чтобы придумать годных фич, они опять месят говно в ступе, меняя function на fun и велосипедя синтаксис еще шизанутее, чем в существующих говноязычках.

Пример нужной, полезной и существенной фичи - возможность задавать для классов кастомные лэйауты в памяти. Ну т.е. группировать одноименные поля разных объектов этого класса по массивам, например, для оптимизации времени работы некоторых часто выполняемых над этими данными алгоритмов, которые не затрагивают остальные поля.
Аноним 24/01/20 Птн 21:28:27 158249761
>>1582119
Иммутабельность дает некоторые плюшки компилятору для оптимизации.
Структуры по-умолчанию предполагают упорядоченность в памяти. Отсутствие наследование и прочей виртуальной и мета херни - тоже способствуют экономию ресурсов (агрегация делается компиляцией, в том числе и утиная типизация).

Новые фичи? Отсутствие возможности публичных полей и генерация все в методы (в том числе и для lvalue выражений).

Можно сделать лямбды инлайн-функциями.

>Вместо того, чтобы придумать годных фич
Твоя очередь, раунд.
Аноним 24/01/20 Птн 22:38:36 158254562
>>1582497
>Твоя очередь, раунд.
Заменить fun на fu.
Аноним 24/01/20 Птн 23:16:31 158257763
>>1582545
Когда-нибудь они изобретут хаскелль, где вместо подобных кейвордов спецсимволы:
f :: Type1 -> Type2
Но и хаскелль не пионер в этом
Аноним 24/01/20 Птн 23:31:02 158258764
>>1582577
Хотя, какой хаскелль, даже в банальной сишке этой хуйни нет.
Аноним 25/01/20 Суб 00:09:04 158260865
>>1582497
>Структуры по-умолчанию предполагают упорядоченность в памяти.
Упорядоченность - понятие растяжимое.

Фича, про которую я говорил, могла бы дать значительный выигрыш в производительности в огромном количестве случаев за счет оптимизации промахов по кэшу, но без отказа от ООП, как это происходит сейчас.

>Отсутствие возможности публичных полей и генерация все в методы (в том числе и для lvalue выражений)
Это поставит крест на оптимальности, лол. Или на ООП в условиях борьбы за производительность.

>Можно сделать лямбды инлайн-функциями.
Они уже inline в крестах, вообще-то. Тащи уж тогда локальные классы, как в Java и JS.
Аноним 25/01/20 Суб 00:10:16 158260966
>>1582577
Хуяскель, блять. Профит-то от этой хуйни в чем?
Аноним 25/01/20 Суб 00:12:12 158261067
>>1582609
Я чё ебу? Спроси у борщехлёбов, это они тащатся от такого.
Аноним 25/01/20 Суб 03:02:52 158264068
>>1582609
В том, что функции и процедуры -- это не какие-то волшебные объекты, которые имеют особый статус по сравнению с "обычными" типами данных, а точно такой же тип, как и какие-нибудь инты с даблами. Мы из коробки получаем функции высшего порядка и частичное применение функций как минимум.
Аноним 26/01/20 Вск 16:44:08 158335969
>>1578525 (OP)
Чем он лучший? Почему вывод типов не полноценный? Зачем смешивать данные и методы?
Аноним 26/01/20 Вск 18:08:21 158341870
Аноним 26/01/20 Вск 19:14:44 158347271
Аноним 26/01/20 Вск 19:34:26 158348472
Screenshot 2020[...].png (20Кб, 450x224)
450x224
>>1578580
Без скобок это либо обсервер переменная либо кложуре (частично)

По сути, кокотлин и свифт это нормальные продолжители языков, хотя я не знаю есть ли в котлине екстеншены и прочее, но раскрытие опционалов там тоже свое и оно хотя бы есть.

Остальные языки очень вялые и старые. Да и ты дерьмом занимаешься если честно.
Аноним 26/01/20 Вск 22:42:16 158361773
>>1582608
>>Структуры по-умолчанию предполагают упорядоченность в памяти.
>Упорядоченность - понятие растяжимое.
Что ты сейчас высрал?
Сладость сахара - понятие растяжимое.
Аноним 26/01/20 Вск 22:44:53 158362174
>>1582608
>Это поставит крест на оптимальности, лол. Или на ООП в условиях борьбы за производительность.
Компилятор пустые геттеры и сеттеры обрежет.

>Они уже inline в крестах, вообще-то.
Ой ну раз в крестах лямбды инлайн, тогда все, прекращаем разработку, такое уже есть в крестах.
Тебя не смутило что и структуры есть в крестах, а еще функции есть в крестах. И!!! ДАЖЕ ПЕРЕМЕННЫЕ ТАМ ЕСТЬ!
Аноним 26/01/20 Вск 22:46:50 158362375
>>1583484
>есть ли в котлине екстеншены
Котлин этим тоже спиздил вдохновился.
26/01/20 Вск 22:51:27 158362976
>>1582119
>Пример нужной, полезной и существенной фичи - возможность задавать для классов кастомные лэйауты в памяти.
В будущей джаве уже есть.
Аноним 26/01/20 Вск 23:10:51 158365877
15787513462490.png (38Кб, 251x257)
251x257
>>1583629
Интересно, а можно ссылочку?

>>1583621
>все, прекращаем разработку
Ну прекращай, хули. А ты ее начинал, кстати, зумерок?
Создал чат в телеге, канал на ютубе и этот тред, лол?
>сеттеры обрежет
А линковать ты как собрался, иксперд малолетний?
Аноним 27/01/20 Пнд 12:27:07 158390478
>>1583658
>А линковать ты как собрался
Твоим ртом.
Аноним 27/01/20 Пнд 19:45:38 158421379
добавь багов. Что бы система если что могла бы быстро удалиться.
Аноним 29/01/20 Срд 20:02:07 158574880
Так, я не понял, ОП треда всё, сдриснул? Не видать нам теперь нового русского языка программирования? Его хватило ровно на неделю?
Аноним 29/01/20 Срд 20:04:36 158575081
>>1585748
> Не видать нам теперь нового русского языка программирования
Полно, но взлетевших нет.
Аноним 29/01/20 Срд 20:17:06 158575982
>>1585750
Полно говоришь? Посоветуй тройку лучших на твой взгляд.
Аноним 29/01/20 Срд 21:27:07 158578883
>>1585759
1С. И какая-нибудь совковая паскалеподобная хуйня (раз даже паскаль сдох, что уж говорить про его клоны).
Аноним 29/01/20 Срд 21:37:47 158579284
>>1585748
>Так как мозгов у меня не хватит даже чтобы написать транслятор в го, я просто поделюсь с вами идеального синтаксиса. Можете пиздить вдохновляться идеями, я не против.
Жопой читаешь?
29/01/20 Срд 21:40:32 158579585
>>1585792
Получается что так.
Аноним 30/01/20 Чтв 01:17:49 158590486
>>1585748
Он пока занят, мы линкуем gcc его раздолбанным гноящимся очком.
Аноним 30/01/20 Чтв 11:15:33 158602687
>>1578525 (OP)
>Пишем лучший язык всем двачем
Но Symta уже написана десять лет назад...
Аноним 30/01/20 Чтв 13:06:12 158607388
>>1585795
Пук среньк, сделайте кто-нибудь уже мне нормальную гошечку за меня, я подожду
Аноним 30/01/20 Чтв 13:06:55 158607489
>>1585904
>gcc
Фу, зачем ты это говно мамонта принес.
Аноним 30/01/20 Чтв 13:16:01 158607890
>>1578525 (OP)
Пишем всем двачем
@
Пишет только ОП
@
Кококо, все говно, оп хуй!
@
Кококо, я увидел let, значит язык похож на свифт!
@
Кококо, как ты в своем языке будешь линковать методы, ведь другие линкуют и ты линкуй, часики то тикают.
@
Кококо, ты что не написал мне еще язык, слился?
@
ээээ, я руби обмудок, путаю лямбды с блоками
@
Я поел борща, на те вам хаскель, а то все уже забыли про хаскель.
Аноним 30/01/20 Чтв 13:39:36 158609891
Аноним 30/01/20 Чтв 18:11:47 158634692
>>1586098
Тот язык, у которого сборка мусора собирает только донаты?
Аноним 30/01/20 Чтв 21:33:53 158654293
>>1586074
Соси, не отвлекайся. А то второе яйцо отрежем.
Аноним 31/01/20 Птн 01:57:24 158669694
Аноним 01/02/20 Суб 15:17:33 158810595
>>1585788
>1С
Ограниченное говно. Я даже как-то хотел (и хочу, т.к. пишу на этом говне по работе) транслятор сделать из языка похожего на схему (схема потому что парсить легко) в котором был бы вывод типов. Была бы безопасная хуйня со скобочками, паттерн матчингом и лямбдами.
Аноним 01/02/20 Суб 15:32:14 158811596
>>1588105
Говно, кто спорит. Но ничего лучше среди "русских языков программирования" нет котлин.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов