The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Hare 0.26"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск языка программирования Hare 0.26"  +/
Сообщение от opennews (??), 13-Фев-26, 23:34 
Дрю ДеВолт (Drew DeVault), автор пользовательского окружения Sway, почтового клиента Aerc и платформы совместной разработки SourceHut, опубликовал выпуск языка программирования Hare 0.26.0. Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си. Исходный код компилятора и инструментария распространяются под лицензией GPLv3, а код стандартной библиотеки под лицензией MPL (Mozilla Public License)...

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от Аноним (1), 13-Фев-26, 23:34    Скрыто ботом-модератором+2 +/
Ответить | Правка | Наверх | Cообщить модератору

2. Сообщение от Аркагоблин (?), 13-Фев-26, 23:44   +2 +/
Лицензия отвратительная для стандартных либов. Для них принято что-то пермиссивное ставить. И желательно без атрибуции, потому что никто нормальный не будет специально выискивать что там под какой лицензией и писать "Hello world написан на Hare. Hare под MPL и его написал Имя Автора". Люди воспринимают системные библиотеки как нечто базовое и фундаментальное, а не как произведение.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #12, #32

9. Сообщение от Аноним (9), 14-Фев-26, 01:00   –1 +/
> Добавлена возможность использования присвоения значению "_" для игнорирования обработки ошибок

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #21, #34, #48

12. Сообщение от Аноним (12), 14-Фев-26, 01:26   +2 +/
Ну вот стандартная GLibc как-то не пермиссивная.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #37

13. Сообщение от Аноним (13), 14-Фев-26, 01:37   –3 +/
> ручное управление памятью

А УБ? УБ есть? Если УБ нет, опеннетовские анонимы будут страдать! Надо в стандарте УБ прописать!!!11

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #20

16. Сообщение от Аноним (16), 14-Фев-26, 03:22   +2 +/
Написано ж что он должен быть проще сей, а он по описанию сложнее сей.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #31, #56

17. Сообщение от Имя (?), 14-Фев-26, 03:58   +/
нет в списке godbolt.org
Ответить | Правка | Наверх | Cообщить модератору

20. Сообщение от Аноним (20), 14-Фев-26, 07:15   –1 +/
Усли UB в стандарте, то это уже не UB.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #13 Ответы: #30

21. Сообщение от Смузихлеб забывший пароль (?), 14-Фев-26, 07:17   +/
Какими-то там ошибками отвлекать уважаемых программистов от написания ПО!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

23. Сообщение от Смузихлеб забывший пароль (?), 14-Фев-26, 07:26   +/
>  возможность явного оставления переменных и полей в структурах
> в неинициализированном состоянии,
> через присвоения им значения "@undefined"

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #24

24. Сообщение от Аноним (24), 14-Фев-26, 07:53   +/
Да, абсурд для новых языков
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #23 Ответы: #49

25. Сообщение от Аноним (25), 14-Фев-26, 08:39   +/
> может быть возвращено при прерывании цикла выражением "break значение" или через указание "yield значение_по_умолчанию" в прикреплённом к циклу блоке "else{...}", который вызывается, если цикл не был прерван через break.

И это всё, чтобы поизображать ограничения из функциональных языков (обойтись одним присваиванием), где нельзя написать лучше, если императивщины не хватает? Только там было бы ноль ключевых слов для return'а, а здесь уже три.

Непонятно, откуда ещё item.key взялся.

Чем-то похоже на изобретание новых циклов в 70-е, когда придумывали ключевые слова, чтобы от if в середине блока избавиться.
https://en.wikipedia.org/wiki/Control_flow#Middle_test

Ответить | Правка | Наверх | Cообщить модератору

27. Сообщение от Аноним (27), 14-Фев-26, 09:05   +/
>Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си.

Ц когда то тоже был простым, но это исправили ;)
И Харю исправят ;)

Ответить | Правка | Наверх | Cообщить модератору

30. Сообщение от Аноним (30), 14-Фев-26, 09:29   +/
Отсюда делаем вывод шта, в чыстой сишке нет UB.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #20

31. Сообщение от Аноним (30), 14-Фев-26, 09:31    Скрыто ботом-модератором+/
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

