URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 127345
[ Назад ]

Исходное сообщение
"Дрю ДеВолт представил язык системного программирования Hare"

Отправлено opennews , 25-Апр-22 16:11 
Дрю ДеВолт (Drew DeVault), автор пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut,...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57081


Содержание

Сообщения в этом обсуждении
"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено freehck , 25-Апр-22 16:12 
У этого языка длинные уши! =)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:34 
Настолько длинные, что синтаксис запутался в них.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:56 
int и uint - это фэйл! Сишные проблемы с разным размером этого и логическими ошибками прогеров которые это игнорят ничему не научили? Хруст вроде и то эту мерзость повырубил.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:59 
Ничего твой хруст не вырубил. Он даже переполнение целочисленной переменной не проверяет. Давай фантазируй дальше.  

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:04 
Он вроде бы продвигает типы конкретной ширины когда прогер как минимум знает сколько туда лезет, а абстрактное "int" нихрена про это не говорит. Поэтому часто случается что мнение вон того прогера и вон того компилера не совпало - и возникают крутые баги на ровном месте. Спасибо если не вулны.

А проверка значений целочисленных операций в рантайме убивает скорость математики в разы. Одно дело ADD R1, #1 и совсем другое - оно же с проверкой флагов и условными переходами. Так что код внезапно в разы медленнее и жирнее. Ну и все крипто, кодеки, графика и прочее добро где нам позарез нужна скорость алгоритмов - обваливается в разы. И никому оно такое не надо оказывается, кроме питономмакетов с энтерпрайзами готовыми сервера докупить. И даже те - вон сервис шаринга файлов, сперва пихон на игогоху переписал а потом и на хруст. Экономия на серверах штука такая.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Sw00p aka Jerom , 25-Апр-22 22:02 
>Одно дело ADD R1, #1 и совсем другое - оно же с проверкой флагов и условными переходами.

как такое можно писать? понятие "корректный алгоритм" вам знакомо?

https://ru.wikipedia.org/wiki/%D0%90%D0%...

раздел "Анализ алгоритмов" к прочтению.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:50 
> как такое можно писать? понятие "корректный алгоритм" вам знакомо?

Ну вот так и можно - я могу проверить валидность границ и применимости математики где-то очень сильно за пределами тугого цикла. Не нагибая тугой цикл 100500 проверок и условий в обязаловку, вместо этого вынеся гарантии в сторону, просчитав worst case отдельно. Это позволяет сделать критичный кусок кода БЫСТРЫМ. Убить его в РАЗЫ по скорости во имя луны я совершенно не готов.

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


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Sw00p aka Jerom , 26-Апр-22 12:01 
>я могу проверить валидность границ и применимости математики где-то очень сильно за пределами тугого цикла. Не нагибая тугой цикл 100500 проверок и условий в обязаловку, вместо этого вынеся гарантии в сторону, просчитав worst case отдельно.

не путайте понятия корректности и оптимальности. Выше вы предлагали не проверять флаги переполнения при сложении это относится к корректности, а щас пишите про оптимальность. Корректность предшествует оптимальность. Алгоритм должен сначала быть корректным, а потом уже оптимальным, а оптимальность уже это необходимое и достаточное условие, чтобы алгоритм оставался корректным.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 16:11 
Я вообще-то писал о том что коррекность можно обеспечивать и менее тупыми способами чем проверка каждой операции.

Еще раз: я могу ДО основного цикла проверить что ХУЧШИЙ СЛУЧАЙ операции в цикле точно никогда не переполняется с данным размером, допустим, integer'ов, при вообще совсем любых аргументах на вход алгоритма.

При этом мне будет очень кстати знать ТОЧНЫЙ размер типа. Упрощает понимание краевых случаев.

Если я доказал это и проверил потребные критерии еще ДО входа в цикл, проверять переполнение в цикле избыточно и только обрушивает его скорость зазря. Да, это требует аккуратности, зато воздает скоростью недостижимой при указанном подходе с неотключаемой проверкой все и вся. В лучшем случае это даже автоматизировать можно, какой-нибудь развесовкой static assert'ов на этапе сборки еще, но катит не всегда, конечно.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено OpenEcho , 25-Апр-22 22:41 
> Он даже переполнение целочисленной переменной не проверяет.

А надо? Иначе есть риск загубить криптографию, где переполнение целочисленных переменных используется по назначению


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:40 
Ненадо так же как и раст.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 18:32 
С кодом вида
>         "こんにちは世界!",

...они скоро узнаюот про атаки вида BadSource :)


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 22:19 
> Ничего твой хруст не вырубил. Он даже переполнение целочисленной переменной не проверяет. Давай фантазируй дальше.

Уныленько. Попробуй потоньше.

https://github.com/rust-lang/rfcs/blob/master/text/0560-inte...
> Implementations are permitted to check for overflow at any time (statically or dynamically). Implementations are required to at least check dynamically when debug_assert! assertions are enabled. Add a WrappingOps trait to the standard library with operations defined as wrapping on overflow for the limited number of cases where this is the desired semantics, such as hash functions.
>


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 10:19 
> Ничего твой хруст не вырубил. Он даже переполнение целочисленной переменной не проверяет.

Никто этого не проверяет, даже жаба которая исполняется а JVM потому как это оверхед. Это фишка ALU процессоров, некоторые умеют выставлять флаги при переполнении, некоторые нет, это все очень платформеннозависимо. И даже если процессор выставит флаг переполнения, то для его проверки нужны дополнительные инструкции с бранчингом (на случай ошибки) после каждой мат.операции. Если такую вальвацию сделать частью языка, то такой язык будет считать медленным и он с треском проиграет во всех бечмарках, даже той же java и .net.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Sw00p aka Jerom , 26-Апр-22 12:09 
>Если такую вальвацию сделать частью языка, то такой язык будет считать медленным и он с треском проиграет во всех бечмарках, даже той же java и .net.

а в чем разница если этот код проверки в рантайм пихает ЯП или этот же участок кода пишет программист? в случае с ЯП он будет гарантировать эту проверку, а в случае с программистом - на его "не выспанность" и безолаберность.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 12:23 
Так в том и дело что гарантий обычно никому не нужно, нужна скорость, есть же разница между выполнением 1 ассемблерной инструкцией и тремя.    
В те редкие моменты когда такое переполнение может случится на себя берет ответственность кодер, можно использовать специальные математические библиотеки, они не только переполнение проверят, но и позволяют работать с очень большими числами не ограниченными размерами регистров в современных CPU, конечно это работает медленно, но такова цена за точность.

А эта притенения похоже не претензию новичков к JS: `0.1+0.2=0.30000000000000004`, где проблема совсем не в JS, а в IEEE-754.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Sw00p aka Jerom , 26-Апр-22 13:30 
>Так в том и дело что гарантий обычно никому не нужно, нужна скорость

гарантий корректности не нужны?

>есть же разница между выполнением 1 ассемблерной инструкцией и тремя.

есть конечно же, но это не критерий оценки временной сложности алгоритма. Эти три инструкции могут быть взяты за элементарный шаг при анализе.

>но такова цена за точность

так что же важнее? корректность алгоритма с точным результатом или его "быстрота" с неточным результатом? И это не цена, это необходимость и достаточность.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 14:04 
> но это не критерий оценки временной сложности алгоритма.

O(n) не изменится, но throughput просядет в пару раз.

> корректность алгоритма с точным результатом или его "быстрота" с неточным результатом?

Так тут как бы выбор между ошибкой в runtime и неточным результатом. Хотя слово неточный не уместно, результат то точный и детерминированный, просто не тот который ожидается при конкретной математической операции.  

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

А если у нас не x86 архитектура, а какой-нибудь сервер на RISC-V где никаких флагов о переполнении в его ALU нет совсем, поту для него будут генерировать не 3 ассемблерные инструкции,  а 5-10, на таких CPU производительность просядет в 5-10 раз.  


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Sw00p aka Jerom , 26-Апр-22 22:16 
> O(n) не изменится, но throughput просядет в пару раз.

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

> Так тут как бы выбор между ошибкой в runtime и неточным результатом.
> Хотя слово неточный не уместно, результат то точный и детерминированный, просто
> не тот который ожидается при конкретной математической операции.

неточный результат и есть ошибка.

> Но цена этому будет производительность, например в
> случае сервера наш сервер будет обслуживать в два раза меньше клиентов.

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

> А если у нас не x86 архитектура, а какой-нибудь сервер на RISC-V
> где никаких флагов о переполнении в его ALU нет совсем, поту
> для него будут генерировать не 3 ассемблерные инструкции,  а 5-10,
> на таких CPU производительность просядет в 5-10 раз.

просядет по сравнению с чем, с схематической реализацией? ну и дураку понятно. Ну допустим не используйте в ЯП оператор +, а напишите свою реализацию функции сложения add в столбик - просядет у вас производительность вычислений?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 12:41 
P.S. Я не исключаю что возможно существует язык или компилятор котоырй генерирует такие валидации, и используется где-то в критических индустриях, например для медицинского оборудования или атомной промышленности.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Пиём канфеты кушоем чаи , 26-Апр-22 14:29 
>нужны дополнительные инструкции с бранчингом

ВРЁТИ!!!
ВРЁЁОООААААААААА!!!!!!1111ы

Выпалняем "trap on condition" прапоускаем один такт некакова суецы^W бранчинга.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 16:21 
> Выпалняем "trap on condition" прапоускаем один такт некакова суецы^W бранчинга.

И скока платформ это умеет на уровне железа, чтоб без пеналти по скорости? А, расскажем что они не нужны. Так?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 21:35 
> Никто этого не проверяет

Delphi (и lazarus тоже) проверяет в рантайме и генерит exception. Для криптографии вырубают.

Фортран вроде бы тоже должен проверять, но это не точно...


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено . , 26-Апр-22 16:20 
это некто не проверяет. это стандартное поведение mod(a+b, 2^x)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Sw00p aka Jerom , 26-Апр-22 22:01 
> это некто не проверяет. это стандартное поведение mod(a+b, 2^x)

не стоит путать сложение по модулю и арифметическое сложение.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:59 
Еще прикол.

> Handling allocation failure
> TODO

Эм... а что делать если там NULL мы подумаем потом :)))


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:26 
> Еще прикол.
>> Handling allocation failure
>> TODO
> Эм... а что делать если там NULL мы подумаем потом :)))

Например попробовать читать спеки, вместо недописанного (к чему походу TODO и относится) туториала?

6.6.21.6
In the alloc form, if the execution environment is unable to allocate sufficient
storage for the requested type, the execution environment shall print a diagnostic
message and abort. If the type hint is a nullable pointer type, the result type of the
allocation expression shall also be nullable, and null shall be returned instead of
aborting if sufficient storage cannot be provided.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:30 
> Например попробовать читать спеки, вместо недописанного (к чему походу TODO и относится) туториала?

А, это про туториал было? Вашу 20, чем они думали так туториал к "системному" языку писать?

> storage for the requested type, the execution environment shall print a diagnostic
> message and abort.

Ох, круто, так и представляю себе линуксный кернел упавший в панику с "can't allocate message for kernel". Агаблин, очень так системненько... хрустикам это дело в майнлайновой рассылке популярно объяснили, этому дону персональное объяснение требуется?

> aborting if sufficient storage cannot be provided.

Ога, в кернеле тебе это и сделать...


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:34 
> execution environment
> линуксный кернел

"Крутой системщик"294 совсем не палицца ...

> Ох, круто, так и представляю себе линуксный кернел упавший в панику с
> "can't allocate message for kernel". Агаблин, очень так системненько... хрустикам это
> дело в майнлайновой рассылке популярно объяснили, этому дону персональное объяснение требуется?
>> aborting if sufficient storage cannot be provided.
> Ога, в кернеле тебе это и сделать...

Хоспади, какая же каша у тебя в голове. Аллокация явная. Причем тут паники и хруст - не ясно. Судя по всему, до " and null shall be returned instead of aborting if sufficient storage cannot be provided." так и не дочитал.



"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 22:32 
> "Крутой системщик"294 совсем не палицца ...

Во всяком случае могу накодить бутлоадер или фирмварь, реалтаймно и предсказуемо, подняв моим кодом SoC, пропатчить линухкернел, написать себе и не только (около)системные тулсы. А чего добился ты? :)

> Хоспади, какая же каша у тебя в голове. Аллокация явная. Причем тут
> паники и хруст - не ясно.

Хрустики кстати после пинка Торвальца доперли. Но получилось костыльно, конечно. Наверное потому 2 конкурента хруста и образовалось. Они тоже странновато это делают, но некоторые идеи в принципе неплохо уловили.

> Судя по всему, до " and null shall be returned instead of aborting if sufficient storage
> cannot be provided." так и не дочитал.

Я таки только краем глаза читал. Пытаясь понять насколько оно того стоит. В тыщи проектов уровня студенческой поделки, меня на всех не хватит. Но ДеВолт зарекомендовал себя неглупым типом. В зиге имхо прикольнее всего вычисления в компилтайме на самом деле придумали. Надеюсь ДеВолт сопрет идею, если еще не.

В идеале совместить бы их всех в что-то чуть более сишное, с предвычислениям как зиг, переклином на borrow checker хруста, опциональной и модулярной сислибой и могло бы получиться дельное комбо. А пока xkcd927 слегка напоминает. Уже минимум 3й убийца сишки. А сишкой продолжат пользоваться т.к. в силу примитивности проблем не очень много, они известны, в совсем пустой системе проще ему окружение создавать.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено AA_suited , 27-Апр-22 13:36 

> В идеале совместить бы их всех в что-то чуть более сишное, с
> предвычислениям как зиг, переклином на borrow checker хруста, опциональной и модулярной
> сислибой и могло бы получиться дельное комбо. А пока xkcd927 слегка
> напоминает. Уже минимум 3й убийца сишки. А сишкой продолжат пользоваться т.к.
> в силу примитивности проблем не очень много, они известны, в совсем
> пустой системе проще ему окружение создавать.

Напиши что бы ты хотел видеть/не видеть чуть более подробно, может даже страничку/бложик сделай.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 16:41 
1) Культурную работу с регистрами железа (разных размеров), как то эффективно форсируемый volatile, read-only и проч, развитую и эффективную работу с битовыми полями в каком-нибудь очень маленьком и очень оптимизированом виде без оверхеда и с precompute всего что precompute'ится. На сях это приходится самому делать изобретая велик, ибо битовые типы только в struct - и довольно криво! Ну например: допустим я знаю что у меня 32 бита в регистре. Как насчет красивых деклараций битов и полей в регистре, с проверкой что за 32 бита не выехало вместо UNDEFINED?
2) Стандартный контроль выравнивания и упаковки структур и проч. Может даже с контролем endianess. А чтоб структуроривано например пакеты (сетевые, радио, интерфейсные) описывать культурно и структурировано - но получать побитово предсказуемое нечто в провод/эфир или что там у нас, дабы ресивер на другой стороне это совершенно точно понял даже если это кодили совсем другие люди. В си так ну не то чтобы совсем нельзя, однако есть масса проблем по части endianess и упаковки. А упаковка зачем? Ну например вон тот struct скормить DMA-автомату по адресу "как есть" и стрельнуть его 1 блоком в провод или куда там без участия проца.
3) Стандартный вариант размещения константы/переменной/функции и проч в конкретной секции. А может и контроль за тем что делает линкер из сорца. Если я пишу фирмварь, мне надо чтобы вектора прерываний были в бинаре первыми, и по конкретному физическому адресу. В сях это делается, но - нестандартными расширениями. А вот именно одним только стандартом обойтись в таких вещах - ХРЕН.
4) Развитый compile time checking всего чего можно и нельзя. Потому что #$%нувшаяся на полпути фирмвара - весьма печально и дорого обходится. Наверное можно к этому compile time вычисления как в zig довольно круто припахать.
5) Ну и лично мне нравится гнутый тулчейн. Код хороший генерит, может заспорить с кайлой и иаром на мелких армах только так. Так что оформить новый, клевый яп фронтом к нему - дикий win в моих глазах.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено жорик , 25-Апр-22 18:18 
Как я должен осилить столь отвратительный синтаксис?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено VladSh , 25-Апр-22 18:28 
Сначала попробовать писать на чём-то с более отвратительным синтаксисом)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:15 
После раста любой язык - кристально понятен.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 07:53 
чем отвратительнее синтаксис тем выше безопасность.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 12:09 
Потому, что киддисы такой язык не осилят.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:13 
Никак не могу понять, что же он мне напоминает....

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:16 
Нечитаемый, ужасный синтаксис. После Nim особенно больно смотреть.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 14:48 
Ладно, если присмотреться, то норм. Отпугнули поначалу двоеточия.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:48 
Помесь сишки, хруста и зига, что же еще?! И таки let можно было бы наверное побустать. Мерзко 4 лишние буквы печатать, что ни говори.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:10 
> Помесь сишки, хруста и зига, что же еще?!

Разве что для опеннетчиков, знакомых с другими ЯП исключительно по новостям опеннета.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено DontTreadOnMe , 25-Апр-22 17:50 
Я бы сказал это смесь раста и го.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:04 
> Я бы сказал это смесь раста и го.

Всякие деферы и проч явно из зига сперты, там почти так же было.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:41 
Дефер из Го. Я прогаю на Си и Го. Хотел написать Харэ, но текст языка полностью понятен, в отличие от ржавчины.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:57 
> Дефер из Го. Я прогаю на Си и Го. Хотел написать Харэ,
> но текст языка полностью понятен, в отличие от ржавчины.

Просто синтаксически оно в целом Zig напоминает сильно больше игого. А тот в свою очередь под хруст сильно косит. У игогошки в целом синтаксис вроде бы заметно иной. А то что там фичу передрали - ух, блин, вы еще монополию на какие-нибудь корутины одному языку отдайте. А потом заметьте что их даже сишники умеют если захотят, чертову кучу лет, кули.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено OpenEcho , 25-Апр-22 22:48 
> Я бы сказал это смесь раста и го.

A что там от Го, "let" или "::" или "use", или "fn" ... ?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:41 
Дефер

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено trdm , 25-Апр-22 17:05 
> Никак не могу понять, что же он мне напоминает....

Это паскаль без бегинов и эндов.
    let buffer: *[65535]u8 = alloc([0...]);
хорошо присваивание без ":"


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Alexey Tor. , 25-Апр-22 17:24 
Pascal. Был и остаётся хорош и понятен. Да, есть недочеты в free pascal, это проблемы реализаций , но сам язык очень хорош. И понятен!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Старший аноним , 25-Апр-22 17:44 
Не скажу, что его последователь ADA хорош с точки зрения синтаксиса - слишком много не всем понятных Pragm.
Но с точки зрения безопасности и отсутствия ошибок - нет равных. Если программа скомпилированно на Ada/Spark, то это значит, что на 99% там не будет ошибок.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:19 
Кроме логических. Их будет столько же сколько везде.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Старший аноним , 25-Апр-22 18:42 
С учетом развития в последнее время методов Машинного обучения в анализе кода, и на логические ошибки, за которые их посчитает AI,  могут быть, по-крайней мере, выданы предупреждения пользователю.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:10 
А вон кстати какой-то анализер выкатили как раз, использующий результаты машинного обучения для поиска проблемного кода. Впрочем тут коллеги британских ученых AI припахали искать ядовитые молекулы, а он возьми да и найди кучу вариантов суровее VX... так что за убить всех человеков у роботов уж точно не заржавеет!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:05 
Советские учёные ещё в 1970-80-х без всякого AI нашли около 60 таких молекул суровее.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 01:03 
> Советские учёные ещё в 1970-80-х без всякого AI нашли около 60 таких молекул суровее.

А этот нашел тысячи за какие-то единицы часов. И вообще был изначально для поиска лекарств а это так, на правах эксперимента.

Это просто ремарка к тому что если AI задастся каким-то вопросом, он найдет ответ и без советских ученых. За скромное время и эффективно. Самое забавное что с ним можно сделать - озадачить самоулучшением. Правда результат - unspecified.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено a_kusb , 27-Апр-22 07:44 
Это был бы сильный ИИ, мне не кажется что ИИ сейчас для всего подходит.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 12:04 
> если AI задастся каким-то вопросом

Искусственного интеллекта не существует. Есть нейронные сети, это другое.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 16:53 
Как показал пример жизни на планете, однажды слабый интеллект становится сильным. По мере увеличения числа нейронов оно самозапускается, развивается, осваивает более сложное взаимодействие с миром.

