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

Исходное сообщение
"Выпуск языка программирования Hare 0.24.2"

Отправлено opennews , 16-Июл-24 12:07 
Дрю ДеВолт (Drew DeVault), автор пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut, опубликовал выпуск языка программирования Hare 0.24.2 (номер версии образован как 0.YY.Q, где YY - две последние цифры года, а Q - номер квартала). Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си. Исходный код компилятора и инструментария распространяются под лицензией GPLv3, а код стандартной библиотеки под лицензией MPL (Mozilla Public License)...

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


Содержание

Сообщения в этом обсуждении
"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 12:07 
То же самое что TypeScript для JavaScript.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 12:12 
Посмотрел примеры хело ворлда на их сайте и понял, что этот язык мертворождён.

Не постите больше о нём новости.


"Выпуск языка программирования Hare 0.24.2"
Отправлено нах. , 16-Июл-24 12:36 
что-то вот да. Потянуло хрустом с тем же закорючко-синтаксисом но без борова.

А зачем нам неудобочитаемые закорючки вместо си - непонятно.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 12:53 
Это как молодёжь говорит на своём языке. Программировать они тоже хотят на своём. Но у них на получается.

"Выпуск языка программирования Hare 0.24.2"
Отправлено нах. , 16-Июл-24 12:57 
дрюша конечно молод душой, но помогите деду отмотать седую бороду от ножки стола.


"Выпуск языка программирования Hare 0.24.2"
Отправлено ДругойАнон , 16-Июл-24 18:40 
Вы еще бородатый APL не видели

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 18:32 
Это круче JCL с PL/I?

"Выпуск языка программирования Hare 0.24.2"
Отправлено ДругойАнон , 17-Июл-24 18:49 
> Это круче JCL с PL/I?

Пример:

ConvexHull←{
⍝ ⍵: matrix (2 rows) of points - first row:abscissae  second row:ordinates
⍝ return: matrix (2 rows) of points of convex hull

⍝ try:  ConvexHull ⍉9 2⍴1 0,1 ¯10,3 3,2 1,6 3,1 6,3 1,6 1,9 0

     ⎕IO←0
     pts←(⊂⍋⊃↓⍵)⌷[1]⍵                        ⍝sort by x-values:first point←→start vertex
     phs←{                                   ⍝ 12○⍵ polar phase ○¯1>≥○1.  see DFNS
         x y←⊂[1↓⍳⍴⍴⍵]⍵                      ⍝ x and y coordinates.
         x0 xn←1 0=⊂0=x                      ⍝ points on/off y axis.
         top←(x0×○0.5)+xnׯ3○(|y)÷x+x0       ⍝ upper quadrants.
         (0∨.≠⍵)×(1-2×y<0)×top+○x<0          ⍝ other quadrants.
     }
     angles←phs(0 1↓pts)-[0]0⌷[1]pts         ⍝phases(radians) of the vectors
     ixStart←0,1+⊃angles⍳⌊/angles            ⍝start with indexes of first segment
     ixHull←{
         ix0 ix1←¯2↑⍵                        ⍝ix1: index of last point←→last vertex
         v←{⍵+(⍵<0)×○2}phs pts-[0]ix1⌷[1]pts ⍝phases with respect to the last vertex
         other←(⍳1↓⍴pts)~ix0 ix1             ⍝indexes of other points
         angles←|(ix0⊃v)-(⊂other)⌷v              ⍝       _______/\_______
         angles←{f←⍵>○1 ⋄ (⍵×~f)+f×-⍵-○2}angles  ⍝angles (p0-p1)  (p1-px)
         ⍵,(angles⍳⌈/angles)⊃other           ⍝new vertex is where angle is largest
     }⍣{
         0=⊃⌽⍺                               ⍝repeat until first and last vertex coincide
     }ixStart
     (⊂ixHull)⌷[1]pts
}


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 23:20 
Этакий предок MATLAB'а с уклоном в функциональщину и тотемные столбы (⍝?).

Что создатель - Кеннет Айверсон - нашёл в идее "1 функция - 1 символ"? Он сделал новые символы для известных математических операций, ln - слишком длинно, поэтому натуральный логарифм там ⍟.

Но некоторые его изобретения (floor, ceil и iota) прижились.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 05:42 
> Вы еще бородатый APL не видели

Зато, вот, нашлось тут... https://gist.github.com/fogus/9fd771e38c561d868216725dc67e0f57 :)

Да, кто-то натурально сделал из сишки ну вот реально ООП с классами, new, и проч. ЧСХ сишку так можно расширить средствами яп. А почему хари и хрусты на каждый пшик компилер переделывать идут? Гениальности архитектам не хватило? Бывает, кули.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 15-Сен-24 19:31 
>> Вы еще бородатый APL не видели
> Зато, вот, нашлось тут... https://gist.github.com/fogus/9fd771e38c561d868216725dc67e0f57
> :)
> Гениальности архитектам не хватило? Бывает, кули.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 12:59 
> А зачем нам неудобочитаемые закорючки вместо си - непонятно.

Хм, потому что СИ это просто свалка костылей и UB?
И да, в сишном коде хватает закорючек, если добавить еще то дырени будут находится каждые два-три дня


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:39 
> свалка костылей и UB?