32. Сообщение от Аноним (32), 14-Фев-26, 10:39   +1 +/
MPL - это не вирусная лицензия. Копилефтная, но не вирусная - код, использующий библиотеку под MPL, не обязан быть лицензирован под MPL. И Дрюша ещё тот копираст, у него в блоге высер есть на эту тему, что он теперь не дурачок, как раньше, и теперь объявляет всем конкурентам копирайтную войну.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2 Ответы: #35, #45, #46

34. Сообщение от пэпэ (?), 14-Фев-26, 11:12   +/
Слышал звон? _ используется для игнорирования значения, лучше мусорные переменные что ли плодить? К тому же в "современных языках" это тыщу лет есть.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

35. Сообщение от мелстрой (?), 14-Фев-26, 11:17   +/
Ну пусть тогда сам на своем зайце работает
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

37. Сообщение от kusb (?), 14-Фев-26, 11:47   +/
Она обычно динамически подключается. Или я не разбираюсь, просто так кажется...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

38. Сообщение от LaunchWiskey (ok), 14-Фев-26, 12:03   +1 +/
> Hare преподносится как язык системного программирования, близкий к языку Си, но проще, чем Си.

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #40, #42, #52

40. Сообщение от Сладкая булочка (?), 14-Фев-26, 12:56   +/
> Того, кто C освоить не может

Он может, достаточно его проекты посмотреть.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #50

42. Сообщение от Facemakeremail (?), 14-Фев-26, 13:37   +1 +/
Освоить Си надо (хотя бы чтоб Скиену читать), но программировать на нём уже не надо.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #43, #44

43. Сообщение от Аноним (43), 14-Фев-26, 13:45   +1 +/
Как раз наоборот. Осваивать можно, что нравится, а программировать на С.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

44. Сообщение от Сладкая булочка (?), 14-Фев-26, 14:30   +/
> Освоить Си надо (хотя бы чтоб Скиену читать)

Есть мнение, что Скиену не надо как раз читать.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42

45. Сообщение от Аноним (45), 14-Фев-26, 14:30   +/
Hare, лучший язык программирования.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

46. Сообщение от Аркагоблин (?), 14-Фев-26, 14:41   +/
Она то конечно не вирусная, но всё равно заставляет давать ссылки на исходный код языка. Будто каждый кто пишет на языке, модифицирует сам язык. Язык напротив практически никогда не модифицируется сторонними людьми, но копилефт стоит, и выглядит это как стрельба из пушки по воробьям.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #32

48. Сообщение от Аноним (48), 14-Фев-26, 15:08   +/
В hare есть '?' и '!', можно ими пользоваться, какая великая разница?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #9

49. Сообщение от nc (ok), 14-Фев-26, 15:59   –1 +/
Почему абсурд? Наличие возможности всегда лучше чем ее отсутствие, мало ли для каких Хакерских целей это может пригодиться. Например если переменная каким-то образом отображена на регистр микроконтроллера, запись в который нулей приводит к какой-то аппаратной активности, которая просто при инициализации не нужна. Или например мы пишем некий код, в котором нужно экономить каждый байт кода, выделение памяти на стеке это одна команда, а обнуление - уже другая, которая возможно по логике кода и не нужна.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24 Ответы: #51, #68

50. Сообщение от LaunchWiskey (ok), 14-Фев-26, 16:04   +1 +/
Я не про создателя Зайца, а про среднестатистического современного программиста, для которых создают Зайцев, Расты и прочие инструменты, понижающие планку входа и превратившие индустрию в индус-трию..
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #40 Ответы: #54, #60

51. Сообщение от Аноним (51), 14-Фев-26, 16:36   +/
>Почему абсурд?

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49 Ответы: #59

52. Сообщение от Аноним (51), 14-Фев-26, 16:39   –2 +/
>Куда ж проще, чем классический C?

В каком месте си прост? В порче памяти? В уродовании алгоритма в угоду UB? В негигиенических макросах? Вот ни разу ни один сишник не объяснил, зачем ему нужно 100500 способов попортить память.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #38 Ответы: #58, #61

53. Сообщение от Аноним (51), 14-Фев-26, 16:49   +/
>Язык оптимизирован для решения низкоуровневых задач, таких как разработка операционных систем, компиляторов, сетевых приложений и системных утилит, для которых требуется достижение максимальной производительности и полный контроль над выполнением.

Разработка компиляторов низоуровневой задачей не является, для неё куда лучше подойдёт Ocaml или Haskell. Сетевые приложения или системные утилиты на них тоже можно писать. Хотя сейчас стало модно сетевые/системные приложения на голанге писать, со сборщиком мусора.
>В языке применяется ручное управление памятью

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