Что помешает AI точно так же самозапуститься? На первый взгляд ничего. Верить в свою уникальность и избранность может только наглая глупая обезьяна. За что и попадет в зоопарк или на кладбище, имхо.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 13:02 
> логические ошибки, за которые их посчитает AI

Это "статистические ошибки", а не логические.

AI обученный на примерах миллионов (мух, которые не ошибаются), будет фиксировать, что код написан те так, как предыдущие миллионы.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено a_kusb , 27-Апр-22 07:56 
Значит нужно определять логические ошибки чтобы датасет был эффективнее.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено рлрдл , 07-Май-22 20:09 
До сих пор живы Модулы в узких нишах. В универах на них чуть прогают и во всяких конторах где спутники делают (ада точно была там же, в каких то кубсатах).
Кстати, в каком то универе, на острове в море, до сих пор употребляют Симулу, даже не Смолток а именно Симулу в оригинале.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено _kp , 25-Апр-22 21:22 
Я хоть и не фанат Паскалей, но приходилось писать, и много.
Но не многословность главный недостаток,
а уродливое объявление переменных где то в начале.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено KhabMan , 25-Апр-22 17:34 
Наверное, вообще не в тему, но есть такой др. Дью, который использует инструмент DeWalt...

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:15 
> самодостаточное использование для запуска поверх оборудования без операционной системы

Ну хоть один убийца Си это сделал на начальном этапе.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:19 
Что-то не нашёл на сайте примеров..

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 25-Апр-22 16:23 
https://git.sr.ht/~sircmpwn/helios

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:25 
Ладно... Я хотел для микроконтроллеров найти.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:46 
Они в этом не так уж отличаются от остального bare metal, единственное что реально надо - детальный контроль за layout прошивки, в какие секции что идет и в каких адресах это лежит. На сях это делается нестандартненько, таблицу векторов прерываний придется каким-нибудь левым __attribute__(section(IRQVECTORS)) делать. А это ни в раз не часть стандарта, печалька. Как и линкерный скрипт говоряший где это IRQVECTORS реально лежит.

И еще там надо чтобы не было стандартной либы - где ей там файловую систему брать? Притащить еще либ и кода, весом в 20 раз больше основной части прошивки? Тогда и микроконтроллер придется брать дороже и навороченнее.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 13:37 
Сейчас кто-то ещё выбирает микроконтроллеры для новых проектов меньше, чем Cortex-M0? А стандартная либа newlib и в Атмегах помещается.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 16:59 
> Сейчас кто-то ещё выбирает микроконтроллеры для новых проектов меньше, чем Cortex-M0? А
> стандартная либа newlib и в Атмегах помещается.

1) Даже attiny и такую гадость как pic миллионами используют. И даже там на сях прогают, ага.
2) А если в чипе m0 всего 16 кил флеша, 4 кило рамы, и у меня свое фирмваре большую часть этого уже жрет, мне как-то не в кассу еще newlib туда. И ФС мне там просто не нужна. А зачем абстракция файловой системы какому-нибудь термостату например? И чего делать предлагается, брать чип жирнее и дороже, где флеша и/или рамы больше? Это не бесплатно. Настолько что вон те даже с пиком готовы сношаться из-за полубакса на чип. При тираже в миллион им эти полбакса помноженные на миллион очень нравятся в их кармане.

Нене, вы можете собрать термостат даже на распи. А миллион раз его потом повторить для народа жаба не удушит в таком виде? Ведь эти мегабаксы могли быть ваши а не броадкома...


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 16-Июн-22 15:19 
Зачем Бредком, это же SoC с MMU? Микроконтроллер со 128 кбайт флеша - разумный компромисс.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Likern , 25-Апр-22 17:03 
Zig это умеет.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:20 
За что этому челу минус поставили без коммента?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:46 
Только он какой-то нестабильный, там были изменения не по-семверу. И до релиза 1.0.0 еще далеко если он ваще будет.  

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 01:52 
До 1.0.0 никакого семвера и нет.

Но вообще если то что сейчас есть устраивает - считайте что он стабильный. Там сейчас пилят новый компилятор, и пока не допилят его, никаких улучшений особо не будет.

Т.е. на пару лет он вполне стабильный) Да и потом ничего критичного вроде не будет.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено www2 , 27-Апр-22 15:28 
Форт, нет?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 11:54 
Реализаций живых и актуальных нет.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:22 
Hare и Haxe.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено JVM , 25-Апр-22 16:22 
вообще есть nim, чем не устроил?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 22:26 
Фатальный недостаток, как и у всех других языков

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено ffirefox , 26-Апр-22 22:18 
С определённого момента в Nim стали заталкивать очень много всего. Дикая вариативность в кодировании алгоритмов на Nim. Похоже, автор идёт по стопам Perl.

Очень мощный язык для самовыражения программиста (точнее даже - очень опытного программиста). Но вот разбираться с этим...

Язык должен быть простым, однозначным, с возможностью простого автоматического парсинга.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Шарп , 25-Апр-22 16:24 
Сишка с неймспейсами?

>fmt::println()!;

У вас ус^Wrust отклеился.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено НяшМяш , 25-Апр-22 16:38 
Забавно, что как раз в расте не нужен неймспейс для println, он уже видим по-умолчанию.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 09-Ноя-22 09:03 
потому что это макрос

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Массоны Рептилоиды , 25-Апр-22 16:52 
> У вас ус^Wrust отклеился.

Рыжий суслик


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 25-Апр-22 16:25 
Писал на нем движок рендеринга шаблонов (типа jinja), очень приятный язык, буду юзать дальше, как поопрятней станет. Но сдается мне, что Zig его сожрет.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Likern , 25-Апр-22 17:05 
Я тоже думаю что сожрёт.

Сам пишу на Zig. Синтаксически похож на Zig (defer) при первом взгляде (и на JavaScript c let\const).


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:13 
defer не только в зиг есть если что

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 25-Апр-22 17:38 
Он вообще чувствуется как зиг, из которого повырезали фичи и добавили type unions из тайпскрипта. Но в тоже время он чувствуется элегантнее, чем зиг из-за вот этих type union и того факта, что expressions повсюду, даже фигурные скобки. В фиге надо лейблы к ним лепить, чтобы было так же. Хотя я с зигом только начал играться.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 20:12 
>type unions из тайпскрипта

Я бы тебе посоветовал вместо тайпскрипта начать учить настоящие языки. Standard ML, OCaml или Haskell, например. А то так и на раст со своими чулками для программирования перейдёшь.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 29-Апр-22 16:00 
То, что я знаю, что есть в тайпскрипте, не значит, что я на нем пишу. Я перепробовал много языков и сейчас остановился на харе и го. Я бы тоже тебе посоветовал расширять кругозор вместо демонстрирования своей узколобости.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Ю.Т. , 25-Апр-22 16:31 
Это быстрый язык! =)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Ю.Т. , 25-Апр-22 16:32 
Кстати, продаётся на дискетах!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено leap42 , 26-Апр-22 07:14 
> Кстати, продаётся на дискетах!

Вот да, оно влазит на дискету целиком, без необходимости ставить 100мб llvm или ещё чего. Вот это инженерия с заботой о ресурсах, а не хипстоподелка.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:40 
Эй, луддиты, вы тут часом не с тостера сидите?? :)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 13:59 
С тостера под NetBSD, постим из lynx

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 21:18 
> С тостера под NetBSD, постим из lynx

А чё не QNX? Тоже в своё время "влазим-на-дискетку" хвалились :)


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено leap42 , 26-Апр-22 16:38 
> Эй, луддиты, вы тут часом не с тостера сидите?? :)

AMD Ryzen 5 5600X, 32GB RAM, 2TB nvme, пишу на хипстерском Go и вообще бесконечно далёк от луддизма, просто восхищаюсь реализацией. Флоппи диск продаётся не для того чтобы его куда-то вставлять, если что.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 21:17 
>  Флоппи диск продаётся не для того чтобы его куда-то вставлять, если что.

:))) Вот и я подумал, зачем людям в 21 веке дискетка! Ну точно куда-то вставляют! :))))
Строго говоря, размер компилера не имеет значения. Если LLVM позволяет таргетить под целую кучу платформ, да путь он хоть терабайт ест!! Лишь бы выходящие программы были маленькие и шустрые.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено leap42 , 27-Апр-22 05:13 
> Строго говоря, размер компилера не имеет значения.

Перечитывайте классику, слушайте настоящих программистов: они скажут что размер программы (например компилятора) прямо связан с количеством багов в ней (попробуйте найти 3 в моём hello world ;-) ). Мой любимый пример - регрессия в LLVM из-за которой borrow checker в Rust работал не так, как ожидалось несколько выпусков подряд. Но из-за размера и сложности LLVM того сначала не замечали, а потом не могли починить.

> Если LLVM позволяет таргетить под целую кучу платформ, да путь он хоть терабайт ест!!

Дрю прямо сказал, что проблемы индейцев (пользователей несвободных ОС) его не волнуют, язык целится только в Linux и FreeBSD, так что не аргумент.



"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Michael Shigorin , 02-Май-22 11:18 
> Строго говоря, размер компилера не имеет значения.

*Строго* говоря -- имеет.  Если не в штанишки себе кодите, а организовываете, скажем, регулярные пересборки накоженого в создаваемом с нуля изолированном окружении.

Не говоря уже о менее очевидных последствиях нечеловекопостижимости.

Домашнее задание -- прочитать и осмыслить терабайт текста (вообще на любом языке).


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:32 
Как!-то подозрительно! много !восклицательных знаков!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним84701 , 25-Апр-22 16:57 
>> Note the ! operator which follows the function call: this is the error assertion operator.
> Как!-то подозрительно! много !восклицательных знаков!

Ну да, внезапно, чтение из буфера и даже вывод в stdout могут "сломаться".


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:41 
Нет. Слишком много вот этого: ::::::::

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:34 
Так и хочется сказать "Харе клепать новые языки! У вас что, больше языков богу языков?"

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Брат Анон , 25-Апр-22 21:18 
Долистал до сюда чтобы первым это написать, но не успел.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:42 
На самом деле пусть клепают - это ПОЛЕЗНО. Как минимум, примером как НЕ НАДО делать! :)
Когда количество изученных языков начнёт зашкаливать (у меня их порядка 20+), количество переходит в качество и уже по внешнему виду начинаешь понимать, что с языком не так.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 30-Апр-22 10:40 
А что с ним не так и какие языки хороши?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 30-Апр-22 14:25 
> А что с ним не так и какие языки хороши?

"не так" - то, что с виду это тот же Си, только с :::::::::  :)
Грубо говоря, рынку нахрен не нужны "те же Си, только в профиль"!
И нормальный язык уже сделали - это D - современный ООП подход, куча плюшек, только пользуйся!
У Ди одна проблема - куча клоунов в тырнетах, которым яйца танцевать мешают, а программировать на Ди они не хотят и ищут отмазки.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Michael Shigorin , 02-Май-22 11:20 
> У Ди одна проблема - куча клоунов в тырнетах

Ой, типа мы с Вами порой клоунами не оказываемся.  Не мните шибко много :)

PS: в @e2k_chat нарисовался человек, отнёсший D на e2k, пока некоторые разглагольствовали.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено BorichL , 27-Апр-22 14:18 
Дык чего только хипстота не придумает, лишь бы Си не учить... (с)

Видимо медиаплееры уже писать не модно, переключились на языки. Им бы в моду теперь браузеры подсунуть, пусть помучаются.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Michael Shigorin , 02-Май-22 11:21 
Кстати, netsurf кому-то даже может оказаться и по зубам, и на взаимную пользу.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено BorichL , 03-Май-22 01:37 
> Кстати, netsurf кому-то даже может оказаться и по зубам, и на взаимную
> пользу.

Вероятно, но сначала надо надавать по зубам жабоскриптерной хипстоте!


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:41 
> main.ha

Вот будет трололо если это окажется архив архиватора .ha - был такой :))


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:50 
Натужная острота с целью показать своё знание древних архиваторов. Vanitas vanitatum, omnia vanitas.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:53 
Скорее мелкий троллинг на тему того что расширение файла можно и покреативнее выбирать, без коллизий. Мало букв в алфавите чтоли?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено kusb , 25-Апр-22 17:00 
.hre
?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 25-Апр-22 17:42 
.hrю

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено kusb , 25-Апр-22 17:48 
Хрю

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:17 
Можно и .hare - вы ж не будете под DOS 6 на этом прогать?! А остальное так то уже давно умеет больше чем 8.3

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено kusb , 25-Апр-22 18:59 
> Можно и .hare - вы ж не будете под DOS 6 на
> этом прогать?! А остальное так то уже давно умеет больше чем
> 8.3

Три символа на расширение это признак элитности формата. А вообще - эта штука выглядит не самой плохой чтобы писать под ней для DOS.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:17 
> Три символа на расширение это признак элитности формата.

Вообще тогда 1 символ круче всех. Как в .c/.s :)

> А вообще - эта штука выглядит не самой плохой чтобы писать под ней для DOS.

Нафига? В досе все равно защиты памяти нет и проч. Это нагибает многие допущения даже того же хруста - он предполагает MMU, а ежели этого нет он влет stack overflow могет закатить, с перезаписью остального не хуже сишки. И оно вообще умеет real-mode код x86 генерить?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Michael Shigorin , 02-Май-22 11:22 
Прошу прощения, проверка глазомера -- User294? :)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 21:45 
Откуда коллизии взяться-то? Или ты намерен исходники саоих нетленок хранить в одной директории с архивом фэхи su.books?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 21:57 
.ahahah

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 20:07 
не натужней твоей демонстрации "знания" латыни

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:44 
Пижон тут как раз ты - ещё один безусый носитель мёртвого языка.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:42 
Что за странная любовь к двойным двоеточиям?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:51 
Это они у плюсовиков научились. В принципе ничем таким особо не плохо, довольно типовой способ иерархической адресации конструкций яп.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Бывалый смузихлёб , 25-Апр-22 17:07 
Такими темпами скоро на клавиатуре появится новая кнопка - двойное двоеточие

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Michael Shigorin , 02-Май-22 11:23 
> Такими темпами скоро на клавиатуре появится новая кнопка - двойное двоеточие

Скорее на мышке...


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:16 
> Это они у плюсовиков научились.

Надеюсь, не у перловиков.

> довольно типовой способ иерархической адресации

Точка - типовой способ иерархической адресации. Сам на плюсах часто пишу и "::" даже в его синтаксисе выглядит, как инородное тело. С++ можно простить - наследие прошлого, но в новых языках - зачем?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено VladSh , 25-Апр-22 18:35 
Так оно на глаз сразу отличается - видно, что уже реально какой-то новый язык программирования.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:36 
У си с этим тоже так то есть приколы. А -> не хотели для структа по указателям? :) И плюсы вроде не единственные кто так делает. А заодно это в отличие от точек в обычном тексте редко встречается.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:45 
Методы в структурах можно?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 25-Апр-22 16:51 
Можно, но только как указатели на функции (как и в си). Свою vtable тоже неси.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:11 
И указатель на структуру передавать ручками как в C ?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 25-Апр-22 17:30 
Ага

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:46 
Указатель - просто число, какие могут быть с ним проблемы "передавать"???

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 13:12 
А зачем его в каждую функцию структуры "закатом солнца вручную" передавать, когда это мог бы компилятор делать? Вот в V, похоже (после беглого ознакомления), так и сделано.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:37 
> Можно, но только как указатели на функции (как и в си). Свою
> vtable тоже неси.

А эффективно вернуть из функции несколько параметров оно могет?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 27-Апр-22 05:03 
Да, tuples есть

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 17:09 
> Да, tuples есть

Так то вернуть struct я и из сей могу, но вот элегантно вернуть парочку независимых int'ов или там чего еще? Или даже небольшой массив? Ну то-есть симметрирование входа и выхода функций, чтобы более-менее равноправно было. Типа return (u32) nread, (u16) errcode, extra[10]? В допушении что прототип заявлен на возврат вот этого. Некоторые что-то сравнимое вроде могут. На сях это при желании struct делается, но не очнь удобно.

Просто сишники имеют обыкновение использовать пойнтеры на ВХОД функции для возврата сложных конструкций. Это криво хотя-бы потому что из этой декларации не очевидно реальное намерение программера - использование входа для декларации выхода все же криво.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 28-Апр-22 11:57 
Элегантнее тюплов пока ничего еще не придумали

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 06:36 
> Элегантнее тюплов пока ничего еще не придумали

Я вот не понимаю, какие принципиальные проблемы сделать список аргументов, как на вход, симметрично? Даже пусть они все и mandatory будут. И так же возвращать в регистрах/стэке/памяти/кому там что больше нравится, как входные аргументы.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 29-Апр-22 16:03 
Потому что неэлегантно

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 30-Апр-22 02:13 
> Потому что неэлегантно

Неэлегантно это когда вход и выход функции несимметричные имхо.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним84701 , 27-Апр-22 18:27 
> Да, tuples есть

Но QBE, насколько я понял, умеет возвращать только int или указатель.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Anime , 28-Апр-22 11:55 
use fmt;

export fn main() void = {
        const t = ret();
        fmt::printfln("({}, {})", t.0, t.1)!;  // prints (1, 2)
};

fn ret() (u8, i32) = {
        return (1, 2);
};


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним84701 , 28-Апр-22 13:17 
> use fmt;
> export fn main() void = {
>         const t = ret();
>         fmt::printfln("({}, {})", t.0, t.1)!;
>  // prints (1, 2)
> };
> fn ret() (u8, i32) = {
>         return (1, 2);
> };


00000000080000d8 <main>:
80000d8:       55                      push   %rbp
80000d9:       48 89 e5                mov    %rsp,%rbp
80000dc:       48 81 ec 10 01 00 00    sub    $0x110,%rsp
80000e3:       e8 ae 01 00 00          callq  8000296 <ret>
80000e8:       48 89 85 f8 fe ff ff    mov    %rax,-0x108(%rbp)
80000ef:       8b 8d f8 fe ff ff       mov    -0x108(%rbp),%ecx
80000f5:       89 8d 00 ff ff ff       mov    %ecx,-0x100(%rbp)
...
<ret>:
8000296:       55                      push   %rbp
8000297:       48 89 e5                mov    %rsp,%rbp
800029a:       48 83 ec 10             sub    $0x10,%rsp
800029e:       c6 45 f8 01             movb   $0x1,-0x8(%rbp)
80002a2:       c7 45 fa 02 00 00 00    movl   $0x2,-0x6(%rbp)
80002a9:       48 8b 45 f8             mov    -0x8(%rbp),%rax
80002ad:       c9                      leaveq
80002ae:       c3                      retq  

> эффективно

*кхе*


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 28-Апр-22 17:08 
А че, LLVM может эффективнее генерить?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним84701 , 28-Апр-22 17:42 
> А че, LLVM может эффективнее генерить?


#include <stdio.h>
#include <stdint.h>
struct tuple {
  uint8_t val1;
  int32_t val2;
};

struct tuple ret(void) {
    struct tuple vals = {1,2};
    return vals;
}
int main(void) {
  const struct tuple t = ret();
  printf("%d %d", t.val1, t.val2);
  return 0;
}

% clang -O2 -S ret.c && more ret.s

ret:                                    # @ret
        .cfi_startproc
# %bb.0:
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register %rbp
        movabsq $8589934593, %rax       # imm = 0x200000001
        popq    %rbp
        .cfi_def_cfa %rsp, 8
        retq

...
main:                                   # @main
        .cfi_startproc
# %bb.0:
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register %rbp
        movl    $.L.str, %edi
        movl    $1, %esi
        movl    $2, %edx
        xorl    %eax, %eax
        callq   printf


gcc -O2:

ret:
.LFB1:
        .cfi_startproc
        movabsq $8589934593, %rax
        ret
        .cfi_endproc


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 28-Апр-22 18:45 
Ладно, зато QBE компилится за секунду. А вообще он обещает ~70%  оптимизаций от GCC/LLVM, с чем я готов мириться за минимализм.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 06:44 
> Ладно, зато QBE компилится за секунду. А вообще он обещает ~70%  
> оптимизаций от GCC/LLVM, с чем я готов мириться за минимализм.

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

Так что на самом деле реализация на основе llvm или gcc - была бы очень интересной идеей. А это... оно бутстрапать себя умеет? Или как его собрать то?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 29-Апр-22 16:10 
Вообще было бы интересно собрать прототипчик на libgccjit, но мне лень с ним разбираться. Если до финализации спеки никто не сделает и они запилят borrow checker, то можно потыкать.

> оно бутстрапать себя умеет? Или как его собрать то?

Там нечего бутстрапить, на с89 написан.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 18:31 
> Вообще было бы интересно собрать прототипчик на libgccjit, но мне лень с
> ним разбираться. Если до финализации спеки никто не сделает и они
> запилят borrow checker, то можно потыкать.

На мой вкус лучше б в gcc полноценно заинтегрили что-то такое, вот так было бы очень инетерсно потыкать. Может даже накодив пару фирмварей "на поблевать", посмотреть сколько грабель я в процессе соберу.

> Там нечего бутстрапить, на с89 написан.

Что-то эти .ha из https://git.sr.ht/~sircmpwn/hare/tree на C89 не очень похожи...  впрочем я уже нашел https://git.sr.ht/~sircmpwn/harec который таки на си, но таки C11...

Остался только 1 вопрос: а на C89 кто все-таки был? :)


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аниме , 30-Апр-22 04:08 
QBE, я думал мы про бекенды разговариваем

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:50 
let buffer: *[65535]u8
fmt::printfln("*x: {}", *x)!;
defer io::close(file)!;

Ваш кролик пишет задомнапирёт


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено name , 25-Апр-22 18:20 
Your bunny wrote!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 21:48 
The Matrix has you.. Follow the white rabbit.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Онаним , 25-Апр-22 22:35 
Его питон зажевал.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:47 
Выглядит как ASCII-порно

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено ыы , 25-Апр-22 16:52 
> ориентация на упрощение

...
>без ... неявного поведения

Эти вещи несовместимые.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:55 
> Дрю ДеВолт (Drew DeVault), автор […] почтового клиента Aerc […]

Первая строчка из README: «Notice: This project is unmaintained». С языком тоже побалуется ещё год и бросит как только что-то за пределами сэндбокса попытается запрогать?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:58 
https://git.sr.ht/~rjarry/aerc

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:59 
Где ты увидел это?
https://aerc-mail.org/

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:26 
https://aerc-mail.org/ -> source code -> https://git.sr.ht/~rjarry/aerc -> This is a fork of the original aerc by Drew DeVault. -> https://git.sr.ht/~sircmpwn/aerc -> Notice: This project is unmaintained.

Т.е. проект то жив, но Drew DeVault в том, что он жив, не виновен.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:37 
Вот и с языком так будет — авось кто-нибудь форкнет как Дрю наиграется. А не форкнет, так и невелика беда — всё равно кроме hello world на нём ничего написано не будет.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено aname , 25-Апр-22 16:56 
Ещё не асм, но уже не далеко осталось

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:02 
тем временем единственной заменой асма так и остается сишечка. сколько уже этих убивиц было. такое впечатление что они не понимают даже для чего нужен си, но вот для чего убивиц сей - не один доклад с клоунами и фокусами с бутылкой.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:12 
https://drewdevault.com/2021/02/21/On-the-traits-of-good-rep...

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:35 
> тем временем единственной заменой асма так и остается сишечка. сколько уже этих

Единственной заменой асма так и остается асм. Но ты всегда можешь показать MBR загрузчик или адресонезависимый код на сишечке.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:25 
C MBR так не очень получится, но это наполовину вопрос уродства x86. В более современной версии там так то UEFI уже и ESP. А на мелочи типа cortex M можно с места в карьер и на си. Даже без асмового стартапа - можно.

А адресонезависимый код - какого черта? Это все компилеры давно умеют, -fpic и сотоварищи и компилер сам его сделает. Хотя возможны нюансы, но все же.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:09 
> C MBR так не очень получится, но это наполовину вопрос уродства x86.
> В более современной версии там так то UEFI уже и ESP.

Т.е. классическое опеннетное "нельзя, но потому что уже и не очень нужно - не считается!".

> А адресонезависимый код - какого черта? Это все компилеры давно умеют, -fpic
> и сотоварищи и компилер сам его сделает. Хотя возможны нюансы, но все же.

Оно перестало требовать, как минимум, _валидную_ таблицу офсетов (global offset table) для "адресонезависимости"?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:20 
> Т.е. классическое опеннетное "нельзя, но потому что уже и не очень нужно
> - не считается!".

Типа того. Очень нишевой случай. Да и asm() в сях так то есть. Просто нестандартно :)

> Оно перестало требовать, как минимум, _валидную_ таблицу офсетов (global offset table)
> для "адресонезависимости"?

А там разные варианты есть, см параметры компилера. Но нюансов все же можно огрести.

Тем не менее PIC нужнее на PC - на мелочи типа MCU для начала нет виртуальной памяти, все с физической памятью - а значит layout довольно таки фиксированный.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:56 
> Типа того. Очень нишевой случай.
> Да и asm() в сях так то  есть. Просто нестандартно :)

MBR - классический пример. Но да, asm() - хорошая замена асму, ага ...

>> Оно перестало требовать, как минимум, _валидную_ таблицу офсетов (global offset table)
>> для "адресонезависимости"?
> А там разные варианты есть, см параметры компилера. Но нюансов все же можно огрести.

Т.е. нет (fPIC точно так же вызывает "соседнюю" функцию через got), но опять "не считается"?
Какая-то липовая замена (не говоря уж о том, что может потребоваться напрямую к регистрам или считать память по смещению) ...


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 23:52 
> MBR - классический пример.

Очень нишевой и не очень актуальный, Настолько, что в более современных платформах даже начальные загрузчики такого плана пишут на сях. На асме максимум небольшой кусочек стартапа. В опенсорсной реализации загрузчика RasPi нехорошие люди аж плюсоту воткнули. Прикинь?

> Но да, asm() - хорошая замена асму, ага

Типа того. На нем пишут "интринсики", небольшие куски типа стартапа, и проч а основная тушка на си. Чтобы не иметь удовольствие кодить на асме.

А bios редгад и винтел уже обозвали легаси. Федора даже его повыпилить хочет. Так что пример хороший но 20 лет назад смотрелся убедительнее. X86 real mode вообще откровенное легаси.

> Т.е. нет (fPIC точно так же вызывает "соседнюю" функцию через got), но
> опять "не считается"?

Там есть опции типа танцев относительно регистра, как я понял он берется за базу и относительная адресация пляшет вокруг. Но если надо на x86, не дай боже 32-битном, на нем PIC в принципе нормально не получится. И проблема в том что у проца архитектура уродская: нормальной относительной адресации нет. А на арм можно и потрепыхаться - он умеет относительно регистра. В силу симметрии даже относительно program counter. Если обратить внимание армовские компилеры даже non-pic код любят так оформлять, перемешивая с константами. Чтобы эффективнее адресовать. И там есть отдельный руль что все константы в секцию RODATA не мешая с кодом, как на х86, ценой сильной потери эффективности. Права R-X на секцию не есть какая-то проблема и обычно никто не жалуется.

> Какая-то липовая замена (не говоря уж о том, что может потребоваться напрямую
> к регистрам или считать память по смещению) ...

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

На каком-нибудь Cortex M можно вообще без этого. Правда IRQ запретить/разрешить без асмового интринсика к глобальному флагу - криво, но вообще он взлетает, одним си без ничерта. Да, на си можно написать и startup самому себе. Внутрях него допущения не совпадают со стандартом.

А так на тебе фокус:
volatile uint32_t * hw_reg = (volatile uint32_t *) 0x100500;
* hw_reg = 10;

И это, указатель менять можно, хоть по всей памяти шарься. Другое дело если там памяти нет или прав на запись нет - ну извини. Но тебе за это в тыкву и на асме так же прилетит. Именно так с железом и работают. Вот прям из сей. Оформляют регистры читабельными именами и ходят по их адресу. Вон то запишет 32 бита с числом 10 в адрес 0x100500. На чтение тоже работает, я так и читал койчей бутром - по адресу. В сях даже функции можно из таблицы кода на лету импортировать. Читаем таблицу, берем адрес, назначаем его указателю на функцию и - все, это можно вызывать как функцию с заявленным прототипом. Актуально если хочется себе нечто типа BIOS организовать, с импортом из него кода в основную прошивку например. А чтоб 2 раза тот же код не переть в бутлоадер и фирмвар например.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 01:40 
>> MBR - классический пример.
> Очень нишевой и не очень актуальный, Настолько, что в более современных платформах
> даже начальные загрузчики такого плана пишут на сях.

...
>  Так что пример хороший но 20 лет назад смотрелся убедительнее. X86 real mode вообще откровенное легаси.

Давай я напомню изначальное высказывание и подчеркну ключевое слово:
"единственной заменой асма так и _остается_ сишечка".
Я понимаю, в это трудно поверить - но это легаси было когда-то популярно.


>> Но да, asm() - хорошая замена асму, ага
> Типа того. На нем пишут "интринсики", небольшие куски типа стартапа, и проч
> а основная тушка на си. Чтобы не иметь удовольствие кодить на асме.

Это вообще-то была ирония. Asm "встроенный" (или вызываемый), как бы, не перестает быть асмом.

>> Т.е. нет (fPIC точно так же вызывает "соседнюю" функцию через got), но
>> опять "не считается"?
> Там есть опции типа танцев относительно регистра, как я понял он берется
> за базу и относительная адресация пляшет вокруг. Но если надо на
> x86, не дай боже 32-битном, на нем PIC в принципе нормально
> не получится. И проблема в том что у проца архитектура уродская:

Надеюсь, ты понимаешь, что агрументация получается в стиле "Здесь играем, здесь не играем, здесь рыбу заворачивали"?

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

Ключевое слово - code injection/shellcode. Никто не обещал "супер-широкий спектр применений" (и не выставлял как "единственную замену сям", в отличие от).

> А так на тебе фокус:
> volatile uint32_t * hw_reg = (volatile uint32_t *) 0x100500;
> * hw_reg = 10;

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

Фокус не очень - представь на секунду, что твой код не контроллирует все "от и до" (потому что в чужом процессе) и поэтому таблица не имеет фиксированного адреса времени компиляции, зато "стабильно" доступна по [REG+0x1005000].



"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 27-Апр-22 09:30 
>> А так на тебе фокус:
>> volatile uint32_t * hw_reg = (volatile uint32_t *) 0x100500;
>> * hw_reg = 10;
> ...
>> В сях даже функции можно из таблицы кода на лету импортировать. Читаем таблицу, берем адрес, назначаем его указателю на функцию
> Фокус не очень - представь на секунду, что твой код не контроллирует
> все "от и до" (потому что в чужом процессе) и поэтому
> таблица не имеет фиксированного адреса времени компиляции, зато "стабильно" доступна по
> [REG+0x1005000].

Это, кстати, решается довольно просто. Адреса в таблице переходов можно пересчитать, определив текущий классическим:

     call @f
@f:  pop eax

Что бы "уйти от ассемблера", Микрософт придумала интринсик _ReturnAddress() - то есть средствами "чистого Си" задача не решается.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 17:59 
> Давай я напомню изначальное высказывание и подчеркну ключевое слово:
> "единственной заменой асма так и _остается_ сишечка".

Тот анон немного перегнул, конечно, но общую идею уловил верно, си попер из системщины асм, практически везде, даже в аттини и пиках, где не память а сплошной склероз.

> Я понимаю, в это трудно поверить - но это легаси было когда-то популярно.

Да оно и сейчас используется, однако кодинг бутсектора сейчас наверное все же не очень массовый сценарий и почему он должен кого-то сильно волновать - черт бы его знает, а?

> Это вообще-то была ирония. Asm "встроенный" (или вызываемый), как бы, не перестает быть асмом.

Вообще да, но если обозвать это "интринсиком" и сказать что нехай это implementation предоставляет, а caller шпрехает на чистом си, типа - читерство, конечно, но - распостраненное.

> Надеюсь, ты понимаешь, что агрументация получается в стиле "Здесь играем, здесь не
> играем, здесь рыбу заворачивали"?

Я понимаю что если архитектура изначально относительную адресацию нормално не умеет, PIC на ней в принципе нормально не делается. А то что кто-то придумал костыли и хаки - достоинством архитектуры не является. Ну вот не делан x86 под PIC-код. Это одно из его архитектурных уродств, учтенных в более новых и продвинутых разработках. И лично мне проблемы 32-битного х86 уж простите, но не интересны. Из 32-битного мне CortexA/CortexM/RiscV разве что интересны. А о том х86-32 уродце я с удовольствием забуду как страшный сон.

> Ключевое слово - code injection/shellcode.

Это весьма специфичная область и вот там из-за специфичного "abi" и требований сишка... все же несколько не то, как минимум в "стартапе". Хотя если попереть на принцип, наверное можно что-то такое сделать используя техники применяемые в фирмварах и бутлоадерах. Там тоже ограниченое окружение с странными требованиями.

> Никто не обещал "супер-широкий спектр применений" (и не выставлял как "единственную
> замену сям", в отличие от).

Да и полезность для человечества этого кейса - ну, так себе, вообще-то это все активно пытаются зарубить в системах, рантаймах и проч :)

> Фокус не очень - представь на секунду, что твой код не контроллирует

Ага, он троллирует, не иначе.

> все "от и до" (потому что в чужом процессе) и поэтому
> таблица не имеет фиксированного адреса времени компиляции,

Да и хрен бы с ним. Можно и лукап сделать если знаем как. Ну там если это моя таблица я могу условиться что "лежит в адресе кратном 1024 байтам" и "в начале magic value". И тогда я ее и сканом могу найти. А если страшно еще и чексум добавить.

> зато "стабильно" доступна по [REG+0x1005000].

Если это в контексте шеллкода когда надо не порушить состояние регистров и оттуда что-то взять то да, там кусочек асма все же надо будет.

В сях вообще тугой контроль за именно ABI - все же не про него. Подразумевается что все вызовы используют одинаковый ABI, это уж ой. Нету в сях этой абстракции, да и не надо оно, даже в системщине. А как там хаксоры будут $%^ться с шелкодом интересно им. Нам же интересно как вас оттуда эффективнее послать чтобы это ресурсы не жрало :P


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 27-Апр-22 09:14 
> C MBR так не очень получится, но это наполовину вопрос уродства x86.
> В более современной версии там так то UEFI уже и ESP.

UEFI это 64 бита, где регистр стека называется RSP, а не ESP, как в IA32. При чём тут регистр стека? Точно, ни при чём, его ведь дядя настроил за более современного программиста. В каком месте оно на накопителе записано - вот это важно!


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 12:38 
>> C MBR так не очень получится, но это наполовину вопрос уродства x86.
>> В более современной версии там так то UEFI уже и ESP.
> UEFI это 64 бита, где регистр стека называется RSP, а не ESP,
> как в IA32. При чём тут регистр стека?

ESP тут, скорее всего = EFI system partition



"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 22:43 
> ESP тут, скорее всего = EFI system partition

Абсолютно. И там так то немелкое фирмваре загружает "программу" по большому счету. Без ограничений на 512 байтов. Ну и обычно это просто сишная прога собраная компилером, как и само уефи в массе своей, кроме раннего инита.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 28-Апр-22 10:07 
>> ESP тут, скорее всего = EFI system partition
> Абсолютно. И там так то немелкое фирмваре загружает "программу" по большому счету.
> Без ограничений на 512 байтов. Ну и обычно это просто сишная
> прога собраная компилером, как и само уефи в массе своей, кроме
> раннего инита.

И что самое занятное - у меня про это написано после вопроса.

"При чём тут регистр стека? Точно, ни при чём, его ведь дядя настроил за более современного программиста. В каком месте оно на накопителе записано - вот это важно!"


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 28-Апр-22 10:10 
>>> C MBR так не очень получится, но это наполовину вопрос уродства x86.
>>> В более современной версии там так то UEFI уже и ESP.
>> UEFI это 64 бита, где регистр стека называется RSP, а не ESP,
>> как в IA32. При чём тут регистр стека?
> ESP тут, скорее всего = EFI system partition

Естественно. За риторическим вопросом у меня следует ответ, который забыли процитировать.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Michael Shigorin , 02-Май-22 11:29 
> C MBR так не очень получится, но это наполовину вопрос уродства x86.
> В более современной версии там так то UEFI уже и ESP.

...что более чем вторая половина в этом аспекте: http://mjg59.dreamwidth.org/4957.html :]


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено kusb , 25-Апр-22 17:52 
как будто они не понимают. короче, убивицы всегда впередсмотрящие. на них можно положиться. их нельзя оставить ни на минуту. они стерегут пещеру каждую секунду. каждую секунду они носят еду в центр стаи. всегда на морде пишут свое полное имя и номер части. там ведь большая часть, ну, что уж такое случилось - могут и наброситься. нужно отслеживать. так ведь нельзя. они едят всегда. едят все подряд. чуть что - едят. и никогда не беспокоятся о своих правах. ну, да - это из-за сишечки, да.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 13:17 
>тем временем единственной заменой асма так и остается сишечка

Самой близкой заменой асма является ASM. Но ASM машинозависим, поэтому на роль универсального асма претендует... Встречайте, WASM!


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 27-Апр-22 09:34 
flat assembler g ничего не знает про машинные команды, их надо самому макросами описывать :)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 18:10 
> Самой близкой заменой асма является ASM. Но ASM машинозависим, поэтому на роль
> универсального асма претендует...

...сишка :) //fix


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 20:16 
>и фокусами с бутылкой

Дело BottleRuby живёт.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 16:58 
Ну реально же уже харе. Зачем нам еще один раст?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Вован , 25-Апр-22 21:29 
Это нифига не раст, раст собирается на моём железе часа два, а "это" - в районе минуты.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:13 
Для умственно отсталых пожалуйста поясните - почему вместо массовых крестиков нужно брать ушастого ?
Только одно объяснение приходит в голову - чтоб враг не догадался.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено name , 25-Апр-22 18:24 
А оно и есть для умственно отсталых. Никто кроме автора на этом писать не никогда будет. Новости уровня "сегодня васян делал это левой".

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:51 
хихи :)) Никто писать не будет - тут согласен. Слишком неочевидное "преимущество" над Сями, которые есть практически везде и шатко-валко стандартизованы.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Типолог без стажа , 27-Апр-22 00:59 
Потому, что крестики больны тем же, чем болен C:
* UB и фактической невозможностью писать корректный код
* сломанным синтаксисом который сложно парсить (и даже ещё хуже чем C)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:20 
Харе языки изобретать! Го на асм!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено OpenEcho , 25-Апр-22 23:02 
go tool objdump -s main.main main

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено achtosluchilos , 25-Апр-22 17:21 
Синтаксис страшный. Имхо у других еще "не взлетевших" языков убийц-сишки типа zig синтаксис получше.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 17:31 
> Синтаксис страшный.

Чем страшный-то? Вполне лаконичный, разумно использующий "суффиксы" вместо наворачивания тонн ключевых слов.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Старший аноним , 25-Апр-22 17:54 
Что только люде не делают, чтобы не изучайть по-нормальному божественный язык С (которому только и надо что отказаться от препроцессора и некоторых других небольшого числа неоднозначных возможностей, как это сделано в Misra C).

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:54 
Именно "божественность" языка С является одной из причин, по которой люди создают новые языки.
Поработали с С, перекрестились, и решили что надо что-то с этим делать.  

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:58 
> Что только люде не делают, чтобы не изучайть по-нормальному божественный язык С
> (которому только и надо что отказаться от препроцессора и некоторых других
> небольшого числа неоднозначных возможностей, как это сделано в Misra C).

Ну, понимаешь, у божества так то тоже свои приколы есть.
1) А кто такое int и сколько в нем битов? А, получив vuln в репу в чужом коде узнаем? Особенно если у вон той платформы проц не х86? Вон на абдурине int может и 16 битов быть. А чо, стандарт позволяет. Сколько кода при этом сглючит? Чуть менее чем весть?
2) За integer promition кого-то надо было бы немного убить. Потому что иногда делает крайне контринтуитивные вещи. А если ты думаешь что крут, попробуй -Wconversion в гцц и шланге, узнаешь много нового о своем коде и проблемах в нем.
3) Какой у enum вообще целочисленный тип? Ах, unspecified? Отлично. Ох, #define имеет свое мнение об int'ах, отличное от? А (1 << 31) может сделать не то о чем вы подумали? Ага, 1 и 1U две большие разницы. Удобно, б...
4) Пункт 2) ведет к совершенно идиотским выходкам программистов, не желающих греть мозги этим факапом. И вот уже прогер пишет ... array[index]... - и оказывается что index мало того что int, так еще в функцию снаружи caller'ом отдается, и это вообще ни верифицируется толком, зато когда caller делает что-то странное, оно такие интересные адреса потом дереференсит...
5) Язык местами недостаточно аннотирован для статического анализа. Операции с указателями вообще проверкам плохо поддаются. Иногда это неизбежность но 90% случаев можно заткнуть. Прошареные сишники делают эрзац этого как умеют, но почему бы не сделать это нормально?
6) Макросня в сях может вас поиметь. Нет, она реально может вас поиметь. Поэтому макросы у прошареных сишников состоят из скобок чуть менее чем полностью. А кто хочет элегантный код, получает потом вулны в репу.
7) Ну, блин, ок, как вы эффективно возвращаете несколько значений из функции? А чтоб это намерение еще и анализерам нормально задекларить? Не, вон тот void func (ptr* param) это нихрена не аннотация чего вы хотели сделать. Он вообще void возвращает. И errno так то тоже - хак.

А MISRA так то да, но некоторые вещи там довольно забавные или спорные. Есть еще с полдюжины стандартов, от CERT до Embedded C. В силу условности стандартов это компилеры не чекают как есть, разве что внешние тулы.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Старший аноним , 25-Апр-22 19:36 
1. Понимаешь, на форумах надо обращаться друг к другу на Вы, даже если ты щколота голимая, а я почесываю свои седые яйцы и учу внуков арифметике.

2. Остальное Ты перечислил более-менее вразуметельно, но не совсем полно - но это и не задача форума здесь не комитет по языку С. У языка C имеются родовые травмы и приобретенные иииотизмы, но они вполне устранимы. И для этого не надо выдумывать какой-то новый синтаксис или язык. Достаточно пересмотреть язык С и убрать из него все механизмы потенциальных багов и дыр.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:08 
> 1. Понимаешь, на форумах надо обращаться друг к другу на Вы, даже
> если ты щколота голимая, а я почесываю свои седые яйцы и
> учу внуков арифметике.

А в фидохе например (НеШколота про него вообше слышала?) обращение на вы было показательным хамством. И тут можно и не угадать. Так что предлагается на этом не зацикливаться.

> 2. Остальное Ты перечислил более-менее вразуметельно, но не совсем полно - но
> это и не задача форума здесь не комитет по языку С.

А комитет по языку си ручник отпускает медленно и неохотно. И небольшого пендаля им не лишне для ускорения. Чем вон те и занимаются.

> У языка C имеются родовые травмы и приобретенные иииотизмы, но они
> вполне устранимы. И для этого не надо выдумывать какой-то новый синтаксис
> или язык. Достаточно пересмотреть язык С и убрать из него все
> механизмы потенциальных багов и дыр.

Проблема в том что он такой с существующим кодом будет не особо совместим, а раз пошла такая пьянка, ну вон они и навешивают еще кучу всего. Некоторое даже не так уж глупо, типа borrow checker'а или compile-time вычислений. На вот именно чистых сях можно изобразить какое-то отдаленное половинчатое приближение к этому, не более.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Без аргументов , 26-Апр-22 00:57 
Сразу за 1 пункт: ардуинщиков не прилетай, это уровень лего игрушек, которые только копируют код. Люди используют явные uint32, где это нужно и int там, где точно влезет, чтобы, высокоабстрактный ты наш, код работал эффективнее по размерам регистра! В особых случаях, можно сделать такую штуку как ifdef индивидуально для платформы, которой в ваших игрушечках нет.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 01:17 
> Сразу за 1 пункт: ардуинщиков не прилетай, это уровень лего игрушек,

Хорошо, пусть это будет чистый "AVR-GCC" без либ абдурины и суровый олдскульный эмбедер. Можно подумать это как-то влияет на свойства платформы и компилера, они ж те же самые.

> которые только копируют код. Люди используют явные uint32, где это нужно и
> int там, где точно влезет, чтобы, высокоабстрактный ты наш, код работал
> эффективнее по размерам регистра!

Ага, только на AMD64 у меня регистры 64 бита а sizeof(int) почему-то 4. Так что теория про по размеру регистра тоже ну так себе весьма.

И попытка вот так оптимизнуть код который писали не вы чревата жирным факапом в математике, мало кто из прогеров рассматривает вариант что int может быть 16 битов. Хоть оно ничему не противоречит и по стандарту ОК.

> В особых случаях, можно сделать такую штуку как ifdef индивидуально для платформы,
> которой в ваших игрушечках нет.

Больше уродского нечитаемого кода богу уродского нечитаемого кода. Когда сильно надо - могут и отдельную имплементацию так то сделать, хоть на голом асме, но так то плюс сей - портабельность, и ifdef несколько убивает этот плюс. Например, придется майнтайнить _ДВЕ_ реализации и держать их в синхронизме. Поле для багов если вон тот алгоритм решено поменять. Можно в одном месте сменить а в другом нет. Или логика разная выйдет. А потом сильно дальше оно отъедет. Что хуже, комбинаторный взрыв очень быстро приведет к тому что все варианты комбо проверить не получится и где-то оно все же развалится.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Cooler , 26-Апр-22 10:24 
1. int был в С с самого рождения. Так и остаётся до сих пор (ну не выкидывать же). В С++ для обхода этой неопределенности добавили intXX_t, int_leastXX_t, int_fastXX_t. Скорее смысл int - оптимальный тип для целочисленных вычислений со знаком (для беззнаковых соответственно unsigned int).
2. Промоушен до int, как раз следует из того, что в int быстрее всего будут выполняться арифметические операции. Хочется больше контроля над диапазоном арифметики, надо использовать, например, int_fastXX_t.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 21:04 
Ващет в сях, начиная с еще аж 99-й версии, есть uintXX_t из <stdint.h>. Они же и в плюсах юзабельны. А майкрософтовский кодер юзающий плюсоту только за то что в msvc реализация си хтонически убога - совсем не палится :)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Cooler , 02-Май-22 00:50 
Да, сорян! Действительно типы intXX_t, int_leastXX_t и int_fastXX_t появились в C, начиная с C99. Я начинал программировать сразу на C++, поэтому этот момент как-то упустил. Микрософт здесь не причём.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Минона , 25-Апр-22 19:09 
> Misra C

Почему не SPARK?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Старший аноним , 25-Апр-22 19:31 
Потому что SPARK из другой оперы.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Минона , 25-Апр-22 19:47 
Из какой другой?
Опера та же - написание правильных программ.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:14 
В MISRA не используется препроцессор? Не знал. А как там обрабатывают #include?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Старший аноним , 25-Апр-22 19:31 
Про препроцессор написал я - это лично мое мнение. В MISRA,FRAMA и т.д. имеются другие полезные правила, делающие С более безопасным.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 20:17 
>которому только и надо что отказаться от препроцессора

Ты не старший аноним, ты личинка растомана.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:29 
> полное доверие к действиям программиста

некоторых жизнь ничему не учит.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 25-Апр-22 18:37 
Что ж они не додумаются парсить по пробелам?
Эти бесконечные {{{}}}};;;;;; больше путают чем помогают.
Ну и амперсанды с восклицательными знаками превращают все в кашу.

Как и с растом не вижу смысла менять один вырвиглазный синтаксис на другой.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:25 
> Что ж они не додумаются парсить по пробелам?

То что в результате тапнешь пару раз пробел или бэкспейс случайно, засэйвишь... ухтыблин?!?

А с () {} ты таки случайно логику не ломанешь. Если стереть скобку или лишнюю влепить, COMPILE ERROR и сразу понятно что что-то пошло не так.

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


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено _kp , 25-Апр-22 21:42 
О пробелах.

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

Как перенавороченный скриптовый язык, Питон удобен, и прост, но когда на нем делают что большое, то поддержка живет до увольнения автора. Не то что б никто больше разобраться не может, могут, но ответствеено гаррантировать, и тем более серьёзному заказчику - нет.

Пробелы и отступы - топку.
Нормальные языки форматируются в IDE под любые желания без потери работоспособности.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 25-Апр-22 22:49 
>[оверквотинг удален]
> даже не трехъэтажным кодом пахнет, а из за многгсловности это почти
> всем лень.
> А, обработка ошибок, это не прикрыть програмным гарниром исключения, и выплеснуть в
> лог, при падении ПО.
> Пользователю не нужно знать почему ПО упало, чем подавилось при разборе данных,
> нужно стабильное ПО, устойчивое у намеренным и случайным ошибкам.
> Как перенавороченный скриптовый язык, Питон удобен, и прост, но когда на нем
> делают что большое, то поддержка живет до увольнения автора. Не то
> что б никто больше разобраться не может, могут, но ответствеено гаррантировать,
> и тем более серьёзному заказчику - нет.

Сам придумал лошадь, сам притянул ее за уши и прилепил хвост, в итоге заявляешь что слон посудной лавке не подходит. Ни о питоне, ни об обработке ошибок, ни тем более что нужно пользователю я не говорил и к теме не относится.

> Нормальные языки форматируются в IDE под любые желания без потери работоспособности.

Отлично, тогда для тебя не составит никаких проблем заменить в IDE пробелы на скобки.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено _kp , 25-Апр-22 23:19 
> Сам придумал лошадь, сам притянул ее за уши и прилепил хвост, в
> итоге заявляешь что слон посудной лавке не подходит.

Я душу лошадей, а не придумываю.
Хотите пример говнокода на Питоне?
ПО для 3D принтеров - Cura.
Ладно хоть исходник с прогой идет и читаем.
А то, ПО в бинарниках не всякое излечимо.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 25-Апр-22 23:24 
>> Сам придумал лошадь, сам притянул ее за уши и прилепил хвост, в
>> итоге заявляешь что слон посудной лавке не подходит.
> Я душу лошадей, а не придумываю.
> Хотите пример говнокода на Питоне?
> ПО для 3D принтеров - Cura.
> Ладно хоть исходник с прогой идет и читаем.
> А то, ПО в бинарниках не всякое излечимо.

Ты больной? Зачем ты предлагаешь мне посмотреть на !@#$% на питоне? Почему ты вообще стал про питон писать?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:20 
> даже не трехъэтажным кодом пахнет, а из за многгсловности это почти всем лень.

На питоне пишут чтобы как можно быстрее от этого отделаться. Какая к черту обработка если они свое суперценное время экономят? Слить кал клиенту, забыть как стращный сон, следующий пшел, i++.

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

Прикольно так, универсальные рецепты для всего. А что если выплескивать некуда? Мало ли, фирмвара какая, у нее в лучшем случае уарт дебажный и в эксплуатационном режиме его никто не читает.

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

С этим никто особо и не спорил, кроме вебмакакеров которым порой топор в экран втыкают за хорошую работу их кода благодарные пользователи.

> Как перенавороченный скриптовый язык, Питон удобен, и прост, но когда на нем
> делают что большое, то поддержка живет до увольнения автора.

Как показал пример гвидо :)) иногда автор может заколебаться и самоуволиться сам, ниасилив разрулить самоорганизованый гадюшник.

> Пробелы и отступы - топку.

Во во. Это из той же области что отсутствие типов в JS. Круто писать мелкую хомпагу. А большой проект начинает делать хню, непонятно что, где и почему. При том типизированный яп поймал бы левак сразу, а тут, вот, работает себе в ус не дуя - делает какой-то бред. Где-то сильно дальше логика отъезжает - но понять что и где не так то просто. Это ж не ошибки, все действия формально валидны. А то что прогер имел в виду не это - яп не дал ему нормальные средства аннотации что он хотел, и кто его знает что там задумано было.

> Нормальные языки форматируются в IDE под любые желания без потери работоспособности.

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


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 25-Апр-22 22:38 
>> Что ж они не додумаются парсить по пробелам?
> То что в результате тапнешь пару раз пробел или бэкспейс случайно, засэйвишь...
> ухтыблин?!?
> А с () {} ты таки случайно логику не ломанешь. Если стереть
> скобку или лишнюю влепить, COMPILE ERROR и сразу понятно что что-то
> пошло не так.

Точно также как и с пробелами. Никакой разницы. Только со скобками ты расставляешь {} для компилятора И пробелы для себя, а с пробелами сразу для обоих. И не мучаешь ни себя, ни компилятор лишней когнитивной нагрузкой.

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

Логическая ловушка не засчитана. Парсинг никак не связан с особенностями интерпретатора и компилятора. Ничего не мешает использовать пробелы вместо скобок. Скобки нужны в исключительных случаях (и то не факт), а скобки по умолчанию просто мусор дублирующий пробелы.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:40 
> Точно также как и с пробелами. Никакой разницы. Только со скобками ты
> расставляешь {} для компилятора

Я ими маркирую границы логических и структурных блоков, как правило имеющих какой-то самодостаточный смысл. Если эти границы нарушены - я знаю что где-то вышел нетривиальный факап и это место в коде точно требует усиленного внимания и проверки.

> И пробелы для себя, а с пробелами сразу для обоих. И не мучаешь ни себя,
> ни компилятор лишней когнитивной нагрузкой.

К сожалению этот способ маркировки блока кода не поймает вышеупомянутые факапы. А вот по части скобок компилеры довольно привиредливы: должно совпадать, 1 в 1. Лишняя или недостающая скобка фатальны и рушат сборку. Случайно продолбаться так чтобы парность сохранилась - маловероятно. А с пробелами достаточно selection покилять или пробел необдумано тапнуть.

> Логическая ловушка не засчитана. Парсинг никак не связан с особенностями интерпретатора
> и компилятора. Ничего не мешает использовать пробелы вместо скобок. Скобки нужны
> в исключительных случаях (и то не факт), а скобки по умолчанию
> просто мусор дублирующий пробелы.

Системщикам просто не нравятся дурные факапы на ровном месте, они предпочитают компилер который будет ловить явные продолбы. Туда же и статические типы. Да, аннотирование намерений требует добавочно попечатать. Зато не требует потом пытаться отдебажить хрен знает что неизвестно где лишний раз.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 26-Апр-22 01:29 
> Я ими маркирую границы логических и структурных блоков, как правило имеющих какой-то
> самодостаточный смысл. Если эти границы нарушены - я знаю что где-то
> вышел нетривиальный факап и это место в коде точно требует усиленного
> внимания и проверки.

Ты также можешь пробелами и переносами маркировать логические и структурные блоки и без лишних отвлекающих символов.

> К сожалению этот способ маркировки блока кода не поймает вышеупомянутые факапы. А
> вот по части скобок компилеры довольно привиредливы: должно совпадать, 1 в
> 1. Лишняя или недостающая скобка фатальны и рушат сборку. Случайно продолбаться
> так чтобы парность сохранилась - маловероятно. А с пробелами достаточно selection
> покилять или пробел необдумано тапнуть.
> Системщикам просто не нравятся дурные факапы на ровном месте, они предпочитают компилер
> который будет ловить явные продолбы. Туда же и статические типы. Да,
> аннотирование намерений требует добавочно попечатать. Зато не требует потом пытаться отдебажить
> хрен знает что неизвестно где лишний раз.

Ты сначала топишь за тяпляпность типа сделать лишний пробел это запросто, нормально и должно быть обязательно прощено. Но тут же топишь за явное аннотирование, фатальность при отсутствии символа и ранний дебаг.
Причем пробелы это второй вариант (подталкивает к аккуратности)(хотя ты конечно подразумевал наоборот). А скобки это первый (подталкивает к разгильдяйству).
Но даже если смотреть с позиции разгильдяя, то 4 пробела все равно лучше чем парные кавычки. Парные кавычки вполне возможно (хотя и сложно) нажать случайно (4 раза нажать пробел ИМХО сложнее, а нажать по 4 раза на каждой строчке в блоке еще тяжелее), да и расположение пробела на большинстве клавиатур существенно удобнее чем расположение клавиш кавычек (а в некоторых их и нет в первом слое), обычно не видно где кавычки начинаются и где кончаются (и соответственно какой блок ты читаешь, в отличии от пробелов), нередко их дополняют клавиатуры и IDE(что там про явное аннотирование?), новички часто бесятся из-за них и начинают пихать их как попало лишь бы скомпилилось, опять же в разных стилях кавычки ставятся по-разному (в конце или на следующей строке) что сильно влияет на читаемость в разных проектах, в конце концов кавычки занимают лишние символы и строки, что опять же влияет сколько кода ты можешь просмотреть без прокрутки. Зачем все эти проблемы? Они правда тебе нужны?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 18:32 
> Ты также можешь пробелами и переносами маркировать логические и структурные блоки и
> без лишних отвлекающих символов.

Так оно не ловит мелкие факапы когда намерения и то что есть по факту разошлись. Ну, мало ли, хотел я стереть вон то, но было выделение и стерлось не то что я планировал. А тут меня что-то отвлекло, например, и это было прошляплено.

В curly bracket я при нарушении границ блоков поимею компил егор и пойду детально разбираться что и почему у меня отъехало. Зная что тут совершенно точно какая-то лажа и надо детально все проверить. А в вон том случае - логика тихо отедет. Без всяких егоров. А потом, когда все уже собрано, запущено и типа-работает - я может быть узнаю что оно фигню творит. Если не повезет, в редкой ветке, узнаю через годик, когда оно внезапно обгадится - в ситуации когда я даже не знаю как вычислить где оно такое красивое.

А сами по себе пробелы за меня так то большая часть прогерских редакторов сами влепит, мне достаточно как раз намерения сделать блок скобками отметить - и все. Форматирование даже несложные редакторы так то могут. Более того - в curly bracket так то и полный reflow кода можно, автоматикой, попробуйте так с вашими пробелами ваще...

> Ты сначала топишь за тяпляпность типа сделать лишний пробел это запросто, нормально
> и должно быть обязательно прощено. Но тут же топишь за явное
> аннотирование, фатальность при отсутствии символа и ранний дебаг.

Я топлю за то чтобы ловить максимум факапов в компилтайме/аналитике, чтобы это меня не имело в рантайме.

> Причем пробелы это второй вариант (подталкивает к аккуратности)(хотя ты конечно подразумевал
> наоборот).

Есть antibug технологии, помогающие вычислить явно кривые действия человека. Пробелы таковыми не являются, а скобки - вполне.

> А скобки это первый (подталкивает к разгильдяйству).

С какого бы раза? Они лишь помогают поймать явную лажу если она все же вышла. И так то код на питоне дохнет с жутким трейсом чуть менее чем на любой пшик, не им про разгильдяйство вещать. Ладно б там хрустики вылезли но у них curly bracket.

> Но даже если смотреть с позиции разгильдяя, то 4 пробела все равно
> лучше чем парные кавычки.

Намного хуже - при редактировании напортачить проще. А вот парные элементы случайно сделать корректно - довольно маловероятно. А какого бы черта теорвер не должен быть в мою пользу?

> Они правда тебе нужны?

Мне нравится визуальное выделение блоков и то что автоматика проверит парность элементов, делая хотя-бы минимальный чек что это хотя-бы похоже на задеклареное намерение и что оно не было случайно порушено. ИМХО делать логику пробелами - неудачный антипаттерн с точки зрения отлова явных багов.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 27-Апр-22 20:12 
> Так оно не ловит мелкие факапы когда намерения и то что есть по факту разошлись. Ну, мало ли, хотел я стереть вон то, но было выделение и стерлось не то что я планировал. А тут меня что-то отвлекло, например, и это было прошляплено.

Почему вы упорно считаете что лишний/удаленный пробел это нормально? Почему вы считаете что плохо отформатированный код должен запускаться?
Ну разошлись ваши намерения и ваш тремор рук, получите ошибку, сразу ее исправите. Даже лучше чем со скобками где этот пробел найдете уже при проверке линтером.

> В curly bracket я при нарушении границ блоков поимею компил егор и пойду детально разбираться что и почему у меня отъехало.

С пробелами тоже самое, только еще строже.

> Зная что тут совершенно точно какая-то лажа и надо детально все проверить. А в вон том случае - логика тихо отедет. Без всяких егоров. А потом, когда все уже собрано, запущено и типа-работает - я может быть узнаю что оно фигню творит. Если не повезет, в редкой ветке, узнаю через годик, когда оно внезапно обгадится - в ситуации когда я даже не знаю как вычислить где оно такое красивое.

Не, это так не работает. Во-первых, вы не можете где угодно указать блок, как не можете где угодно поставить фигурные скобки. Просто получите ошибку как и со скобками. Во-вторых, вы сами обозначаете разделитель. Если вы пишите большой скрипт, то ставите 4 пробела. Если вы случайно поставите 4(!) пробела, то вы также случайно сможете и кавычки поставить. Если вы сделаете 1-3 или 5+ пробелов то получите ошибку. В-третьих, если вы пишите большой серьезный код, то добавьте линтер, он вас еще и новую строку заставит по стандарту ставить после блока. Так что шансы ошибиться и добавить/убавить пробел стремятся к нулю. А шанс запутаться в {{{{}}}}} (парные? уже посчитали? с пробелами это сразу видно) и вовсе нулевой.

> > А сами по себе пробелы за меня так то большая часть прогерских редакторов сами влепит, мне достаточно как раз намерения сделать блок скобками отметить - и все. Форматирование даже несложные редакторы так то могут.

Тем более. Зачем вам в таком случае лишние символы в виде скобок?

> Более того - в curly bracket так то и полный reflow кода можно, автоматикой, попробуйте так с вашими пробелами ваще...

За вас редакторы итак эти пробелы ставят, почему же вы считаете что в других случаях автоматика не справится? Это абсолютно такой же разделитель как скобки, автоматика работает точно также.

> Я топлю за то чтобы ловить максимум факапов в компилтайме/аналитике, чтобы это меня не имело в рантайме.

Тогда вы должны топить за пробелы, потому что они именно это и делают.

> Есть antibug технологии, помогающие вычислить явно кривые действия человека. Пробелы таковыми не являются, а скобки - вполне.

Как раз наоборот. Если делать по стандартам с автоформатированием то и то и другое прекрасно справляется, только пробелы чище, компактнее, понятнее. Но если делать без форматирования то пробелы не позволяют вольностей, а скобки позволяют. Опять же пробелы ставятся однозначно, со скобками как миниум есть 2 распространенных стандарта как ставить скобки. Даже если вы договорились ставить скобки на той же строке, не факт что в проекте который вы используете, не делают по-другому.

> С какого бы раза? Они лишь помогают поймать явную лажу если она все же вышла.

Скобки: Лишний пробел поставил. Лажа, форматирование страдает. Все собирается и работает, отправляется в продакшн.
Пробелы: Лишний пробел поставил. Лажа, ничего не собирается, иди дорабатывай.

Скобки: Нарушил форматирование, указал скобки в конце строки через тучу пробелов, ревьювер не заметивший горизонтальную прокрутку этого не заметил (что есть еще пробелы не видит), бэкдор внедрен (антибаг технологии, ага)
Пробелы: Такое в принципе невозможно, потому что разделитель однозначно определен и в начале строки.

> И так то код на питоне дохнет с жутким трейсом чуть менее чем на любой пшик, не им про разгильдяйство вещать. Ладно б там хрустики вылезли но у них curly bracket.

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

> Намного хуже - при редактировании напортачить проще. А вот парные элементы случайно сделать корректно - довольно маловероятно. А какого бы черта теорвер не должен быть в мою пользу?

Ну и определенное число пробелов наклепать в нужном месте тоже весьма маловероятно.

> Мне нравится визуальное выделение блоков

Вы визуально выделяете блоки не скобками, а пробелами, даже если используете скобки.
> и то что автоматика проверит парность элементов, делая хотя-бы минимальный чек что это хотя-бы похоже на задеклареное намерение и что оно не было случайно порушено.

Вы же выше сами же пишите что автоматика же эту парность и делает. То есть ваши намерения с автоподстановкой скобок это нажать '{'(один случайный символ). Без автоподстановки это два символа '{' '}' в разных местах(фактически 3 случайных символа с учетом навигации). С пробелами без автоподстановки вам нужно сделать 4 случайных символа, а то и больше.

> ИМХО делать логику пробелами - неудачный антипаттерн с точки зрения отлова явных багов.

ИМХО разделять код на логический и визуальный - неудачный антипаттерн с точки зрения отлова явных багов


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 22:26 
> Почему вы упорно считаете что лишний/удаленный пробел это нормально?

Потому что людям свойственно ошибаться и вон то - легко посадить при кодинге случайно, не имея на самом деле в виду. Явная маркировка начала-конца логического блока позволяет ловить немало дурных случаев такого плана, когда оно вдруг бай и не совпадает. Ну как, если например я пробел тапнул на выделении - и там даже улетел какой-то кусок блока, шансы что в выделении идеально убьется по парным скобкам и ошибки не будет - мизерный. Значит я буду тут же послан компилером, пойму что все испортил и пойду разбираться.

> Почему вы считаете что плохо отформатированный код должен запускаться?

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

> Ну разошлись ваши намерения и ваш тремор рук, получите ошибку, сразу ее
> исправите. Даже лучше чем со скобками где этот пробел найдете уже
> при проверке линтером.

А при чем тут тремор рук, если в редакторе селекшн был, я про него забыл и что-то тапнул? Ну и получил что-то unspecified вместо того чего на самом деле хотел. И таки очень кстати если автоматика поймает подозрительное место и сообщит что я сделал фигню.

То-есть это не отменяет нужды быть внимательным самому. Но компьютер должен помогать человеку, а не только п-лями в стойло его строить.

Смотри, в сях например указатели это кусок проблем если быть невнимательным. И там проблемы в том числе и с анонсом намерений дла анализа/компилера. Но кроме минусов есть плюсы. Это дико эффективная технология. Избегающая лишних копирований - что актуально, особенно на больших объемах данных или если скорость критична. Поэтому tradeoff: мы теряем в надежности, но получаем быстрый компактный код. А у тебя - не tradeoff. Оно только делает мозг, ставит в стойло, но ничего не привносит. Значит нафиг.

А что до печати - не, в програмерских эдиторах лишних кнопок жать может и не требоваться, при намерении слепить блок он может и автоматом с парой скобок и потребным форматированием (например вычисленным по позиции 1-й скобки) быть сделан. Так что это проблема для юзеров ноутпада, которые все-равно много не напрогают. Хотя-бы за отсутствием подсветки синтаксиса.

> С пробелами тоже самое, только еще строже.

При том эта строгость ничего кроме эстетики не привносит. Я не вебмакака чтобы в стойло становиться ради декоративно-эстетических целей. Если там будет что-то системное, крутое, можно подумать.

> Не, это так не работает.

Ну, вообще, это по моему опыту. Если меня заворачивают с скобкой - я таки где-то напортачил и скорее всего логика поломана и надо детально все перепроверять.

> Во-первых, вы не можете где угодно указать блок,

Вообще-то в сях - можно почти где угодно, так что при желании независимые логические блоки можно явно хайлайтить чуть активнее чем это обычно делают. Это не значит что это всегда нужно делать. Оформлять блок имеет смысл там где ... уместен логически выделенный блок, более-менее самодостаточный. Но если хочется - можно и по приколу почти везде делать. Но лучше не выпендриваться, код должен быть понятен другим, все что сверх того - нафиг надо.

> как не можете где угодно поставить фигурные скобки. Просто получите
> ошибку как и со скобками.

Вы вообще на сях программировали?

> Во-вторых, вы сами обозначаете разделитель. Если
> вы пишите большой скрипт, то ставите 4 пробела.

Я стараюсь не писать большие скрипты, предпочитая *никсвэйный подход. То есть небольшие эффективные качественные программы, при нужде объединяемые небольшими скриптами по месту. Модуляризация. Конечно это не всегда катит. Но мудрость в идеях древних есть. В отличие от вебмакак и питоняш, от которых если мне что и надо - чтобы они перестали замусоривать поиск своими поделиями.

> Если вы случайно поставите 4(!) пробела, то вы также случайно сможете и кавычки поставить.

Так если я левые кавычки/скобки влеплю - буду послан. Их надо именно парно вкатить/стереть, и вероятность нечаянно сделать в виде когда оно будет сожрано как что-то валидное довольно низкая. В этом весь пойнт и состоит.

> Если вы сделаете 1-3 или 5+ пробелов то получите ошибку.

Обычно прогерские редакторы втыкают сразу эн пробелов, для разгона эффективности прогера, так что ну так себе аргумент. Не буду же я 4 раза на уровень форматирования пробел сам жать, право? Я что, обезьяна?

> что шансы ошибиться и добавить/убавить пробел стремятся к нулю. А шанс
> запутаться в {{{{}}}}} (парные? уже посчитали? с пробелами это сразу видно)

1) Ну ващет за мена это компилер посчитает.
2) Лично мне нравится примерно так:


{
    abcd();
    cdef();
    {
        efgh();
        jklm();
    }
}

3) Если мне чей-то синтаксис не нравится, я могу ему reflow в автоматическом режиме сделать при желании. И от дурно поставленых скобок голова будет болеть у компилера или парсера.

> Тем более. Зачем вам в таком случае лишние символы в виде скобок?

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

> За вас редакторы итак эти пробелы ставят, почему же вы считаете что
> в других случаях автоматика не справится?

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

> Это абсолютно такой же разделитель как скобки, автоматика работает точно также.

Только вот требования попарности нет, а пробелы встречаются при нормальном курсе событий, поэтому сломать это нечаянно - куда проще.

> Тогда вы должны топить за пробелы, потому что они именно это и делают.

Вообще, получить warning при подозрительном форматировании кода - почему бы и нет? На самом деле нормальный фичреквест.

> Как раз наоборот. Если делать по стандартам с автоформатированием то и то
> и другое прекрасно справляется, только пробелы чище, компактнее, понятнее.

Для меня выделение логических блоков отдельными символами как-то лучше схватывается. Алсо хайлайт парных скобок - штука в редакторах весьма типовая, мне так нравится.

> Но если делать без форматирования то пробелы не позволяют вольностей, а скобки позволяют.

Это чисто декоративная проблема, в то время как слом логики при ошибке редактирования становится уже технической проблемой. Для меня логическая корректность кода приоритетнее эстетики, хотя, конечно, красивый код имеет больше предпосылок к тому чтобы его правильно поняли.

> Опять же пробелы ставятся однозначно, со скобками как миниум есть 2
> распространенных стандарта как ставить скобки.

А вон ту задачу я вообще могу более 9000 способов решить. Это, типа, плохо?

> на той же строке, не факт что в проекте который вы используете, не делают по-другому.

Я могу с этим жить. И если им так больше нравится - ну, я не парюсь особо, прогерские редакторы все равно культурно это все сделают.

> Скобки: Лишний пробел поставил. Лажа, форматирование страдает.

Это чисто эстетическая проблема, сама по себе к факапам не ведет.

> Все собирается и работает, отправляется в продакшн.

А может и не отправляется. Кому сильно надо могут ревью и анализаторы развесить.

> Пробелы: Лишний пробел поставил. Лажа, ничего не собирается, иди дорабатывай.

Но отъезд логики на ошибке редактирования оно не поймает, от оригинала намерений ничего не осталось, и в целом удачи понять как оно было задумано. Сломать так curly bracket все же сложно и маловероятно.

> не заметивший горизонтальную прокрутку этого не заметил (что есть еще пробелы
> не видит), бэкдор внедрен (антибаг технологии, ага)

Ващет гнать такого ревьюера надо. Гит на такие вещи например дико кислотные цвета рисует в консоли в git log -p и прочих git diff. Я не знаю как это можно не увидеть, от этого глаза сразу вытекают.

Более того - если у ревьюера не вызвал вопрос пустой блок/строки - это как минимум странно. А, да, я еще так то код немного ревьюю другим. Это для тебя ревьюеры божества, ставящие таких как ты в стойло. А для меня одни из равных.

> Пробелы: Такое в принципе невозможно, потому что разделитель однозначно определен и в
> начале строки.

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

Алсо, в минимально серьезном процессе будет автоматический чекер рубящий просто по критерию длины строки. А потому что никто не нанимался 8К мониторы всем вообще кодерам на планете покупать только потому что у одного тела видите ли 250 символов мелким шрифтом на экран лезет.

> Опять попытка увести разговор в сторону. У питонистов трейс на любой пшик
> не из-за пробелов. Но мы сейчас про пробелы говорим, а не
> про методику обработки исключения и питоновскую философию.

У питонистов вообще статический анализ в зачаточном состоянии. И обработка ошибок. Поэтому вообще все пихонскрипты рассыпались при малейшем тыкании палочкой. А зачастую и сами по себе как апгрейдер убунты, тот позорный случай когда руками проще и надежнее чем таким скриптом.

> Ну и определенное число пробелов наклепать в нужном месте тоже весьма маловероятно.

Чего бы? А в прогерском редакторе скорее 1 кнопой, не буду же я 4 пробела мануально, право?

> Вы визуально выделяете блоки не скобками, а пробелами, даже если используете скобки.

Скобки очень хорошо отделяют и подчеркивают это. И жестко маркируют задуманные границы блока. Даже плюс-минус пара пробелов - все еще позволяет восстановить задуманный вид кода и я все еще вижу именно ту логику которую задумал кодер. А вот грохнув пробелы я уже и логику убиваю. Это некая избыточность - но она обеспечивает дополнительную надежность, сменить логику придется явно. А нечаянно - скорее всего компил егор.

> Вы же выше сами же пишите что автоматика же эту парность и делает.

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

> ИМХО разделять код на логический и визуальный - неудачный антипаттерн с точки
> зрения отлова явных багов

ИМХО дублирование декларации намерений делает это устойчивее к ошибкам редактирования как раз. И чаще позволяет восстановить задумку испорченного кода как раз. Ну как, блочные операции случайно сделать в правильном виде - черт знает, у меня так не получалось. Чтобы код попал в другой блок с другим уровнем вложенности другого блока надо очень кастомное действо, деликатно выбрав правильные границы. Иначе компил егор.

Вообще идея что я могу менять принадлежность кода тому или иному блоку/уровню вложенности пробелом - не кажется мне удачной, слишком просто порушить незапланировано, а бонусом намерения автора полностью утрачены и разве что в git или бэкап идти смотреть что там было, если, конечно, это все есть.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 28-Апр-22 03:36 
> Потому что людям свойственно ошибаться и вон то - легко посадить при
> кодинге случайно, не имея на самом деле в виду. Явная маркировка
> начала-конца логического блока позволяет ловить немало дурных случаев такого плана, когда
> оно вдруг бай и не совпадает. Ну как, если например я
> пробел тапнул на выделении - и там даже улетел какой-то кусок
> блока, шансы что в выделении идеально убьется по парным скобкам и
> ошибки не будет - мизерный. Значит я буду тут же послан
> компилером, пойму что все испортил и пойду разбираться.

Похоже ты сектант. То ты топишь за акууратность и еррор, то "случайну уберу пробел, компиль без ошибок". Походу тебе ни то ни другое не надо, лишь бы "пробелов не было" и находу пытаешься придумать вымышленные проблемы, которых (еще раз напомню) нет.

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

Кидай ошибку при форматировании и нет никаких проблем с пробелами. Я уже в очередной раз тебе об этом пишу, но ты упорно не читаешь.

> А при чем тут тремор рук, если в редакторе селекшн был, я
> про него забыл и что-то тапнул? Ну и получил что-то unspecified
> вместо того чего на самом деле хотел. И таки очень кстати
> если автоматика поймает подозрительное место и сообщит что я сделал фигню.

Если говорить про одинарный пробел, то также как и с кавычками. Если говорить про любой символ, то вы так и [10] в [1] можете превратить и Get в Set, так что не вижу смысла расусоливать на эту тему.

> То-есть это не отменяет нужды быть внимательным самому. Но компьютер должен помогать
> человеку, а не только п-лями в стойло его строить.

Вот именно. И тем более компьютер мешать не должен. Блоки кавычками мешают.

> Смотри, в сях например указатели это кусок проблем если быть невнимательным. И
> там проблемы в том числе и с анонсом намерений дла анализа/компилера.
> Но кроме минусов есть плюсы. Это дико эффективная технология. Избегающая лишних
> копирований - что актуально, особенно на больших объемах данных или если
> скорость критична. Поэтому tradeoff: мы теряем в надежности, но получаем быстрый
> компактный код. А у тебя - не tradeoff. Оно только делает
> мозг, ставит в стойло, но ничего не привносит. Значит нафиг.

Наоборот. Нет лишних символов, чище код, проще читать, больше сфокусирован на действии, а не на форматировании или стиле. В надежности не теряем, код становится еще компактнее чем с кавычками. Никакого трейдоффа тут нет. Просто раньше ты носил в рюкзаке бесполезный камень, а теперь его выбросил. Так что либо пробелы в твоей аналогии это указатели (тк они максимально эффективные), либо лучше чем указатели.

> При том эта строгость ничего кроме эстетики не привносит. Я не вебмакака
> чтобы в стойло становиться ради декоративно-эстетических целей. Если там будет что-то
> системное, крутое, можно подумать.

Начинается. Сначала за безопасность. Теперь вот "ради декоративно-эстетических целей" не готов.
Тогда ради однообразия, сокращения размеров кода, количества коммитов, времени на ревью, ошибок связанных с неверным форматированием, ради прекращения войн стандартов, ради экономии на новых кнопках для клавиатуры в конце концов...

> Ну, вообще, это по моему опыту. Если меня заворачивают с скобкой -
> я таки где-то напортачил и скорее всего логика поломана и надо
> детально все перепроверять.

Точно так же и с пробелами.

> Вообще-то в сях - можно почти где угодно, так что при желании
> независимые логические блоки можно явно хайлайтить чуть активнее чем это обычно
> делают. Это не значит что это всегда нужно делать. Оформлять блок
> имеет смысл там где ... уместен логически выделенный блок, более-менее самодостаточный.
> Но если хочется - можно и по приколу почти везде делать.
> Но лучше не выпендриваться, код должен быть понятен другим, все что
> сверх того - нафиг надо.

Фактически в сях можно выкинуть пробелы в начале строк и жить только со скобками. Но вы же так делать не будете? Вы же все равно используете пробелы. Так зачем вам две одинаковые вещи? Вы итак отделяете блок двумя разделителями.

> Вы вообще на сях программировали?

Да.


> Я стараюсь не писать большие скрипты, предпочитая *никсвэйный подход. То есть небольшие
> эффективные качественные программы, при нужде объединяемые небольшими скриптами по месту.
> Модуляризация. Конечно это не всегда катит. Но мудрость в идеях древних
> есть. В отличие от вебмакак и питоняш, от которых если мне
> что и надо - чтобы они перестали замусоривать поиск своими поделиями.

Тогда тем более вам должен нравиться этот подход потому что в однострочниках вам не нужны блоки и никакие пробелы и скобочки тоже. А там где нужны, там 4 пробела.

> Так если я левые кавычки/скобки влеплю - буду послан. Их надо именно
> парно вкатить/стереть, и вероятность нечаянно сделать в виде когда оно будет
> сожрано как что-то валидное довольно низкая. В этом весь пойнт и
> состоит.

Так и шансы что вы именно 4 пробела случайно влепите крайне низкая.

> Обычно прогерские редакторы втыкают сразу эн пробелов, для разгона эффективности прогера,
> так что ну так себе аргумент. Не буду же я 4
> раза на уровень форматирования пробел сам жать, право? Я что, обезьяна?

Тогда определитесь каким редактором вы пользуетесь и опишите как он работает с кавычками и автодополнением и я покажу что в худшем случае он может работать точно также при использовании пробелов не теряя в эффективности и "безопасности".

> 1) Ну ващет за мена это компилер посчитает.

Это не вы 5 минут назад не хотели "мозг в стойло ставить"? Вы уж определитесь как-нибудь. С пробелами я и без компилятора сразу все увижу (и вы тоже, если захотите).

>[оверквотинг удален]
>

 
> {
>     abcd();
>     cdef();
>     {
>         efgh();
>         jklm();
>     }
> }
>

То же самое:

 
    abcd();
    cdef();
        efgh();
        jklm();

Читается лучше, строк меньше, символов меньше, набирать быстрее, сразу видно где какой блок.

> 3) Если мне чей-то синтаксис не нравится, я могу ему reflow в
> автоматическом режиме сделать при желании. И от дурно поставленых скобок голова
> будет болеть у компилера или парсера.

То же самое и с пробелами.

> Они удачно хайлайтят структуру блока и логические сущности, жестко указывая где задумано
> начало и конец этого блока. И парой случайных ошибок редактиврования сломать
> это в виде когда автоматика сие проглотит - довольно трудно.

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

> Потому что явный маркер начала-конца блока отдельным символом - не встречающимся в
> других случаях - как-то эффективнее и надежнее в качестве надежного разграничения
> логических блоков.

Не встречающимся в других случаях? Три раза ха-ха. Вы все равно вставляете пробелы в начале строки, парсить 5 различных символов менее эффективно чем 4 символа. А если еще и добавить парность скобок то еще тяжелее.

> Только вот требования попарности нет, а пробелы встречаются при нормальном курсе событий,
> поэтому сломать это нечаянно - куда проще.

Пробел да, 4 пробела в начале строки - нет.

> Вообще, получить warning при подозрительном форматировании кода - почему бы и нет?
> На самом деле нормальный фичреквест.

Ну вот, я же говорил.

> Для меня выделение логических блоков отдельными символами как-то лучше схватывается. Алсо
> хайлайт парных скобок - штука в редакторах весьма типовая, мне так
> нравится.

Пфф..есть даже плагин на разноцветную подсветку разных блоков. Работает с пробелами.

> А вон ту задачу я вообще могу более 9000 способов решить. Это,
> типа, плохо?

Попытка увести разговор в сторону не засчитана.

> Я могу с этим жить. И если им так больше нравится -
> ну, я не парюсь особо, прогерские редакторы все равно культурно это
> все сделают.

Это не вы недавно писали про "эффективность" и "мозг в стойле"?

> Это чисто эстетическая проблема, сама по себе к факапам не ведет.

Располагает к разгильдяйству.

> Но отъезд логики на ошибке редактирования оно не поймает, от оригинала намерений
> ничего не осталось, и в целом удачи понять как оно было
> задумано. Сломать так curly bracket все же сложно и маловероятно.

Уже неоднократно писал об этом.

> Ващет гнать такого ревьюера надо. Гит на такие вещи например дико кислотные
> цвета рисует в консоли в git log -p и прочих git
> diff. Я не знаю как это можно не увидеть, от этого
> глаза сразу вытекают.

Что-то подсветит, а что-то нет. И ревьювера и тех кто решил скобки использовать.

> Более того - если у ревьюера не вызвал вопрос пустой блок/строки -
> это как минимум странно. А, да, я еще так то код
> немного ревьюю другим. Это для тебя ревьюеры божества, ставящие таких как
> ты в стойло. А для меня одни из равных.

Так блок не пустой, там в начале что-нибудь безобидное. Или пустой, но как вы любите отделяющий логический блок.

> Тем не менее пример довольно странный - бэкдор очень паливный, ибо пустые
> строки в логическом блоке очень бросаются в глаза. Их там быть
> не должно.

А с пробелами и вовсе невозможен.

> У питонистов вообще статический анализ в зачаточном состоянии. И обработка ошибок. Поэтому
> вообще все пихонскрипты рассыпались при малейшем тыкании палочкой. А зачастую и
> сами по себе как апгрейдер убунты, тот позорный случай когда руками
> проще и надежнее чем таким скриптом.

Причем тут питонисты? Причем тут убунта? Можете еще приплести школьников за то что на питоне учатся и рассказать какие школьники криворукие, поэтому де пробелы обречены.

> Чего бы? А в прогерском редакторе скорее 1 кнопой, не буду же
> я 4 пробела мануально, право?

Так в прогерском и скобки одной кнопкой. Не будете же вы мануально, право?

> Оно либо не повлияет ни на что кроме эстетики либо даст компил
> егор. Однако вот именно логику кода сломать оно не сможет и
> баста. И мы всегда будем видеть что на самом деле задумано.
> Ну как, начинка вон того блока не переедет в этот блок
> автоматически сама по себе, хоть там что. Правильно перекинуть блок кода
> с одного сегмента в другой, ничего не сломав, нечаянно - ну,
> это из области фантастики.

Также и с пробелами.

> ИМХО дублирование декларации намерений делает это устойчивее к ошибкам редактирования
> как раз. И чаще позволяет восстановить задумку испорченного кода как раз.
> Ну как, блочные операции случайно сделать в правильном виде - черт
> знает, у меня так не получалось. Чтобы код попал в другой
> блок с другим уровнем вложенности другого блока надо очень кастомное действо,
> деликатно выбрав правильные границы. Иначе компил егор.

И у меня не получалось. Но вы отчаянно этого боитесь.

> Вообще идея что я могу менять принадлежность кода тому или иному блоку/уровню
> вложенности пробелом - не кажется мне удачной, слишком просто порушить незапланировано,
> а бонусом намерения автора полностью утрачены и разве что в git
> или бэкап идти смотреть что там было, если, конечно, это все
> есть.

В Африке акулы,
В Африке гориллы,
В Африке большие
Злые крокодилы
Будут вас кусать,
Бить и обижать,-
Не ходите, дети,
В Африку гулять.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 08:30 
> Похоже ты сектант. То ты топишь за акууратность и еррор, то "случайну
> уберу пробел, компиль без ошибок".

Я за сбалансированный подход, когда машина по возможности помогает кодеру, но допускается что это - человек разумный и не держит его за кретина которого п-лями без права оверрайда в стойло надо, ага. Пихоносинтаксис ставит в стойло даунов не способных к обучению. Мне использовать такие инструменты дико западло. Как и иметь дело с такими кодерами.

> Походу тебе ни то ни другое не надо, лишь бы "пробелов не было" и находу пытаешься
> придумать вымышленные проблемы, которых (еще раз напомню) нет.

Я лишь констатирую факт что синтаксис curly bracket видится мне сбалансированым. Не считается что кодер даун и есть гибкость с одной стороны, но явно кривые ситуации все же ловятся, а информации достаточно хоть для полного reflow. Мне так больше нравится.

> Кидай ошибку при форматировании и нет никаких проблем с пробелами.

Я тебе не необучаемое нечто чтобы меня п-лями без права оверрайда к форматированию приучать. Пусть к тебе такие подходы применяют. Как и запрет опасных операций типа указателей, ага. А себе я все же позволю немного гибкости, свободы и предпочтений не спущенных на бошку сверху божествами. Системщики сами себе божествами умеют быть - делая себе все окружение так как им хочется. Да, например макросней можно камня на камне не оставить от оригинального синтаксиса, например. Правда, так лучше не делать, т.к. другим будет тяжко одуплить.

> Я уже в очередной раз тебе об этом пишу, но ты упорно не читаешь.

С другой стороны системщики могут и повыпендриваться. Ну там посмотри c.otto.c какой - программа которая симметрична относительно ... оси симметрии :). На сях пожалуйста. А на пихоне - хренли я мяснику про картины рембрандта задвигаю?

> Если говорить про одинарный пробел, то также как и с кавычками.

Вообще речь была про скобки. Но кавычки тоже парами должны быть и это тоже хорошо. А пробелы, вот, не парные - и форматирование единственный хинт о намерении. Разметить скобками как ключевыми точками а форматирование лишь опциональная вспомогаловка мне больше нравится.

> Если говорить про любой символ, то вы так и [10] в [1]
> можете превратить и Get в Set, так что не вижу смысла
> расусоливать на эту тему.

Могу. Это даже иногда случается. Поэтому прошареный народ делает интересные вещи, про которые питоняши не в курсе. Типа static assert'ов всяких и параноидальных проверок. Если вон та функция by design жрала от 3 до 8 а ей 1 дали - компил как раз и сломается. В этом направлении особенно интересно zig'овские вычисления в компилтайм смотрятся, так много чего можно сделать, прогнав произвольную логику во время сборки.

> Вот именно. И тем более компьютер мешать не должен. Блоки кавычками мешают.

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

> Наоборот. Нет лишних символов, чище код, проще читать, больше сфокусирован на действии,

А мне нестандартные символы позволяют визуально выхватывать логический блок. И более того - эдиторы умеют в продвинутую навигацию по блокам на основе этого самого, и прочий фолдинг и так далее. Так что можно взять да и скрыть логически-завершенный блок "под кат" раз он работает и более не интересен, сфокусировавшись на чем-то ином. С пробелами это все кривее будет.

> а не на форматировании или стиле.

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

> В надежности не теряем,

Вообще-то теряем. Скобки + форматирование дают некоторую избыточность, что в случае факапа помогает восстановить изначально задуманную логику даже если вышел фэйл.

> код становится еще компактнее чем с кавычками.

И выглядит стеной кода без особой разбивки на блоки...

> раньше ты носил в рюкзаке бесполезный камень, а теперь его выбросил.

Ващет он был не бесполезный - когда что-то шло не так, его можно было вынуть и дать им по морде вон тому багу. А у тебя так низя.

> Так что либо пробелы в твоей аналогии это указатели (тк они
> максимально эффективные), либо лучше чем указатели.

В каком-то роде да. И с теми же проблемами - при неаккуратном использовании имеем проблемы. Но, знаешь, у системщиков аллергия на жесткую постановку в стойло. Даже у хипстерских нубов хрустиков unsafe есть ;)

> Начинается. Сначала за безопасность. Теперь вот "ради декоративно-эстетических целей" не готов.

Как бы для меня надежность имеет приоритет над эстетикой ради эстетики. А несколько избыточный маркап позволяет проще заметить и починить факап. К тому же эта избыточность ну вот мне самому жить не мешает - ее редакторы сами разруливают так то. Ну, если это не нотпад.

> Тогда ради однообразия, сокращения размеров кода,

Ставиться в стойло прерогатива взаимозаменимых вебманки.

> количества коммитов,

Это как?! Кто-то коммитит скобочки а не какие-то осмысленные фичи? :)

> времени на ревью,

Ващет при ревью я хочу понимать соответствие того что есть тому что задумано. Curly bracket дает лишний уровень обороны. Если там форматирование будет не соответствовать расстановке блоков, я спрошу у кодера что он имел в виду на самом деле.

> ошибок связанных с неверным форматированием, ради прекращения войн стандартов, ради экономии

Знаете, есть офигенный способ сэкономить ваше время - вообще программы не писать. Я буду очень рад если вы именно так и сделаете.

> на новых кнопках для клавиатуры в конце концов...

Э не, я ж не в нотпаде печатаю, более потребные редакторы, таки, удобно делают. И форматят сами, и блок могут парно оформить сразу, подогнав "болваночку". И подсвечивают парные скобки, все такое. С пробелами это вообще не очень понятно как делать. Если весь блок будет мигать, можно эпилептиком стать нахрен, а когда только парная скобка кислотненько подсвечена, это и видно хорошо и не бесит огромной площадью хайлайта. Баланс опять же...

> Точно так же и с пробелами.

А вот не так же - избыточности нет. И что я, буду сам все 4 пробела тапать? А как же экономия нажатий? Значит хоткеи на +1/-1 уровень, по эн пробелов за раз. Но избыточности при этом нет и факап с этим - полностью теряет инфо о намерениях. А в curly bracket - в силу избыточности это будет заметно (вплоть до коипил егора) и вернуть взад испорченое проще.

> Фактически в сях можно выкинуть пробелы в начале строк и жить только
> со скобками. Но вы же так делать не будете?

В общем случае не буду. Но отдельные эстеты иногда в декоративных целях зажигают - и это красиво. Это - программисты. А не вебабизяны.

> Вы же все равно используете пробелы. Так зачем вам две одинаковые вещи? Вы
> итак отделяете блок двумя разделителями.

Для некоторой избыточности гарантирующей что intent и реализация совпадают. А у вас есть только реализация, intent вообще не декларирован.

>> Вы вообще на сях программировали?
> Да.

Что-то не очень похоже. Или это было в нотпаде.

> Тогда тем более вам должен нравиться этот подход потому что в однострочниках
> вам не нужны блоки и никакие пробелы и скобочки тоже.

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

> А там где нужны, там 4 пробела.

Мне со скобками больше нравится. И даже в баше таки можно делать какие-никакие функции и проч в таком духе, ага.

> Так и шансы что вы именно 4 пробела случайно влепите крайне низкая.

Один хоткей вкатать? Низкая?! Ну не буду же я по 4 раза пробел давить в крейсерском режиме, право, я ж не обезьяна в 4 раза частое дествие тормозить.

> Тогда определитесь каким редактором вы пользуетесь и опишите как он работает с
> кавычками и автодополнением и я покажу что в худшем случае он может работать точно
> также при использовании пробелов не теряя в эффективности и "безопасности".

Да на самом деле разными. Что-то совсем мелкое я могу и mcedit отрихтовать, в нем все маргинально зато навигация по иерархии супербыстрая. Для более тяжеловесных операций как минимум что-то типа geany или kate (в маздайке еще programmer's notepad бывает). И таки оно уже на границе между эдитором и ide и там подобные вещи настраиваются и оптимизируются.

> Это не вы 5 минут назад не хотели "мозг в стойло ставить"?

Так это... в сях вот именно в стойло не очень сильно ставят. Да и даже в хрусте unsafe есть. А показать логчиески-некорректную программу - при чем тут стойло? Предполагается что я сразу же и задумаю программу логически-некорректной? А зачем?

> все увижу (и вы тоже, если захотите).

Боюсь что мне не нравится такой стиль кода и я не хочу иметь с ним ничего общего. А ваши аргументы меня не цепляют потому что при объемистом редактировании продвинутыми редакторами это их проблема в основном.


     abcd();
     cdef();
         efgh();
         jklm();

Ага блин, но если было

abcd();
{
bcde();
cdef();
}
efgh();

...то мы знаем что они все на 1 уровне, но если хочется то вон то, в середине, можно выдирать как реюзабельный законченный блок! А с пробелами так вообще не отмаркируешь. Вон тем увлекаться конечно не стоит, но это полностью валидный синтаксис в си.

> Читается лучше, строк меньше, символов меньше, набирать быстрее, сразу видно где какой блок.

Можно подумать я скобки и форматирование руками делаю чтобы скорость набора просела. А читается оно имхо как стена текста.

> То же самое и с пробелами.

С пробелами это не имеет смысла. Скажем в сях можно разное число пробелов юзать. Например если я знаю что что-то заведомо сложное, то можно и 2 пробела на уровень сделать, для компактности. А если цель наоборот, зарубить сложный код во имя надежности - можно и 8 символов на уровень влепить, писать сильно вложенный код станет неудобно и паливно. То что один размер катил всем - ну, не факт, случаи разные бывают.

> Пробелы в начале строк вы так не используете. Вы ими никогда не
> хайлайтите. Вы хайлайтите переносом строк и зачем-то(для компилятора) добавляете скобки.

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

> Вы можете использовать пробели для выравнивания посреди строки, но и в
> моем способе вы точно также можете использовать пробелы посреди строки.

И тем не менее, со скобами имхо мощнее, гибче а избыточность уменьшает лажу.

> Не встречающимся в других случаях? Три раза ха-ха. Вы все равно вставляете
> пробелы в начале строки, парсить 5 различных символов менее эффективно чем
> 4 символа. А если еще и добавить парность скобок то еще тяжелее.

Пардон, но скобки в curly bracket применяются в конкретных случаях. И не фигурируют в остальном тексте программы наобум. И они сильно менее распостранены чем пробелы, что делает их удобными точками навигации, фолдинга блоков и проч.

> Пробел да, 4 пробела в начале строки - нет.

Вы не одупляете. На границах начала и конца блока соответственно, а в этом случае - явных маркеров начала и конца нет.

> Ну вот, я же говорил.

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

> Пфф..есть даже плагин на разноцветную подсветку разных блоков. Работает с пробелами.

Да ну нафиг эту эпилепсию. Одно дело мелкая кислотно светящаяся скобка и другое - полэкрана мигает.

> Попытка увести разговор в сторону не засчитана.

Типа не комплекс ходьбы строем...

> Это не вы недавно писали про "эффективность" и "мозг в стойле"?

Я. А в чем проблема, редакторы ж это делают удобно и быстро.

> Располагает к разгильдяйству.

Что-то не помогло это питону, глядя на то как скрипты на этом дохнут в первые 5 минут знакомства со мной, почти все. И эти люди будут про разгильдяйство?...

> Уже неоднократно писал об этом.

Я не знаю что вы там писали, но curly bracket хорошо ловит именно про@бы при редактировании. Мне это нравится. А вот реализовывать задумку, и даже например акцентировать внимание на вон том блоке - таки не мешает.

> Что-то подсветит, а что-то нет.

Ну как бы git обычный его подсвечивает как прожектор.

> И ревьювера и тех кто решил скобки использовать.

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

> Так блок не пустой, там в начале что-нибудь безобидное. Или пустой, но
> как вы любите отделяющий логический блок.

Так длинные линии проблема сама по себе - и это не должно пройти ни ревью, ни автоматические чекеры. Если это не так, толку от вашего ревью и чекеров - около ноля.

> А с пробелами и вовсе невозможен.

Да и хрен с ним - не выглядит огромной проблемой. Зато вот вам другой бэкдор: пробелов в уникоде так то более одного вида! В сях оно похрену. А вот вас можно попытаться накормить логикой которая выглядит иначе нежели по факту работает, используя пробелы которые типа не пробелы, в том плане что визуализуются как пустое место но не имеют эффекта на логику.

Кажется я только что придумал как иметь питоняш по технологии BadSource, лол :)

> что на питоне учатся и рассказать какие школьники криворукие, поэтому де пробелы обречены.

Да, блин, найти не глючный скрипт на питоне - ну, у меня не получилось ни разу. Вот честно, все что я видел было дикой наколенью. Прикольно когда при этом что-то вещают про надежность.

> Так в прогерском и скобки одной кнопкой. Не будете же вы мануально, право?

Так сама по себе пара скобок либо вообще не меняет логику, либо если это сделать в середину чего-то еще, компил завалит, т.к. случайно влепить их так чтобы компил не свалился - весьма маловероятно.

> Также и с пробелами.

Да ща.

> И у меня не получалось. Но вы отчаянно этого боитесь.

Скорее, мне нравится явное маркирование блоков. Много усилий от меня оно не требует и позволяет ряд интересных вещей. Вплоть до разнесенных по времени декларации намерений и фактического кодинга. Когда пустой блок является placeholder для какого-то сегмента который я попозже накатаю. А если не накатаю - визуально это достаточно заметно и вызовет вопросы.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 29-Апр-22 21:34 
Не буду повторяться, вижу вы даже не собираетесь вникать. Все ваши аргументы заключаются в одной фразе: лишь бы не как в питоне. Притом про питон речи не было(я не предлагаю следовать его синтаксису). Но видно что и питоном вы никогда и не пользовались и на ходу пытаетесь придумать проблемы которых нет. Когда я вам объясняю почему их нет, вы либо повторяетесь, либо меняете тему, либо меняете сторону на противоположную(но и там проблем с пробелами не находится), либо безуспешно пытаетесь расставить логические ловушки с извращенной логикой.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 30-Апр-22 02:14 
Да и я устал. Посчитаем что мне тот синтаксис все же не нравится, настолько что я им пользоваться не буду по совокупности свойств.

А питон что, образец голимой наколенщины и одноразовго софта писаного сразу на выброс. Там аргументы про экономию сил ламерьем не умеющим редактор настраивать, любой ценой, поймут - там надо чтобы раб у весла как можно больше прожЕктов в единицу времени хреначил, а заказчик все равно ламер и ничерта не смыслит. Ваши аргументы все из этой области. И хрен с ним что багов больше, утеряны намерения кодера и прочие несущественные мелочи. А меня в системщине все же волнует качество кода, возможность других двуногих в него въехать, antibug и проч.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:42 
Название языка о много говорит. Какая-то сишечка же.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 18:56 
> We have no intention of supporting non-free platforms, but because the language is standardized, a third-party implementation or fork could easily develop Windows or macOS support if desired.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 20:38 
>We have no intention of supporting non-free platforms

Одобряю!


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:58 
Банда непуганых uдuотов! Благодаря этим "non-free platforms" вы вообще сидите в тырнетах!!
Просто представьте, что Винды нет и никогда не было. В мире работает 100 компьютеров, потому что только 100 погромиздов и умудрилось разобраться, как там настроить Иксы, сконфигурить сеть и запустить (А ПОТОМ И ВЫЙТИ) из vi. :)
Только благодаря "коммерческим Окошкам" ИТ развернулось практически на всё население планеты. Не говоря о том, что ТЕБЕ ЛИЧНО платность винды вообще никак не мешает! Чел хотел - чел купил Венду. И хочет под ней хороший компилер - в чём проблема-то? Боитесь, что все ваши 15 рублей уйдут БГ? Каким образом??

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Ю.Т. , 26-Апр-22 19:11 
> Банда непуганых uдuотов! Благодаря этим "non-free platforms" вы вообще сидите в тырнетах!!

Вы говорите так, будто это что-то хорошее.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 21:20 
>> Банда непуганых uдuотов! Благодаря этим "non-free platforms" вы вообще сидите в тырнетах!!
> Вы говорите так, будто это что-то хорошее.

Ну да, так и есть - хорошее! А преставь, вместо тырнетов такие сидели бы в Думе!


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 27-Апр-22 10:17 
>> Банда непуганых uдuотов! Благодаря этим "non-free platforms" вы вообще сидите в тырнетах!!
> Вы говорите так, будто это что-то хорошее.

Он говорит так, будто бы _мы_ сидим, а он исключение. Этим исключением он и опроверг своё "правило". :)


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 20:19 
>_мы_

Вы-то как раз сидите крепко на пляшке non-free platforms. Чем дальше, тем глубже.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 29-Апр-22 09:26 
Я обычно сижу "на" кресле, а ты, похоже, в очереди к Фрейду. Или уже на операцию?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Типолог без стажа , 27-Апр-22 00:57 
Так пусть владельны non-free platforms и форкают, если им потребуется чуть менее безумный чем C и более простой чем Rust системный язык.

А те, кто хочет писать на нём сидя на non-free platform пусть ставят себе Docker Desktop, non-free прослойку для запуска вполне себе free линукса и конпелируют свой код.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 18:33 
> Банда непуганых uдuотов! Благодаря этим "non-free platforms" вы вообще сидите в тырнетах!!

Тырнеты появились без этих платформ. Тырнеты продолжат работать без этих платформ.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено warlock , 25-Апр-22 19:09 
Слишком похож на C — слишком мало профита от перехода. В то же время достаточно непохож, чтобы переход был простым.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Z , 25-Апр-22 19:39 
Почему на опеннете хейтят хРуст? Адекватно кто-то может пояснить?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Минона , 25-Апр-22 19:50 
Потому что ниасиляторы.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Z , 25-Апр-22 22:43 
> Потому что ниасиляторы.

А что там сложного? Я особо не вникал, но документация одна из лучших, сообщество не токсичное в отличии от того же питона. Очень понравился подробный разбор ошибок компилятора.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:52 
Потому что Rust как и Go, Swift сведены к одной проблеме - их продвигают фирмы делающие на этом деньги. То есть это своего рода модная тенденция, которая скоро отыграет свое. Аак Python, который тормоз. И вот люди при желанит могли бы написать набор правил к компилятору Си/С++, которые делали бы ровно то, что они хотят. Но может быть им так хочется. Так что лучше уж такой язык, который сам пусть доказывает свою нужность. Возможно кому-то он будет как Vulkan вместо OpenGL. Rust же просто не дастьнаписать криво к каких-то местах, поэтому обладателям кривых мозгов так тяжело, а приходится искать оправданте почему они пишут на визуал бейсике, а не на Rust.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 19:57 
50% опеннетчиков хейтит Хруст и любит Сю.
50% опеннетчиков хейтит Сю и любит Хруст.
0% опеннетчиков могут адекватно воспринимать оба языка.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено outdoor , 25-Апр-22 20:32 
0.01%

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 20:37 
>Почему на опеннете хейтят хРуст?

Для начала попробуй его компилятор с llvm собрать из исходников.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 20:41 
Такой же медленнособираемый как и GCC, Clang. В Gentoo этот самый Rust далеко не самый медленный по сборке. К тому же GCC и Clang надо чаще собирать. Просто к моменту окончания сборки GCC терпение обычно заканчивается.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 25-Апр-22 23:17 
> Почему на опеннете хейтят хРуст? Адекватно кто-то может пояснить?

Отвратный синтаксис (впрочем сабж не намного лучше, но все же лучше).
Целиком контролируется корпорациями.
Предлагает "13ый стандарт", свой компилятор, свой инструментарий, свои законы.
Дегенератское сообщество:
- состоит из членов/пропагандистов ЛГБТ, феминизма, BLM и прочего !@#$%
- страдает переизобретением велосипедов (нужно написать еще пару десятков видов ls)
- страдает агитацией самого раста, в основном преподносят его как лекарство от всех болезней и с ужасом узнают что лечит он в основном от гриппа (которую давно научились лечить и без арбидола) и пары крайне редких африканских болезней о которых мало кто слышал
- в основном состоит из слабоквалифицированных хипстеров-студентов и менеджеров мечтающих видеть в отчетах бухглатерии бюджетных хипстеров-студентов вместо высооплачиваемых зубров
Всеми силами пытается выглядеть лучше чем он является:
- Преподносит дефолтные штуки за инновации ("статический анализатор теперь со вкусом менто^W в компиляторе").
- safe/unsafe (спасибо, кэп).

В целом раст предлагает кучу новых проблем, но мало проблем решает.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 20:12 
Зачем, когда есть C3? https://www.c3-lang.org/compare/

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Hck3r , 25-Апр-22 22:36 
Зачем, когда есть
D, J, V?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 01:23 
При чем здесь J к D и V? Он же от всех компилируемых императивных языков очень сильно отличается.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Hck3r , 26-Апр-22 11:11 
Имел в виду Jai

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:59 
D и этого достаточно :)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 12:49 
Hare selfhosted, а C3 на LLVM. Преимущество, млин...
С4 будет?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Борода Столлмана , 25-Апр-22 20:25 
Как вы уже забодали плодить языки ради пложения языков. А потом плодить по 2.5 поломаных проекта для них и кричать вот мой то язык самый языкатый и правильный.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 20:30 
>Hare

По-русски означает "заяц".


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 23:04 
Спасибо, продолжайте наблюдение.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 10:44 
А может дать тебе по Харе?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Вы забыли заполнить поле Name , 27-Апр-22 04:47 
Да харе уже

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 20:33 
>язык программирования Hare

Хорошо, что его компилятор не на llvm/gcc основан.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено zog , 25-Апр-22 20:45 
Почему это хорошо?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 21:33 
Самостоятельность, безопасность, легковесность.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 12:52 
Но вот если для ядра... На Опеннет пару раз приводилась ссылка на исследование о скрытых опасностях связывания кода, произведённого разными кодогенераторами.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Типолог без стажа , 27-Апр-22 00:53 
Например, никто не подумает использовать СИСТЕМНЫЙ язык там, где требуется оптимизация. Си в этои смысле испортил не одну тысячу погромистов заблуждением, что он якобы быстрый

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 23:04 
> Например, никто не подумает использовать СИСТЕМНЫЙ язык там, где требуется оптимизация.
> Си в этои смысле испортил не одну тысячу погромистов заблуждением, что
> он якобы быстрый

А что, попробуй LZ4 на сях соптимизить, да? Прикинь, если он в память упирается, переписывание на асме ему не поможет совсем никак :)


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 00:18 
>> Например, никто не подумает использовать СИСТЕМНЫЙ язык там, где требуется оптимизация.
>> Си в этои смысле испортил не одну тысячу погромистов заблуждением, что
>> он якобы быстрый
> А что, попробуй LZ4 на сях соптимизить, да? Прикинь, если он в
> память упирается, переписывание на асме ему не поможет совсем никак :)

Расскажи поподробнее, какой у тебя оптимальный и "упирающийся лишь в память" гном/гтк.
Заодно прикинь, сколько разных алгоритмов сжатия и шифрования, помимо LZ4, ты еще используешь повседневно.



"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 08:36 
> Расскажи поподробнее, какой у тебя оптимальный и "упирающийся лишь в память" гном/гтк.

Сразу после того как ты на асме что-то сравнимое по фичам накатаешь вообще.

> Заодно прикинь, сколько разных алгоритмов сжатия и шифрования, помимо LZ4, ты еще
> используешь повседневно.

Однако хорошие алгоритмы так то шустро работают даже на си. Просто автор LZ4 очень круто знает особенности современного железа, вплоть до выравнивания кешей проца и проч. А так да, иногда асм может что-то отыграть, особенно если кодогенератор протупляет. Но в целом ареал обитания асма заметно сузился. И таки даже в каком-нибудь мизерном бутлоадере может быть распаковщик или крипто на сях. Как бы майнтенанс и портабельность кода тоже аргумент, равно как и тот факт что его вон там уже 20 раз проверили, в отличие от нечто на асме. Поэтому асмом ща пользуются только если здорово приперло и выигрыш того реально стоит. А вот так весь проект на асме - ну, нет, есть, конечно, колибридос но тот уже возлюбил C--. Еще годиков 10 и до них допрет почему мы любим си :)


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 11:54 
>> Расскажи поподробнее, какой у тебя оптимальный и "упирающийся лишь в память" гном/гтк.
> Сразу после того как ты на асме что-то сравнимое по фичам накатаешь
> вообще.

Как славно ты опять свинтил с темы на свои фантазии (об асме речь завел тут ислючительно ты).
> ... А так да, иногда асм может что-то отыграть, особенно если кодогенератор протупляет. Но в целом ареал обитания асма заметно сузился.

Сам придумал, сам накатал целую простыню ...

btw:
> Однако хорошие алгоритмы так то шустро работают даже на си.

И поэтому в какой видеокодировщик не глянь - куча асма.
https://www.opennet.ru/opennews/art.shtml?num=57068
> Компания Intel опубликовала кодировщик видео SVT-AV1 1.0
> https://github.com/AOMediaCodec/SVT-AV1/search?l=assembly

https://www.opennet.ru/opennews/art.shtml?num=56876
> Выпуск dav1d 1.0, декодировщика AV1 от проектов VideoLAN и FFmpeg

https://github.com/videolan/dav1d/search?l=assembly


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 18:53 
> Как славно ты опять свинтил с темы на свои фантазии (об асме
> речь завел тут ислючительно ты).

Остальные языки не доказали делом что они - системные. Всякая академдрянь к системщине близко не стояла - решает какие-то задачи про сферических коней в вакууме в основном. Ну ей системщики и не пользуются, они относительно низкоуровневые и приземленные ребята по академмеркам. С мышлением инженера-имплементера а не абстрактного математика.

Для горе академов сообщаю: в системщине от высокопарных абстракций и крутых загибонов только вред. Код должен быть простым, предсказуемым, понятным, и - должны удобно и просто делаться всякие системные низкоуровневые вещи. Остальное в лучшем случае опционально и при серьезном настрое все-равно делается как часть внешнего процесса. И чем проще яп тем на него проще "safe" спеки накатать типа правил MISRA всяких, нацеленных на то чтобы кодеры однозначно понимали что код делает без разночтений, а поведение кода совпадало с тем что задумано.

> Сам придумал, сам накатал целую простыню ...

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

> И поэтому в какой видеокодировщик не глянь - куча асма.

Это да, однако если детально копнуть в гит того или иного кодека - там весьма стебные цифры бывают. Вот тут AVX/SSE фрагмент делает си в 7 раз. И это круто. А вот там почему-то в 0.6 :)) раза. И вознимает вопрос "зачем эта гадость место вообще занимает?!" (ее ж даже не вызывают потом).

> https://github.com/videolan/dav1d/search?l=assembly

Кажется, капитанить не только я умею... и все же заметьте что основная тушка кодека писана на сях а на асме только небольшие критичные куски где компилер может протупить. Ну как, компилер же не AI и имеет очень примерное представление где горячий код и что критично. Штуки типа PGO пытаются с этим что-то делать, но довольно утомительны в использовании ибо требуют рантайм статистику собирать.

А для понимания почему капитанинг - я так то сам себе интринсиков на асме понаделал под несколько архитектур. А как раз потому чтобы вынести мерзкую непортабельную помойку в 1 мелкий загон. А остальное - более чистый портабельный код, вызывающий таки уже нормальную сишную абастракцию. Даже если унутрях она и будет 1 асмовой командой потом. Или не 1 - от платформы зависит как оно там у них. Факт в том что основной код может быть абсрактным и портабельным. И когда так удается проскочить даже в системщине это все же круто.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 22:13 
>> Как славно ты опять свинтил с темы на свои фантазии (об асме
>> речь завел тут ислючительно ты).
> Остальные языки не доказали делом что они - системные. Всякая академдрянь к
> системщине близко не стояла - решает какие-то задачи про сферических коней
> в вакууме в основном. Ну ей системщики и не пользуются, они относительно низкоуровневые и приземленные ребята по академмеркам. С мышлением инженера-имплементера а не абстрактного математика.

Ты опять доказал, что прекрасно владеешь уменим читать жопой и домысливать большую часть, не более.

>>>> Хорошо, что его компилятор не на llvm/gcc основан.
>>> Почему это хорошо?
>> Например, никто не подумает использовать СИСТЕМНЫЙ язык там, где требуется оптимизация.

<тут еще можно было кинуть ссылку на недавнюю новость, где излишняя оптимизация gcc подложила очередной сюрприз разработчикам, впрочем, достаточно иногда заглядывать в lkml или багтрекеры
https://lore.kernel.org/lkml/20200104215156.689245-1-arnd�.../
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=37054 >

> Для горе академов сообщаю: в системщине от высокопарных абстракций и крутых загибонов
> только вред. Код должен быть простым, предсказуемым, понятным, и - должны
> удобно и просто делаться всякие системные низкоуровневые вещи.
> <остальная простыня на тему "мои сегодняшние фантазии о ..." поскипана>

Да успокойся уже, никто на твое звание Чемпиона по чтению опой не претендует.




"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 30-Апр-22 01:19 
> Ты опять доказал, что прекрасно владеешь уменим читать жопой и домысливать большую
> часть, не более.

Да и ты тоже это не хуже сделал, лолка. Особенно доставили ссылки.

> <тут еще можно было кинуть ссылку на недавнюю новость, где излишняя оптимизация
> gcc подложила очередной сюрприз разработчикам, впрочем, достаточно иногда заглядывать
> в lkml или багтрекеры

Для этого достаточно всего лишь .. пользоваться тулсами. Большой и сложный тул не может быть идеальным. А знаешь, когда большой самолет идет на взлет - там пара сотен дефектов запросто есть. Довести до идеального технического состояния эту махину малореально. Но оно в целом летает, а роялит - умение того кто в кресле понимать можно ли с этим лететь. И тебе я бы свою тушку не доверил. Тебе не место в кресле пилота. Ну или в нашем случае, прожект менеджера или лида, равно как и автора своих проектов.

> https://lore.kernel.org/lkml/20200104215156.689245-1-arnd�.../
> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=37054

Вау, просто эпик.
1) В первом случае аццкий жрач стека. Аж 1330 байтов при варнинге в 1024. Вообще, кернел это сделал потому что там кода МНОГО и если КАЖДЫЙ будет по кило жрать, из тысяч дров, душно все же может стать. Но это специфика кернела и их юзкейсов. И эта проблем в целом решается.
2) Баг на gcc 2.96 это конечно свежо и актуально. Багу 21 год всего. Этот анон поставил рекод арч-некромансии опеннета, е...ь!
3) А так то по приколу в других компилерах тоже баги бывают. LLVM вообще кусок багодрома, и на фоне его приколов вон то смотрится мелочью жизни и незначительными придирками.
4) Писать на асме я все же из-за этого не собираюсь.
5) А в других тулсах баги не находят в основном потому что ими никто не пользуется.

> Да успокойся уже, никто на твое звание Чемпиона по чтению опой не
> претендует.

А как же ты, жгун? Откопать баг которому 2 десятка лет в качестве доказательств "своей правоты" это жэсть. Мне так слабо, я понимаю что за 2 десятилетия там скорее уже и кода то от gcc 2.96 не осталось, а его проблемы интересуют только музеи истории вычислительной техники. Настолько с@с@ть в управлении проектами и балансировкой соотношений мне слабо, это талант иметь надо походу.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 30-Апр-22 03:56 
>> Ты опять доказал, что прекрасно владеешь уменим читать жопой и домысливать большую
>> часть, не более.
> Да и ты тоже это не хуже сделал, лолка. Особенно доставили ссылки.

Узнается Балабол294 - когда не хотят оспаривать его бредовые фантазии и тыкают в то, что разговор был не об этом, следует переход на "сам дурак".

>> <тут еще можно было кинуть ссылку на недавнюю новость, где излишняя оптимизация
>> gcc подложила очередной сюрприз разработчикам, впрочем, достаточно иногда заглядывать
>> в lkml или багтрекеры
> Для этого достаточно всего лишь .. пользоваться тулсами. Большой и сложный тул
> не может быть идеальным. А знаешь, когда большой самолет идет на

Только вот, Балаболка, разговор шел совсем не об этом. Если бы ты не читал жопой, а обращал внимание на цитированное, то заметил бы, что там выше - было высказывание, что для _системного_ языка супер-навороченная оптимизация возможно "не очень" - ну или наоборот.
Но никак не "перепишите на асм" и че-то-там про академиков и прочие твои фантазии.

>> https://lore.kernel.org/lkml/20200104215156.689245-1-arnd�.../

... As there is an easy way to work around it, just add a comment and the barrier that stops gcc from trying to overoptimize the function.
> Вау, просто эпик.
> 1) В первом случае аццкий жрач стека. Аж 1330 байтов при варнинге
> в 1024. Вообще, кернел это сделал потому что там кода МНОГО и если КАЖДЫЙ будет по кило жрать, из тысяч дров, душно все же может стать. Но это специфика кернела и их юзкейсов.
> И эта проблем в целом решается.

Опять решил на всякий пожарный подтвердить звание Чемпиона?


> 2) Баг на gcc 2.96 это конечно свежо и актуально. Багу 21
> год всего. Этот анон поставил рекод арч-некромансии опеннета, е...ь!

Эк тебя припекло. О том, что это пример "да, оно давно так", ты уже подумать не успел, бедолага - срочно очередную простыню ваять нужно было.

>> Хорошо, что его компилятор не на llvm/gcc основан.

...
> 3) А так то по приколу в других компилерах тоже баги бывают.
> LLVM вообще кусок багодрома, и на фоне его приколов вон то
> смотрится мелочью жизни и незначительными придирками.

Да Чемпион ты, Чемпион, успокойся.


>> где излишняя оптимизация gcc подложила очередной сюрприз разработчикам
> А как же ты, жгун? Откопать баг которому 2 десятка лет в качестве доказательств "своей правоты" это жэсть.

И? Два сэмпла, почему излишняя оптимизация может выдать "сюрпрайз" в системной разработке, причем "уже давно".
Тебя так подорвало, что отключило логику или просто ты читал опять этим самым и сейчас оспариваешь свои очередные фантазии?

> Мне так слабо, я понимаю что за 2 десятилетия там скорее уже и кода то от gcc 2.96 не осталось, а его проблемы интересуют только музеи истории
> вычислительной техники. Настолько с@с@ть в управлении проектами и балансировкой соотношений
> мне слабо, это талант иметь надо походу.

Эта балаболка порвалась, вносите следующую!



"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 05-Май-22 14:22 
> Эта балаболка порвалась, вносите следующую!

Да вообще пипец, не хочет в багах gcc 2.96 копаться. Вы еще б приволокли мне DOS 3.30. А, майкрософт уже даже там на сях прогал, на асме их уже заколебало к тому моменту.

В конечном итоге создание софта - не о гребаном перфекционизме отдельных отшибленых личностей, высасывающих из пальца бредовые примеры. Оно о разумном балансе свойств. Сишка этот баланс обеспечивает в очень широком спектре, от фирмварей и бутлоадеров до чатботов и вебсерваков, махрово апликушных. А между делом можно реюзануть в обоих некий удачный алгоритм.

p.s. а чисто поугарать я не только умею на асме прогать но и нехилые штуки на этом прогал. Только нафиг мне это счастье когда си есть. А на других яп, кроме, вот, еще полутора wannabe-системных, прогать махровую системщину от "мучительно" до "не катит". И даже так - можно найти например сказ о том как хрустики в микроконтроллеры пытались. Тут то они и познали прелести кастомного лэйаута бинаря и генерации этого. И что их "системная" штука это не очень то умеет. Возьмите, дескать, gcc'шный линкер, но вон там в ночной версии уже почти совсем...

TL;DR: я не люблю взбрыки софта, но у любой проблемы есть severity и priority. И для gcc 2.96 в 2022 году это полное ололо.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено zog , 25-Апр-22 20:44 
Hare Krishna, Hare RAMa!
Язык для индусов?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 21:36 
Hari тогда уж.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 13:20 
Hare RAMa - этот для безопасТной работы с памятью?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено _kp , 25-Апр-22 21:49 
Вместо очередного типа Си-подобного языка, но на деле не совместимого по исходникам, в том числе с автоматическим конвертером, лучше добавить в Си ключи убавляющие неопределенное поведение.

А так есть еще анализаторы исходников, для проверки на эти самые неопределённые места, и велосипедостроения.
Вот помню как то hint, Вы похоже считаете сумму бит в массиве... Для этого есть готовая функция...
Hare так может? Вот и вердикт.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 22:01 
У тебя с этими ключами ничего не соберётся.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено _kp , 25-Апр-22 23:12 
По минимуму, и это достаточно.
После устранения неоднозначностей - соберется.

А если собрать исторический код, без правки, так и сейчас, вагон опций используется.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено keydon , 25-Апр-22 23:22 
> У тебя с этими ключами ничего не соберётся.

Если не соберется, значит там используется злобный хак...постойте! Да это же safe/unsafe как в хрусте!


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 16-Июн-22 15:34 
Hello World! -то соберётся. А это самое главное.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 08:49 
если убрать неопределённое поведение все разработчики компиляторов взвоют поросячьим хрюком, у них на этом все оптимизации

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Типолог без стажа , 27-Апр-22 00:50 
А всё потому, что компилятор ничего не знает о коде и вынужден догадываться. Это и наличие/отсутствие UB как раз и вызывает то, что C/C++ оптимизируется посредственно, а всевозможные императивные убийцы C оптимизируются вообще никак.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 09:03 
Главная проблема языка Си - препроцессор и отсутсвие адекватной замены ему. Это уже ничем не исправить.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено . , 26-Апр-22 20:48 
m4

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 27-Апр-22 10:24 
Пора бы просто прочесть стандарт. Препроцессор - отдельная фаза трансляции.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 14:28 
Именно. А нужно чтобы на фазе компиляции и типобезопасно.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 28-Апр-22 09:55 
Тогда пишется новый "препроцессор", как сделали в компиляторе Vala. Страуструп, кстати, изначально тоже написал фронтэнд, он так и назывался - CFront.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 10:41 
> пишется новый "препроцессор", как сделали в компиляторе

И это уже получается не язык Си, а какой-то другой. А нужно языковое средство. Времена, когда чтобы начать программировать, требовалось написать свой компилятор, ОС и текстовый редактор давно прошли. К счастью или к сожалению.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 28-Апр-22 11:59 
Да, другой язык, но при этом совместимость сохраняется и не обязательно все на новый язык переписывать. Си разрабатывался как замена платоформозависимому ассемблеру, отсюда все "проблемы". Почему бы его и не применять как ассемблер (бэк-энд транслятора), если проблемы мешают.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 23:05 
> Пора бы просто прочесть стандарт. Препроцессор - отдельная фаза трансляции.

И у него черт подери свое видение всего. Например integer'ов. Что создает много дурных ситуаций на ровном месте.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 28-Апр-22 09:59 
Да тут у каждого своё видение всего. Пишешь про препроцессор, который обрабатывает токены, видят инты.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 17:20 
> Да тут у каждого своё видение всего. Пишешь про препроцессор, который обрабатывает
> токены, видят инты.

Все чуть сложнее чем некоторыые пытаются изобразить.
1) Вообще-то препроцессор немного умеет в математику сам, насколько я помню. Целочисленные операции в директивах препроцессора имеют место быть.
2) Он также умеет в булевские операции и условные операнды. В том числе и с целыми числами из 1). Скажем, #if (SOME_CONST == 2) вполне валидно. И более продвинутая математика над этим тоже.

При этом нас начинает колыхать - а что такое "2" в понимании препроцессора. И как эта математика ТАМ работает. И насколько при вычислениях/операциях совпадает с остальным ЯП. Потому что some_var = (SOME_CONST + 10) ничему не противоречит. И было бы очень кстати если бы результат операций был бы симметричен. Но это не совсем так. Целочисленная математика в препроцессоре специфицирована как обычно в сишке, т.е. никаковски.

А препроцессор так то кроме всего прочего еще и почти-тюринг-полный. И единственный лимит на сложность того что он делает это лимит на число уровней вложенности. Гага, токены, с добавкой бульонов и целых могут нехилую логику завернуть. Можно самому compile time assert например сделать. Да, это "всего лишь условная кодогенерация". И все же.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 30-Апр-22 08:32 
Оно действительно сложнее, но при этом достаточно строго формализовано стандартом, что бы при разногласиях мы могли не спрашивать третьего авторитетного Анонима, а там почитать и найти общий язык. Integer types - это отдельная глава ближе к середине, она относится к последующей фазе трансляции. После директивы #if может быть "the controlling constant expression which is evaluated according to the rules of 6.6" и в сноске указано, что нет гарантий одинакового результата для
#if ’z’ - ’a’ == 25
if (’z’ - ’a’ == 25)
и это называется arithmetic constant expression, а не "целочисленные".

Теперь смотрите: оно по разному названо, по разному пишется... а почему разница должна колыхать? Ну, написали так в эпоху "деревянных" машин, сохранилось для совместимости. Не нравится препроцессор, хочется большего, так можно написать свой, добавить свою фазу трансляции.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 05-Май-22 14:33 
> Оно действительно сложнее, но при этом достаточно строго формализовано стандартом, что
> бы при разногласиях мы могли не спрашивать третьего авторитетного Анонима,

Называя вещи своими именами, сишные стандарты сделаны достаточно паршиво и там много implementation defined и нестыковок. В сумме все это приводит к тому что мнение програмера о том как это должно работать разъезжается с тем как оно реально работает и мы огребаем баги и некоторые из них даже вулны. Это не есть хорошо. Откуда и предпосылки потуг в создании вон тех альтернатив.

> а там почитать и найти общий язык. Integer types - это отдельная
> глава ближе к середине, она относится к последующей фазе трансляции.

Однако препроцессор тоже оперирует тем что выглядит ... почти как это самое. Но этим самым не является в том его понимании которое все интуитивно ожидали бы. И такое состояние дел вовсе даже и не фича. Да и сами integer'ы в сях специфицированы так что подарили миру много новых, клевых, годных CVE.

> и это называется arithmetic constant expression, а не "целочисленные".

А таки 25 - это что, не целое число? А коли так - хотелось бы некоей унификации таких вещей. Чтобы эти выражения работали везде одинаково, по одним и тем же правилам, хорошо специфицированным а не implementation defined. Иначе это ведет к куче багов в софте на ровном месте.

> Теперь смотрите: оно по разному названо, по разному пишется...

А выглядит 25 одинаково. Что в препроцессоре, что в int i = 25; Откуда и желание чтобы работало это везде одинаково.

> а почему разница должна колыхать?

Потому что 25 в обоих случаях выглядит одинаково на глаз. Но совсем не факт что идентично себя ведет. Вот вообще не факт. А два набора правил для делания одного и того же по смыслу ведут к бардаку и багам.

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

Только портабельность всего этого либо пойдет лесом, либо это будет БОЛЬШОЕ приключение. А вон тот кодер не сможет просто взять и просто подхватить проект без гимора. И желающих какой там еще препроцессор кастомный билдить будет предсказуемо около ноля. Поэтому реально мыши плачут, колются, но погрызают имеющийся кактус. Это ведет к определенным последствиям. Баги и вулны одни из таковых.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 07-Май-22 13:47 
>> Оно действительно сложнее, но при этом достаточно строго формализовано стандартом, что
>> бы при разногласиях мы могли не спрашивать третьего авторитетного Анонима,
> Называя вещи своими именами, сишные стандарты сделаны достаточно паршиво и там много
> implementation defined и нестыковок. В сумме все это приводит к тому
> что мнение програмера о том как это должно работать разъезжается с
> тем как оно реально работает и мы огребаем баги и некоторые
> из них даже вулны. Это не есть хорошо. Откуда и предпосылки
> потуг в создании вон тех альтернатив.

Мнение программиста, который не читал стандарт, естественно может с ним расходиться. В тему о препроцессоре: ведущий разработчик Пока Линукс заявлял, что #define объявляет переменную. Другой пример, мы писали по стандарту стандартную библиотеку, и, когда взяли тесты от аналогичной из GCC, наша просто под ними заработала. Другое дело, что стандарты меняют и за этим хорошо бы следить.

>> а там почитать и найти общий язык. Integer types - это отдельная
>> глава ближе к середине, она относится к последующей фазе трансляции.
> Однако препроцессор тоже оперирует тем что выглядит ... почти как это самое.
> Но этим самым не является в том его понимании которое все
> интуитивно ожидали бы. И такое состояние дел вовсе даже и не
> фича. Да и сами integer'ы в сях специфицированы так что подарили
> миру много новых, клевых, годных CVE.
>> и это называется arithmetic constant expression, а не "целочисленные".
> А таки 25 - это что, не целое число?

25 это два ASCII символа. Это надо понимать и иметь представление, как транслятор их обрабатывает. В системном программировании принято основываться на знаниях, не на интуиции.

> А коли так
> - хотелось бы некоей унификации таких вещей. Чтобы эти выражения работали
> везде одинаково, по одним и тем же правилам, хорошо специфицированным а
> не implementation defined. Иначе это ведет к куче багов в софте
> на ровном месте.

Так напишите свой язык, всего-то делов. :)

>> Теперь смотрите: оно по разному названо, по разному пишется...
> А выглядит 25 одинаково. Что в препроцессоре, что в int i =
> 25; Откуда и желание чтобы работало это везде одинаково.

Это называется - вырвать из контекста.

>[оверквотинг удален]
> два набора правил для делания одного и того же по смыслу
> ведут к бардаку и багам.
>> Ну, написали так в эпоху "деревянных" машин, сохранилось для совместимости.
>> Не нравится препроцессор, хочется большего, так можно написать свой, добавить свою фазу трансляции.
> Только портабельность всего этого либо пойдет лесом, либо это будет БОЛЬШОЕ приключение.
> А вон тот кодер не сможет просто взять и просто подхватить
> проект без гимора. И желающих какой там еще препроцессор кастомный билдить
> будет предсказуемо около ноля. Поэтому реально мыши плачут, колются, но погрызают
> имеющийся кактус. Это ведет к определенным последствиям. Баги и вулны одни
> из таковых.

Лично Вы сталкивались с ситуацией, когда не могли подхватить проект?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено анонимчик , 25-Апр-22 22:22 
надеюсь, работа над этим языком не скажется отрицательно на развитии sway.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Удивительно , 26-Апр-22 13:25 
Он давно отошел от разработки sway

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено анонимчик , 27-Апр-22 10:06 
в общем главное чтобы sway не скатился.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 25-Апр-22 22:45 
Куда уж проще чем С? Совсем что-ли?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 06:10 
В Си !было не!достаточно восклица!тельных знаков!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 07:56 
эти унылые изобретатели ещё одного убийцы раст и питона не видят разницы между С и С++. питон сделал их очень крутыми программистами.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 00:11 
Очередной Zimbu.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним12345 , 26-Апр-22 08:19 
Не взлетит

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено ng , 26-Апр-22 08:25 
> полное доверие к действиям программиста (выполнять именно то, что указано, без самодеятельности и неявного поведения)

<сарказм>

Дарю Дефолт (Drew DeVault), автор < ... > Свой (Sway) < ... > представил < ... > Харе (Hare)

</сарказм>


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 09:37 
Эм, посмотрел на пример, это какой-то Rust:)
И врямь, что только не делают лишь бы должным образом не изучать Си:)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 12:10 
Дрю и Ко запилили свой язык с префирансом и поэтесами (потому что может). Но тут же примчали хейтеры и давай этому Дрю делать большое дрю. Вопрос: с герани?!!! В школьную программу "заю" не добавили, что так возбуждатся?!

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 13:15 
Нельзя плодить г0вн0 просто "потому что можем". Любые попытки плюнуть в вечность должны быть как минимум ПРОФЕССИОНАЛЬНЫМИ, обоснованными и реально двигающими прогресс. А запилить "ещё одну сишечку" много ума не надо, благо 20 век дал сотни через-жо-пу-вывернутых языков.
Сейчас время перехода от количества к качеству, много языков умерло как раз поэтому - де6uльные концепции отмирают сами собой. И что на этом фоне может предложить "заяц"?? Обилие :::: ?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 13:36 
Это сарказм или вы просто наркоман?

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 26-Апр-22 12:34 
фуфло, а не язык - перед Си ВООБЩЕ НИКАКИХ преимуществ! Язык ради языка. И бесконечные ::::::: - нафуа???

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено ананоша , 26-Апр-22 13:45 
Игрался с ним пару недель назад, какой-то кастрированный зиг получился, не уверен что у него есть шансы

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 16:41 
Кто-то уже группу в тг сделал.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Amonra , 26-Апр-22 18:14 
Уже более 8 тысяч языков программирования придумали после Ады Лавлейс... Может, уже харэ? ах, да, Харэ - это теперь ещё один язык из 8 тысяч... Зараза заразная заражает...

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Ю.Т. , 26-Апр-22 19:15 
> Уже более 8 тысяч языков программирования придумали после Ады Лавлейс...

Серьёзно?? Это больше, чем естественных. )))
(Тех под 7 тысяч, да и то со всеми долинами Новой Гвинеи и реки Нигер.)



"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 26-Апр-22 22:21 
Интересно будет ли он переписывать на нем sourcehut? Там сейчас переход python -> go

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 22:52 
> Интересно будет ли он переписывать на нем sourcehut? Там сейчас переход python -> go

Что, и он тоже? Походу питономакакокапец в разгаре. Может на этом фоне и пришла идея языка, который был бы как сишка которая DeValt'у нравится, но с некоторыми совремнными фичами из других. А что, сама по себе идея вполне рациональная.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Вы забыли заполнить поле Name , 27-Апр-22 04:54 
В C аналога defer не хватает. Обычно используют метки и goto, но они в конце функции, а хочется, чтобы было рядом с местом "аллокации" ресурса.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 27-Апр-22 10:57 
Вроде бы был такой proposal в комитет по стандартизации, и его отклонили/отложили. Сходу не нашёл подробности, было похоже на это https://hal.inria.fr/hal-03090771/document

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено bOOster , 27-Апр-22 08:28 
Жесткая помесь Паскаля, бейсика, С....

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 13:58 
>но проще, чем Си
>неймспейсы
>let без scope
>паскалятинка

Опять мусора в язык напихали и говорят, что проще. Почему у каждого любителя ХМ в голове живёт js?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Вы забыли заполнить поле Name , 27-Апр-22 16:01 
Почему js? Автор много пишет на go, поэтому скорее его влияние присутствует.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 19:11 
И именно поэтому у автора проклёвывается let без части in, как это есть в js и вроде бы как в go нет. Клозетных джаваскриптеров за версту видно.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 19:16 
Надо уже взять и расставить все точки на си. Сделать компилятор из s-выражений на типа сишечном синтаксисе и лисповых макросах. Вуаля, раст, зиг, ви, харэ и прочий хайль становятся резко переоценёнными.

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 27-Апр-22 23:07 
> Надо уже взять и расставить все точки на си. Сделать компилятор из
> s-выражений на типа сишечном синтаксисе и лисповых макросах. Вуаля, раст, зиг,
> ви, харэ и прочий хайль становятся резко переоценёнными.

Да в сишке препроцессор так то есть, загугли "какой-то козел стал чих пых". Правда, это только в студии катило с русским, но на инглише можно зажечь.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 28-Апр-22 16:03 
>Да в сишке препроцессор так то есть

Макросы лиспа - это прокачанный препроцессор, в котором можно нарисовать свой control flow и кучу фич. И на генсимычах можно генерировать не пересекающиеся имена. Так-то да, я через бэкслеш могу навешать foreach-и и так далее, но лиспомакросы имеют доступ не просто к тексту, а к AST. И в AST лезть - по этой задаче проще лиспа нет никого.
Т.е. если некоторым хочется прокачанного си, пускай берут представление на s-выражениях, где можно залезть в ast, а не эти попытки запилить ещё один раст с очередным contributor covenant, типа безопасностью и апелляцией к вчерашним фронтендерам.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 29-Апр-22 18:12 
Лично мне синтаксис S-выражений кажется уродским и невыразительным, так что спасибо но нет.

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

Так что сильно увлекаться такими вещами ну нафиг, такие проекты потом не подлежат совместной разработке и долговременному майнтенансу. Упражнизмы для концептуалов-наколенщиков. Лучше резьбой по дереву займитесь или вышиванием, так от вашего самовыражения вреда окружающим меньше.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 30-Апр-22 16:03 
>И в AST лезть - по этой задаче проще лиспа нет никого.

Сам ЛИСП - концептуальный уродец, на котором можно писать лишь одноэкранники, да и те - ради понтов. Если уж по локти в АСТ, то лучше брать Немерле.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 01-Май-22 03:43 
> Сам ЛИСП - концептуальный уродец

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


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 01-Май-22 13:23 
>> Сам ЛИСП - концептуальный уродец
> По этой фразе однозначно можно...

По твоим подростковым диагнозам можно однозначно сказать - ты ещё салага в ИТ и все твои понты только и держатся на знакомстве с парой экзотичных языков. Чем ты тут гордишься - непонятно, твоих достижений тоже не видно. Так что иди к мамке и скажи, что 3@дротов в сети никто не любит.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 02-Май-22 08:07 
Откройте для себя 10-е правило Гринспена. Я, например, без вот этих всех выступлений могу честно признаться, что лямбда-исчисление Чёрча для меня слишком сложно, а пару лисп-машин не дописал и отправил в мусор, поскольку один раз получился жабоскрипт, а второй -- невесть что. ;)

"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 02-Май-22 11:41 
> Откройте для себя 10-е правило Гринспена. Я, например, без вот этих всех
> выступлений могу честно признаться, что лямбда-исчисление Чёрча для меня слишком сложно

Лисп - это не сложно. Это КОНЦЕПЦИЯ. Причём концепция ещё самого расцвета ИТ, когда любые бредовые идеи шли сразу в байты. Но для промышленного программинга ЛИСП оказался слишком вычурным и крайне неудобным в сопровождении (особенно если использовать главный козырь ЛИСПа - генерация кода). Так что я как бы понимаю всю ущербность ЛИСПа, а говнонимус хочет опять неизвестно кому показать, как он крут. Даже непонятно, смеяться тут или сразу лечить.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено n00by , 03-Май-22 14:45 
>> Откройте для себя 10-е правило Гринспена. Я, например, без вот этих всех
>> выступлений могу честно признаться, что лямбда-исчисление Чёрча для меня слишком сложно
> Лисп - это не сложно. Это КОНЦЕПЦИЯ.

Лямбда Чёрча - это не язык с названием "процессор списков".

> Даже непонятно, смеяться тут или
> сразу лечить.


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Michael Shigorin , 02-Май-22 11:38 
>>И в AST лезть - по этой задаче проще лиспа нет никого.
> Сам ЛИСП - концептуальный уродец, на котором можно писать лишь одноэкранники,
> да и те - ради понтов.

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

> Если уж по локти в АСТ, то лучше брать Немерле.

Дотнетчики никогда не понимали ФП действительно хорошо, допуская фундаментальные косяки.
А що немерле -- то немерле, тут уж "как вы яхту назовёте".


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Vacu923ek , 02-Май-22 11:43 
> Вы со своими "двадцатью языками" -- молодой гуманитарий.

Нда... уровень аргументации - даже не гуманитарий, а где-то уровня "а я тебе сейчас куличики сломаю"! Иди уже проспись, болезный.

>> Если уж по локти в АСТ, то лучше брать Немерле.
> Дотнетчики никогда не понимали ФП действительно хорошо, допуская фундаментальные косяки.
> А що немерле -- то немерле, тут уж "как вы яхту назовёте".

Ну да. Ещё один аргумент того же уровня. Ты точно не с похмелья вылез тут комментить, милейший?


"Дрю ДеВолт представил язык системного программирования Hare"
Отправлено Аноним , 09-Ноя-22 09:08 
ну так сделай, чего ждёшь?