Путаешь с С++.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:47 
мало того, что сишка почти целиком состоит из UB, так еще чтобы их все вызубрить, придется покупать стандарт сишки, потому что бесплатно его не достать. Еще раз: платишь бабки, а получаешь pdf, в котором на каждой странице undefined behavior. Прикольный стандарт, правда?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:58 
Это опять про С++. Чистая сишка кристально ясна.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:19 
> Это опять про С++. Чистая сишка кристально ясна.

Может та которая был от K и Р.
Даже 99 это просто груда костылей.
Ну и писаки тоже хороши, что-то не кастится? void* спасет всех!


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 07:00 
> Даже 99 это просто груда костылей.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Прохожий , 17-Июл-24 07:39 
>>> Даже 99 это просто груда костылей.
>Ну тогда какой-нибудь хруст это вообще чистый и дистиллированый апокалиптец

Почему? Что ты бы назвал костылем в Rust?


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 15:44 
> Почему? Что ты бы назвал костылем в Rust?

Вон там try_* для линукскернела сгородили. Надо же, при попытке прогать для кернела для wannabe-системного-яп дошло наконец почему сишники это делали - вот так. А не вон так что нате вам panic и что хотите то и делайте, зато безопасно. Конечно, ОС с упавшим в панику ядро и правда не хакнут, но радости с того? И это азы управления памятью, ать-ать-ать.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 21:02 
>> Почему? Что ты бы назвал костылем в Rust?
> Вон там try_* для линукскернела сгородили. Надо же, при попытке прогать для
> кернела для wannabe-системного-яп дошло наконец почему сишники это делали - вот

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



"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 23:39 
> Не, просто ты, как обычно - что-то, где-то прочитал опой и с
> какого-то перепугу решил, что ядерный аллокатор с "другим" (отличным от юзерспейса)
> интерфейсом - костыли.

Во первых, они вроде как в вооооон той версии сподвиглись аллокатор таки - докостылить. Не прошло и 10 лет.

Во вторых, изменение с try_ для всяких box и проч - именно костыль! Ибо не было в начальной логике ЯП, а потом - заметили что лажа вышла и отыграли решения взад, вернув логику "как у сишечки" по сути. Потому что иначе в системщине - фигня получается, если безопасТно улетать в панику при первом же OOM почему-то не катило. Ну что, пчелы против меда, оказывается, с этим какая-то подстава была? ЗатобезопасТно вылетающий в панику на первой ошибке аллокации кернел почему-то народу не нравится :).

Осталось теперь еще объяснить - чем это отличалось по логике действа от *alloc + проверок, кроме того что сделано как костыль через ж@пу, но эффект ровно тот же.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 21:59 

> Во первых, они вроде как в вооооон той версии сподвиглись аллокатор таки
> - докостылить. Не прошло и 10 лет.
> Во вторых, изменение с try_ для всяких box и проч - именно
> костыль! Ибо не было в начальной логике ЯП, а потом -

Проблемка в том, что все это - до сих пор общедоступно и легко проверяется:
https://lore.kernel.org/lkml/20220805154231.31257-9-ojeda�.../
> This customizes the subset of the Rust standard library `alloc` that

was just imported as-is, mainly by:
> Adding fallible (`try_*`) versions of existing infallible methods

Поэтому я и говорю - прекрати читать <этим самым>, попробуй - глазками. А то у тебя "логика ЯП" в стд-либе для юзверь-спейса оказалсь и прочие "перлы" ...


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:46 
> Это опять про С++. Чистая сишка кристально ясна.

О! Это не ыксперт, а Ыкспертище!
Просто открываешь ту кучу, что по недоразумению называется стандартом, www.dii.uchile.cl/~daespino/files/Iso_C_1999_definition.pdf
Ищешь там слова undefined behavior.
Просветляешься.

Некотрые даже собрали это в список (наверное было много свободного времени))
gist.github.com/Earnestly/7c903f481ff9d29a3dd1


"Выпуск языка программирования Hare 0.24.2"
Отправлено a , 17-Июл-24 12:47 
Смешно.
https://thephd.dev/conformance-should-mean-something-fputc-a...

"Выпуск языка программирования Hare 0.24.2"
Отправлено YetAnotherOnanym , 16-Июл-24 16:15 
> pdf, в котором на каждой странице undefined behavior

Ты, конечно же, можешь привести хотя бы десяток примерв с указанием идущих подряд номеров страниц этого pdf?


"Выпуск языка программирования Hare 0.24.2"
Отправлено голос из леса , 16-Июл-24 21:03 
gist.github.com/Earnestly/7c903f481ff9d29a3dd1

"Выпуск языка программирования Hare 0.24.2"
Отправлено YetAnotherOnanym , 16-Июл-24 23:24 
> gist.github.com/Earnestly/7c903f481ff9d29a3dd1

Ну, давай разберём хотя бы первый пункт этого "списка".
> C99 List of Undefined Behavior
> From N1256: (See http://port70.net/~nsz/c/c99/n1256.html#J.2)
> A "shall" or "shall not" requirement that appears outside of a constraint is violated (clause 4).

Пункт 4.2 полностью выглядит так:
> If a ‘‘shall’’ or ‘‘shall not’’ requirement that appears outside of a constraint is violated, the behavior is undefined.

Чтобы понять его смысл, необходимо прочесть пункт 4.1, в котором определены понятия "shall" и "shall not":
> In this International Standard, ‘‘shall’’ is to be interpreted as a requirement on an implementation or on a program; conversely, ‘‘shall not’’ is to be interpreted as a prohibition.

В переводе на общепонятный п. 4.2 означает: Если "implementation or program" нарушает требования настоящего стандарта, то уже не имеет значения, как именно они работают, и стандарт никак не определяет поведение продуктов, в которых он не соблюдается.
Дальше, извини, читать не стал.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 15:43 
А назовёшь хотя бы три C++-специфичных кейса UB? Нет, весь UB растёт именно из C. И в C при этом нет никаких способов их обходить, как-то автоматическое управление памятью, checked math, да и вообще банальный range based for loop.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 17:46 
union {
    float f;
    i32 I;
}
Например ок в С и не ок в с++.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 18:23 
Это не UB, а разница между разными языками программирования. UB - это неопределённое поведение. А здесь оно чётко определено.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 20:26 
Ага, определено так что С++ компилятор может скомпилировать нормально, а может херню выдать - никакой гарантии нет, использовать union в С++ просто нельзя, но в языке есть. Хотя пока вроде как работает. Но это не точно.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 20:17 
а чо в с++ будет с этим?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Совершенно другой аноним , 16-Июл-24 18:35 
Вообще, в C23, который должен скоро выйти, checked math завезли.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 18:46 
> Вообще, в C23, который должен скоро выйти, checked math завезли.

А в ядре он появится когда? Лет через 10?
От окамемевшего С89 отказались только в 2021 году. 2021 год, Карл!
Так что С23 стоит ждать где-то в году 35м. Если доживем, конечно.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Совершенно другой аноним , 17-Июл-24 08:47 
> > А в ядре он появится когда? Лет через 10?

От окамемевшего С89 отказались только в 2021 году. 2021 год, Карл!

Э... ну это вопрос, наверное, к Линусу, почему он там не хотел раньше переходить. Может, потому, что хватало того самого минимума из С89, а чего не хватало - специалисты уровня разработчиков ядра ОС вполне себе могут сами реализовать в любом удобном им виде.

Например, нестандартные checked math в виде builtin-ов существуют как минимум с версии gcc 5.1.0 (https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Integer-Overflo...). А возможно и в более ранних версиях. Как минимум есть подозрение, что с версии gcc 5.0. А до того делались, скорее всего, ассемблерными вставками, для архитектуры x86, например:

static inline int __builtin_sadd_overflow(int a, int b, int *c)
{
  _Bool p;

  asm __volatile__("addl %2, %0\n\tseto %1" : "+g"(a) , "=g"(p) : "g"(b));

  *c = a;

  return p;
}

а то и вообще, переносимым, в общем, способом, без всякой ассемблерной магии:

static inline int __builtin_sadd_overflow(int a, int b, int *c)
{
  *c = a + b;
  return (((*c ^ a) & (*c ^ b)) < 0);
}

Из того, что добавили в С99 по сравнению с C89, как по мне, это разве что designated initializers очень удобная вещь и составные константы, хотя второе уже сильно на любителя, ещё стандартизировали inline. Остальное, не очень то и нужно, особенно в разных ядрах ОС.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 15:38 
> От окамемевшего С89 отказались только в 2021 году. 2021 год, Карл!

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

> Так что С23 стоит ждать где-то в году 35м. Если доживем, конечно.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено YetAnotherOnanym , 16-Июл-24 16:22 
Ещё один неосилятор Си, которому виноваты все, от K&R до ISO/IEC WG14 в полном составе.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 16:45 
> Ещё один неосилятор Си, которому виноваты все, от K&R до ISO/IEC WG14 в полном составе.

Какой громкий пук!
Просто восхитительно.

Для того чтобы говорить "нужник вида 'дырка в земле' это устарело" не нужно им пользоваться массово.
Достаточно одного раза.
Мне, к сожалению, довелось писать под СИ лет десять назад. Много кода.
Ночные забеги с дебагом тк кто-то нагадил в память, ну удовольствия в этом мало.
Слава богу машине, свалил из этого болота.



"Выпуск языка программирования Hare 0.24.2"
Отправлено YetAnotherOnanym , 16-Июл-24 19:17 
> кто-то нагадил в память

Вот-вот.


"Выпуск языка программирования Hare 0.24.2"
Отправлено vitalif , 16-Июл-24 19:52 
Сам и нагадил))

"Выпуск языка программирования Hare 0.24.2"
Отправлено Прохожий , 17-Июл-24 07:13 
“Вот-вот“ означает, что с тобой бы такого никогда не случилось? Все профессиональные системные программисты на Си - лохи, один ты д'Артаньян?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Илья , 17-Июл-24 03:09 
А есть смысл осилять? Можно же просто взять Раст или с#

"Выпуск языка программирования Hare 0.24.2"
Отправлено Прохожий , 17-Июл-24 07:16 
Проблема в том, что огромное количество местных экспертов едва-едва Си осилили. А ты им куда более сложные языки программирования предлагаешь освоить.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 21:10 
>Потянуло хрустом с тем же закорючко-синтаксисом но без борова.

Уровень познания языка: споткнулись на синтаксисе. Раст есть за что ругать, но ситнаксис - едва ли не последняя вещь.


"Выпуск языка программирования Hare 0.24.2"
Отправлено ИмяХ , 16-Июл-24 12:49 
Не совсем мертворожден, но судя по логотипу людей написавших сойдут с ума

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:11 
Но Hare позволяет достичь до максимальной производительности!

"Выпуск языка программирования Hare 0.24.2"
Отправлено Прохожий , 17-Июл-24 07:19 
Анониму (65). А в чем ты здесь видишь проблему?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Прохожий , 17-Июл-24 09:15 
Не позволяет, потому что основан на qbe, который, в свою очередь, по заявлению авторов языка генерирует код на 25-75% более медленный, чем LLVM.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 15:09 
Интересно что в примере хелловорлда "Привет мир!" стал "Привіт, світе!"
Так что пускай автор сам пишет на своём Hare.

https://web.archive.org/web/20210625072311/https://harelang.org/


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 01:36 
> Интересно что в примере хелловорлда "Привет мир!" стал "Привіт, світе!"

Всё правильно сделали.



"Выпуск языка программирования Hare 0.24.2"
Отправлено zeecape , 16-Июл-24 12:14 
Hare плодить не нужные языки. С - для старых профи. С++ - для молодых профи. Rust - для зумеров пока-не-но-скоро-станут-профи.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:36 
Си - для любителей повылазить за буфер (других профи у меня для вас нет).

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:00 
И часто линукс у вас вылазит за буфер? И в целом, какой софт такое часто делает? Мне кажется что программы на С вполне быстры и с отказоустойчивостью там вроде вполне нормально все. Не чаще случаются ошибки такие как переполнение буфера чем и на других языках.Это уже от программиста зависит больше.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:56 
А сколько раз в неделю нужно чтобы сказать часто)?

Вот типичнейший пример
opennet.ru/opennews/art.shtml?num=59867
запись значения за пределы выделенного буфера -> права root в большинстве дистрибутивов Linux

Типичная дыряшка.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 16:24 
Если я постоянно попадаю молотком по пальцам — то вроде бы и сам виноват. Но если после покупки другого молодка ситуация выправляется — повод задуматься о разнице между молотками.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 17:15 
> Если я постоянно попадаю молотком по пальцам — то вроде бы и сам виноват.
> Но если после покупки другого молодка ситуация выправляется — повод задуматься
> о разнице между молотками.

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

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

А тут все косости и кривости инструмента, определенная категория программеров, выпячивают как достоинства:
"ты только представь, я могу засунуть сверло себе в нос и сделать роскомнадзор!",
"я потерял бур и использовал палочку динамита, теперь через дырку в стенке какиры украли библиотеку пользователя",
"на мой инструмент можно поставить диск от болгарки, и да!, я уверен, что это безопасно"


"Выпуск языка программирования Hare 0.24.2"
Отправлено YetAnotherOnanym , 17-Июл-24 00:01 
> Тут у молотка голова может улететь, просто в зависимости от того в
> какой цвет покрашена ручка и какой там логотип.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 18:48 
> У хорошего мастера рукоять молотка выточена из древесины твёрдой породы и точно подогнана под форму отверстия в головке, а сама головка намертво зафиксирована на рукояти плотно вбитым клином.

Да именно так!
СИшка - это молоток у которого ручка может быть из мореного дуба, а может из навоза и соломы.
Кто знает. Ведь в так называемом 'стандарте' написано "ХЗ как сделать, разбирайтесь сами"
Может голова там тоже из пластилина?

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

Слава богу в нормальных языках от такого отказываются.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 17:16 
Я уже молчу про необязательность реализации отдельных модулей.
И при этом называть получившиеся "компилятор С99"
А когда просишь скажите какой опенсорсный компилятор реализует язык полностью, то начинаются какие-то виляния.
А потому что их нет! (с)
en.cppreference.com/w/c/compiler_support

"Выпуск языка программирования Hare 0.24.2"
Отправлено Совершенно другой аноним , 16-Июл-24 19:15 
К сожалению не всему, что по приведённой Вами ссылке написано можно доверять.

Например для "C99 core language features" есть запись про "Variably-modified (VM) types" (N2778).

Идём на сайт стандарта и смотрим это предложение, для начала на его заголовок:

JTC1/SC22/WG14 - N2778
Title: Variably-Modified Types
Author: Martin Uecker, University of Göttingen
Date: 2021-07-11
      ^^^^^^^^^^

И видим, что оно поступило в 2021 году, и в C99 оно не могло никак попасть. Далее, на сайте стандарта смотрим один из черновиков стандарта С23 - N3096 working draft — April 1, 2023 ISO/IEC 9899:2023 (E), и видим там, что оно применено, в контексте C23.

Далее по существу, если почитать данное предложение, то там предлагают "we propose to make variably-modified types mandatory in C23".


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

> там предлагают "we propose to make variably-modified types mandatory in C23".

Это не потому что их не было в C99, а потому что их успели сделать необязательными в C11


"Выпуск языка программирования Hare 0.24.2"
Отправлено _kp , 16-Июл-24 17:20 
первый был микроскоп

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 18:24 
Я понимаю, что при слове «молоток» нужно искромётно пошутить про микроскоп (хотя местные ни того, ни другого в руках не держали), но микроскоп — это тоже инструмент, и он может быть плохим, дрянным и просто опасным для жизни (поинтересуйтесь ускоряющим напряжением у электронного микроскопа).

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 23:46 
> при слове «молоток» нужно искромётно пошутить про микроскоп (хотя местные ни того, ни другого в руках не держали)

Стесняюсь спросить. В наше позднесоветское школьное время и молоток в руках держали на трудах и в микроскоп пытались что-то разглядеть на уроках биологии. В постсоветских школах всё это выкинуто?


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 00:11 
Уроки труда в 2010 выкинуты. Собираются вернуть, но какое импортозамещённое китайское качество будет у инструментов, могу догадаться.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 15:48 
> Уроки труда в 2010 выкинуты. Собираются вернуть, но какое импортозамещённое китайское качество
> будет у инструментов, могу догадаться.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 01:45 
> Уроки труда в 2010 выкинуты

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

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 05:54 
> Я помню что нас на уроках труда то какие-то гвозди заставляли выпрямлять,
> то ржавую проволоку чистить. Не думаю, чтобы у меня была прямо
> совсем уникальная школа.

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

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Совершенно другой аноним , 18-Июл-24 09:00 
>> Я помню что нас на уроках труда то какие-то гвозди заставляли выпрямлять,
>> то ржавую проволоку чистить. Не думаю, чтобы у меня была прямо
>> совсем уникальная школа.
> Мне пару раз в жизни даже доверяли там не очень убитый рубанок.
> Правда, и его все равно сперва пришлось пересобрать до того как
> он заработал. Не, как им орудовать правильно - не показали почти.
> Долбоклюев много, а учитель 1, урок 1 в неделю, на всех
> благодати не хватает хоть тресни. Уделить каждому минуту в неделю -
> да, вы сразу станете столяром экстра класса. Ну и вот на
> что убито время? Не, таким скиллом даже на жрат не заработаешь.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 22:10 
У школьников просто рабочие часы бесплатные, и по этому их чем только не нагружают. К выпусному классу школьник(если занимается) уже вполне может сносно коммерчески программировать, как минимум на уровне джуна, паять всякую электронику, рисовать и так далее. Но на практике, большинство выпускников ничего не умеют, зря что ли в школе штаны просиживали?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 25-Июл-24 19:16 
> Прошу прощения, что вмешиваюсь, но от уроков физики в школе Вы тоже
> ожидали, что Вам дадут знания на уровне чуть ниже Стивена Хокинга,

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

> а на уроках музыки научат сочинять музыку чуть хуже Чайковского?

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

> Вообще-то школа немного не про это, а про то, чтобы дать базис,
> чтобы ребёнок примерно знал про то, что это всё вообще такое
> и имел общее представление о мире.

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

И какую базу я получил возякнув пару раз рубанком - тоже фиг бы его разберет.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 23:38 
> Не чаще случаются ошибки такие как переполнение буфера чем и на других языках.

Но не на всех "других языках". В том же уже набившем оскомину полуторагодичной давности отчете гугловских андроид-разработчиков об использовании раста в разработке системных компонент андроида заявляется, что не допустили ни одной ошибки работы с памятью (т.е. не только выхода за пределы буфера) за несколько лет использования этого самого раста. Даже жирным шрифтом выделили это утверждение: "...To date, there have been zero memory safety vulnerabilities discovered in Android’s Rust code..."


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 13:07 
О других типах ошибок и уязвимостей они конечно же тактично умолчали.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 19:00 
Разве?
Во-первых, 70% CVE - это ошибки, от которых рас защищает.
Во-вторых, защищать от остальных (логическая ошибка, копипаста кода) он и не обещал.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Серб , 17-Июл-24 13:16 
И по этому представители google в 2024 году сказали, что в обозримом будущем не собираются отказываться от C/C++ и выделили 1М на улучшение интеграции rust с C/C++?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 18:59 
А ты ту новость читал?
opennet.ru/opennews/art.shtml?num=60556
и первоисточник security.googleblog.com/2024/02/improving-interoperability-between-rust-and-c.html

Вот что пишет гугл  
"At the time, Rust was already in wide use across Android and other Google products. ...
Rust is one of the strongest tools we have to address memory safety security issues."
Т.е Раст у них уже применяется массово и это один из самых полезных инструментов.

"We are delighted to announce that Google has provided a grant of $1 million to the Rust Foundation to support efforts that will improve the ability of Rust code to interoperate with existing legacy C++ codebases."
А тут речь идет о легаси кодах. От которых действительно отказываться не хотят - тк дорого.
Но если добавить туда секретный ингредиент - то они станут гораздо лучше и менее дырявыми.

“Based on historical vulnerability density statistics, Rust has proactively prevented hundreds of vulnerabilities from impacting the Android ecosystem. This investment aims to expand the adoption of Rust across various components of the platform.”
Думаю тут комментарии излишни.

И наконец-то мы пришли к тому "а зачем это делается?!" все-таки лям баксов это не мало.
As these improvements have continued, we’ve seen a reduction in the barriers to adoption and accelerated adoption of Rust.
Т.е это все затеяли чтобы ускорить внедрение Раста!

Подытожим.
Ты случайно или намеренно исказил предпосылки и причины.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Серб , 17-Июл-24 19:11 
А что ты это не привел?