Вывод типов по Хиндли-Милнеру уже изорбетён. Flow-типизация - тоже. При этом никаких причин отказа от них, вроде использования высокого ранга полиморфизма, не указано.

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #62

54. Сообщение от Аноним (51), 14-Фев-26, 16:50   +/
>Расты
>понижающие планку входа

В каком месте раст понижает планку входа?

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

56. Сообщение от Аноним (56), 14-Фев-26, 20:33   +/
Смесь Go и Rust (по синтаксису) разве может быть простой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #16

57. Сообщение от Аноним (56), 14-Фев-26, 20:35   +/
На главной странице проекта пример helloworld, предлагаю всем взглянуть.
Ответить | Правка | Наверх | Cообщить модератору

58. Сообщение от Аноним (56), 14-Фев-26, 20:36   +/
Плохому танцору партнёрша мешает.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

59. Сообщение от nc (ok), 14-Фев-26, 21:19   +/
В отличие от сишечки, здесь опасный код (отказ от инициализации) требуется написать ЯВНО (и кстати достаточно многословно, я бы на месте разработчиков языка вместо @undefined использовал бы всё тот же подчерк)
Для нормального программиста этого достаточно.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #51 Ответы: #65

60. Сообщение от Сладкая булочка (?), 14-Фев-26, 21:43   +/
> Я не про создателя Зайца, а про среднестатистического современного программиста, для которых
> создают Зайцев, Расты и прочие инструменты, понижающие планку входа и превратившие
> индустрию в индус-трию..

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #50

61. Сообщение от Сладкая булочка (?), 14-Фев-26, 21:45   +/
>>Куда ж проще, чем классический C?
> В каком месте си прост?

Можно просто сравнить по кол-ву страниц стандарт Си и Раста (которого нет).

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52 Ответы: #63

62. Сообщение от Сладкая булочка (?), 14-Фев-26, 21:46   +/
> для неё куда лучше подойдёт Ocaml или Haskell

Они подходят для прототипов, потом их обычно переписывают.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #53 Ответы: #64

63. Сообщение от Аноним (51), 14-Фев-26, 23:51   +/
Любая тьюринговая трясина, вроде brainfuck будет проще чем си, по вашему же критерию.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #61 Ответы: #67

64. Сообщение от Аноним (51), 14-Фев-26, 23:51   +/
Переписывают ради раскрутки компилятора. Будб оригинал написан на си, его точно также переписали бы.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62

65. Сообщение от Аноним (51), 14-Фев-26, 23:54   +/
Нет абсолютно никакой разницы, написан отказ от инициализации явно или неявно. Проблемы возникают, когда требуется состыковать один сишный код с другим сишным кодом. Никто не будет читать исходник от первой строки до последней, чтобы увидеть, где что инициализировано, а где - нет, на буквально каждую правку.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #59

66. Сообщение от Аноним (66), 15-Фев-26, 00:27   +/
Когда хотят си упростить, все время джаваскрипт или перл получается ))
Ответить | Правка | Наверх | Cообщить модератору

67. Сообщение от Сладкая булочка (?), 15-Фев-26, 00:54   +/
> Любая тьюринговая трясина, вроде brainfuck будет проще чем си, по вашему же
> критерию.
> вроде brainfuck

Но у него нет стандарта)


Ответить | Правка | Наверх | Cообщить модератору
Родитель: #63

68. Сообщение от Аноним (68), 15-Фев-26, 00:54   +/
> Например если переменная каким-то образом отображена на регистр микроконтроллера, запись в который нулей приводит к какой-то аппаратной активности, которая просто при инициализации не нужна.

Пха-ха-ха.... Сам же и подтвердил абсурдность такой возможности. А ну как "случайное", "неинциализированное" значение таки окажется нулем и "произойдет какая-то аппаратная активность" из-за того что ты ничего не предпринял чтобы там не оказалось начального нуля? Или активность произойдет от инициализированного значения 15496843548, которое отвечало за уровень температуры нагревания в аппаратуре? Наверное именно в микроконтроллерах особенно важно чтобы не было никаких манипуляций с неинициализированныи переменными, а то реактор взорвется или андроид (не ОС, а человекоподобный робот) в бошку зарядит.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2026 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру