Комментарии 15
Выглядит любопытной альтернативой C. Я для себя ещё zig рассматриваю, его разработка пораньше началась, выглядит постабильнее. Почему не взять оригинальный C и не выюживаться? :) Видимо избалованным современными тулчейнами разработчикам, как я, хочется больше комфорта в коде :) После ухода на Go перестал пользоваться C практически, но порой его легковесности не достаёт, не всегда требуется гошный рантайм с его горутинами и прочими изысками.
Можно взять Rust и много пользоваться unsafe указателями. Получится тот же С.
Именно что в расте это потребует много пользоваться ансейф и указателями. И он будет мешать как только может
По-моему Rust хорош именно без unsafe, но я бы не пытался им заменять C. А на замену C нужен такой же простой язык, как сам C, но с устранением накопившихся за десятилетия претензий по разным корявостям синтаксиса. Hare тут выглядит неплохой попыткой, по сути в нем обработку ошибок осовременили и сделали более безопасной работу с указателями, да и всё пожалуй, из того что сразу бросается в глаза, в остальном тот же С по виду. Но может больше ничего и не нужно? )
Оказуалили C! А так да, прикольная альтернатива получается
Да Харэ уже!
Понаделают 100500 языков, потом через 3 года на все забьют, а я потом опять наткнусь, что библиотека, которую я очень хотел интегрировать к себе, написана на какой-то всеми забытой экзотике.
Новые языки это всегда интересно (во всяком случае мне). Новые интересные концепции, языковые конструкции, приемы, устранение недостатков старых языков... Да и невозможно все библиотеки вечно писать на Си.
Мегафича, конечно: язык влезает на дискету!
Кому нужна всякая скукота: стандартная библиотека уровня .Net, макросы вместо дефайнов и шаблонов, неупоротый синтаксис…
Нейминг std надо срочно править. Там кучу вещей то через подчеркивание то без него называется.
Местами вообще логики мало. То что в io ожидаешь увидеть в os лежит.
А куда я щас вставлю трёхдюймовую дискету-то? :-0 В неё щас разве что на солнечное затмение смотреть.
Для меня, по синтаксису больше на микс из С++ c Go похоже. Зачем fn вместо func заменили непонятно, другие токены всеравно длиннее, а так смысла больше будет.
В каждой стройке тип const это перебор имхо сделайто тогда по дефолту const зачем страдать :)
Из https://git.sr.ht/~sircmpwn/btqd/tree/master/item/bencode/reader.ha
Пример@test fn dict() void = {
const input = "d3:cow3:moo4:spam4:eggse";
const input = bufio::fixed(strings::toutf8(input), io::mode::READ);
const read = newreader(&input);
defer reader_free(read);
const dict = next(read) as dict_reader;
const item = dict_next(read) as (str, record);
assert(item.0 == "cow" && strings::fromutf8(item.1 as []u8) == "moo");
const item = dict_next(read) as (str, record);
assert(item.0 == "spam" && strings::fromutf8(item.1 as []u8) == "eggs");
assert(dict_next(read) is io::EOF);
assert(next(read) is io::EOF);
const input = "d4:spaml1:a1:bee";
const input = bufio::fixed(strings::toutf8(input), io::mode::READ);
const read = newreader(&input);
defer reader_free(read);
const dict = next(read) as dict_reader;
const item = dict_next(read) as (str, record);
assert(item.0 == "spam");
const list = item.1 as list_reader;
assert(strings::fromutf8(list_next(list) as []u8) == "a");
assert(strings::fromutf8(list_next(list) as []u8) == "b");
assert(list_next(list) is io::EOF);
assert(dict_next(read) is io::EOF);
assert(next(read) is io::EOF);
};
А на 5.25 дискету записать слабо? )
Состоялся первый версионный релиз языка программирования Hare (0.24.0) и представлена новая политика выпуска версий