“While Rust may not be suitable for all product applications, prioritizing seamless interoperability with C++ will accelerate wider community adoption, thereby aligning with the industry goals of improving memory safety.” – Royal Hansen, Google Vice President of Safety & Security


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 19:17 
> “While Rust may not be suitable for all product applications, prioritizing seamless
> interoperability with C++ will accelerate wider community adoption, thereby aligning with
> the industry goals of improving memory safety.” – Royal Hansen, Google
> Vice President of Safety & Security

Оно ж не противоречит тому что я написал)

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

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 00:14 
Сразу видно евангилиста.

Тут как раз и имелось ввиду, что rust полностью заменить C/C++ не может. Если ты этого не видишь, то твои глаза застилает слепая вера.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 21:08 
>И часто линукс у вас вылазит за буфер?

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

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

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 18:43 
В то время когда я программировал на С, ничего никуда не вылезало, потому, что вначале думаешь над данными потом делаешь, а не полагаешься на то, что компилятор за тебя все сделает

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 23:49 
Неуловимый Джо? Или создатель qmail'а почтил нас своим присутствием? Дэниел Бернштейн, Вы ли это?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 21:15 
Расскажи это авторам Linux для начала.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:05 
Я начал изучать Си и С++ одновременно в ВУЗе. Я какой профи, стары или молодой?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 15:21 
Не ломай ему картину мира, а то сегфолтнется.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Бывалый Смузихлёб , 16-Июл-24 19:20 
ещё не стар, но уже и не молод. В общем, и там и там - мимо )

"Выпуск языка программирования Hare 0.24.2"
Отправлено Ося Бендер , 16-Июл-24 12:18 
Название прикольное. харЭ, я сказал!
Проще Си, может быть только Си. Фор-ич уже добавили, ждем-с классы, модули и т.д.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 12:44 
> Фор-ич уже добавили

где?


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:43 
Так в новсти же:
"Добавлен синтаксис для определения циклов "for-each", упрощающих перебор элементов массивов и срезов."

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 12:37 
Когда новая версия Nemerle?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Вован , 16-Июл-24 12:51 
Почему не собирается? Такая же ошибка была и на предыдущих версиях

Syntax error: unexpected 'error' at rt/+linux/+x86_64.ha:44:34, expected '{'
make: *** [makefiles/linux.x86_64.mk:11: .cache/rt.ssa] Error 1


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 05:58 
> Почему не собирается? Такая же ошибка была и на предыдущих версиях
> Syntax error: unexpected 'error' at rt/+linux/+x86_64.ha:44:34, expected '{'
> make: *** [makefiles/linux.x86_64.mk:11: .cache/rt.ssa] Error 1

Попробуй распаковывать .ha одноименным архиватором :)


"Выпуск языка программирования Hare 0.24.2"
Отправлено nume , 16-Июл-24 13:19 
Снова эти let, а-а-а!!!

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:29 
Лучше бы sr.htом занимался.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:31 
Молодец Дрю!

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 13:47 
Дрю, давай механизм наподобие alias this из BetterC, шаблоны не хуже, если сможешь, даже лучше.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 17:49 
>BetterC

Уот из ит?


"Выпуск языка программирования Hare 0.24.2"
Отправлено 9392012938к8282 , 16-Июл-24 18:20 
Есть кстати первоапрельский патчсет где добавляются шаблоны в Hare.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Швондик , 16-Июл-24 13:53 
ТО что надо! Я как раз хочу написать DOS для z280

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 16:26 
Для Z280 сам бог велел писать на ассемблере.
Но ты ведь ни на чём не напишешь всё равно.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Швондик , 16-Июл-24 17:43 
Конечно же я пошутил. DOS я собираюсь делать на ассумблере, а если брать в основу исходники CP/M-3 то большая часть работы уже сделана:
https://oldcomputers.dyndns.org/public/pub/rechner/zilog/z28...

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 07:13 
> Конечно же я пошутил. DOS я собираюсь делать на ассумблере, а если
> брать в основу исходники CP/M-3 то большая часть работы уже сделана:

Ну да, самое время в 2024 писать CP/M... :). Я конечно понимаю что некоторые медленно запрягают, но, кажется, вас уже обошли на целый круг.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Швондик , 17-Июл-24 10:57 
А кто обошел, чем обошли? я даже не слыхал, можно ссылку?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 05:35 
> А кто обошел, чем обошли? я даже не слыхал, можно ссылку?

С тех пор во первых майкрософт скопипастил и улучшил - как MSDOS. Более того - скопипастил не у себя так что еще и суд продул. С треском! Заплптив сколько-то миллионов оригинальному автору.

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

А на круг обошли - многочисленные task switching многозадачки, в изобилии нагенеренные студнями на все вкусы. Как бы более другой уровень технологии ОСостроения уже.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Швондик , 18-Июл-24 13:57 
А какое отношение майкрософт с MSDOS имеет к z280? Вы слышали звон, но не поняли где он!

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 19-Июл-24 12:36 
В Z280 есть MMU и прочее, а вы туда дос хотите чтобы все это игнорировать.

Туда что-то уровня OS/2 просится...


"Выпуск языка программирования Hare 0.24.2"
Отправлено Швондик , 19-Июл-24 14:28 
Вы для каких задач мне советуете OS/2 для z280? Опять - слышу звон, но не знаю где он! Или это такой толстый троллинг?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 16:34 
Зачем DOS? Лучше какой-нить mini NIX.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Швондик , 16-Июл-24 17:58 
ну NIX на ассумблере мне не подсилу, у меня вообще мозги куриные

"Выпуск языка программирования Hare 0.24.2"
Отправлено Швондик , 21-Июл-24 11:26 
уже есть, пользуйтесь
https://github.com/hperaza/UZI180

"Выпуск языка программирования Hare 0.24.2"
Отправлено Wed , 16-Июл-24 14:06 
Мне больше нравится Nim вместо C.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:11 
Единственная норма это zig

"Выпуск языка программирования Hare 0.24.2"
Отправлено pavlinux , 16-Июл-24 14:10 
>  ..., но проще, чем Си.


fn example(x: int, y: int = 34) void = {
    // ...
};
example(12);    //эквивалентно вызову example(12, 34);


Нуфуя создавать ф-цию я ДВУМЯ аргументами, когда один из них всегда константа?!!!


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:13 
Ты программировать то умеешь? Это дефолтное значение, а не константа.

"Выпуск языка программирования Hare 0.24.2"
Отправлено pavlinux , 16-Июл-24 14:22 
> Это дефолтное значение, а не константа.

это называется константа.  


"Выпуск языка программирования Hare 0.24.2"
Отправлено Ананимус , 16-Июл-24 14:24 
> гoвнoкoдя, прикинь, это называется константа.  

Это называется опциональные параметры, лол. Тебя не смущает что open() имеет в одном случае два аргумента, а в другом -- три?


"Выпуск языка программирования Hare 0.24.2"
Отправлено pavlinux , 16-Июл-24 14:31 
>> гoвнoкoдя, прикинь, это называется константа.
> а в другом -- три?

Там "по дефолту" не написано 34,   va_arg это отдельная тема, тоже корявость С  


"Выпуск языка программирования Hare 0.24.2"
Отправлено Ананимус , 16-Июл-24 15:14 
> Там "по дефолту" не написано 34,   va_arg это отдельная тема, тоже корявость С  

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено pavlinux , 16-Июл-24 16:40 
>> это довольно жирный плюс C

С c плюсами это в другой теме  


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 09:19 
> Потому что та же самая задача в C реализована через va_arg. И
> нет, это не корявость, это довольно жирный плюс C, которого не
> хватает в том же Rust.

А что хрустики делают при реализации чего-то типа printf? oO

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Ананимус , 17-Июл-24 11:59 
> А что хрустики делают при реализации чего-то типа printf? oO

Через макросы. Сильная сторона раста это годные макросы с нормальным доступом к AST, что позволяет делать много прикольных штук.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 13:09 
Годные макросы - это у Zig.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 05:37 
> Годные макросы - это у Zig.

Эти да, довели идею до абсолюта - все компил тайм вычисления с тем же синтаксисом что основной ЯП. Что, хрустики, а вам так слабо было. Нагенерили какой-то блевоты. А надо то было - вот так.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Ананимус , 18-Июл-24 22:33 
>  Годные макросы - это у Zig.

Они и у раста годные. Тут не то чтобы только один может быть.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:12 
Отлично! Когда на него перепишут линукс?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:13 
Никогда.  

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 14:24 
Уже: https://drewdevault.com/2024/05/24/2024-05-24-Bunnix.html

"Выпуск языка программирования Hare 0.24.2"
Отправлено _ , 16-Июл-24 17:45 
>Отлично! Когда на него перепишут линукс?

В очередь СД!!!
Вначале - на раст!
Потом на JS\TS!
А вот тут уже занимайте очередь, мордобой разрешён! :-)


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 15:01 
Есть вообще целый феномен языков-убийц С, напирающих на простоту. Они не уточняют, что за простота (это как безопасность - безопасность от вас с помощью DRM - тоже безопасность), а просты они для создания языка. С точки зрения пользователя это примитивность.

"There are no macros, generics, or metaprogramming features"
"Omitting generics (and similar features) in Hare is a deliberate design choice which simplifies the language considerably and is more aligned with its design roots in C."
"We use terms like "borrow" and "ownership" to reason about memory, but this is not enforced at the language level. The compiler does not prevent double-free or use-after-free bugs."

То есть в языке отказались от фич C++, D, Rust, от Zig'овского comptime, даже от C-макросов, отказались от тесной совместимости с C (только обычный FFI). Вот вам C в синтаксисе Go (заяц, суслик - почти одно и то же) и даже с defer'ом.

Автора понять и простить - создавать язык с нуля веселее, чем разгребать проблемы других (как делают в cppfront и в Circle C++, например), а до скучной стадии языку не обязательно доживать. Но зачем пользователям клевать на ограниченность языка, преподносимую как преимущество? Hare хочет быть как Go, но FAANG-компании за ним почему-то не видно.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 16:14 
И ещё - в ядре линукса в 60 файлах используется _Generic. Язык расширили дженериками не без помощи макросов образца 1973 года и жить стало немного лучше.

systemd написан даже не с defer, а с RAII[1]. И с виртуальными методами. Только не средствами языка, а вручную, макросами и расширениями языка.

То есть они не находят какой-то правильной архитектурной чистоты в старом C. Они видят ограничения языка, которые кое-как обходятся отступлениями от стандарта, макросами и паттернами проектирования. На кого рассчитаны слова про "aligned with its design roots"?

[1] https://github.com/systemd/systemd/blob/main/src/fundamental...
[2] https://github.com/systemd/systemd/blob/main/src/network/tc/...


"Выпуск языка программирования Hare 0.24.2"
Отправлено 9392012938к8282 , 16-Июл-24 18:26 
_Generic в C позволяет перегружать. Это не то, что обычно имеется в виду под дженериками (параметрический полиморфизм).

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 22:46 
Хм, да, это ad-hoc-полиморфизм и лучше _Generic дженериками не называть.

Кстати, в Hare перегрузки нет.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 21:18 
Зато можно спать спокойно, не взлетит. Нет у них таких денег на рекламу, как у гугла с голангом.

"Выпуск языка программирования Hare 0.24.2"
Отправлено zog , 16-Июл-24 16:31 
> for (let item .. items) {

Почему они используют упавшее двоеточие? Чтобы было не так, как везде?


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 18:05 
Автор не знает, как везде. Потому и взялся за свой язык.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 19:07 
> x: int, y: int = 34

Его Вирт покусал?
Нет, не то что бы что-то плохое, но ЗАЧЕМ, если мы пишем замену сишечке?


"Выпуск языка программирования Hare 0.24.2"
Отправлено 9392012938к8282 , 16-Июл-24 20:51 
Потому что в этом случае декларации читаются слева направо, а не по спирали, как в C.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 21:32 
Я не спорю. Вообще по факту особой разницы нет.
Просто зачем трындеть про сишечку?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 23:24 
2ALL: спираль всё-таки неудобна, но её можно исправить с сохранением преемственности с C.

Вместо let и const без типов тогда будут auto и const auto.


int[] a;      // dynamic array of ints
int[4][3] b;  // array of 3 arrays of 4 ints each
int[][5] c;   // array of 5 dynamic arrays of ints.
int*[]*[3] d; // array of 3 pointers to dynamic arrays of pointers to ints
int[]* e;     // pointer to dynamic array of ints

void f(int);
void function(int) fp = &f; // fp is a pointer to a function taking an int


https://dlang.org/spec/function.html#function-pointers
https://dlang.org/spec/arrays.html#declarations

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 00:54 
Ну в принципе достаточно яркий пример синтаксиса, чтобы понять, почему дишечка мертворождённая.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 03:07 
> почему дишечка мертворождённая

Не из-за синтаксиса же. Но я хотел указать правильное начало - справа от имени переменной нет частей её типа. Скобки массива перенесены влево, как в C# и Java. А ты углубился в то, что они правило "читать тип справа налево" довели до абсурда:


    int[1][10] x;
    auto y = new int[1][10];
    auto z = new int[][](10,1);
    
    x[9][0] = 1; // OK
    y[9][0] = 1; // OK
    z[9][0] = 1; // OK


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 16-Июл-24 20:36 
Всё это не нужно. Потому что текстовые AI модели про этот язык ничего не знают. И не надо говорить, что вы по старинке кодите. Даже в захудалых компаниях сейчас есть prompt engineer.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Прохожий , 17-Июл-24 09:35 
Как показывает мой личный опыт, часто (не всегда) ИИ генерирует или неполный код, или вообще какую-то ахинею. Поэтому всё равно приходится самому в итоге вникать в тематику.

"Выпуск языка программирования Hare 0.24.2"
Отправлено kusb reg , 17-Июл-24 22:12 
Они могут знать даже про те языки, которых не существует.

"Выпуск языка программирования Hare 0.24.2"
Отправлено Прохожий , 17-Июл-24 09:31 
Смешанные впечатления о языке.

С одной стороны, вроде бы, боремся за скорость, с другой - используем qbe ради простоты пронимания всего фреймворка. По заявлению авторов qbe генерирует на 25-75% более медленный код, чем LLVM.

Далее. Декларируем приверженность открытому коду, не желая поддерживать проприетарные ОС. Но при это не поощряем использовать этот самый открытый код, чем оправдываем отсутствие менеджера пакетов.

Дженерики, которые как бы упрощают разработку, отсутствуют. Автоматическое управление памятью отсутствует. Зато есть defer, как в Golang.

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


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 17-Июл-24 11:08 
> Не уверен, что надо сколь-либо внимательно следить за развитием этого языка.

Достаточно посмотреть пример helloworld на главной странице, чтобы понять это.


"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 18:54 
Да что с ним не так?

"Выпуск языка программирования Hare 0.24.2"
Отправлено Аноним , 18-Июл-24 21:00 
Казалось бы, двадцать первый век, прогресс, но язык как-будьто из восьмидесятых. Прорывных идей в языке не видно, но язык до сих пор не стабилен(перепишите код при переходе на новую версию). Вместо работы, например над алгебраическими типами данных, автор делает foreach как костыль для отдельного случая, гораздо логичнее было бы дать рекурсию, вместе с map, fold, iter. В лучшем случае, автор переизобретёт условный паскаль, который и так есть, и мало кому нужен. Казалось бы есть куча разных идей, будь-то системный язык с зависимыми типами как ATS, оптимизирующий компилятор, как Clean, эффекты, как Eff или Koka, и так далее, но автор с умным видом продвигает посредственность.

"Выпуск языка программирования Hare 0.24.2"
Отправлено randomize , 20-Июл-24 15:17 
> Hare fits on a 3½" floppy disc — these will be available for purchase when Hare 1.0 is released!

Дрю делал язык для троллинга?