LINUX.ORG.RU

Доступен язык программирования Hare

 , ,


1

5

Впервые представлен широкой публике язык программирования Hare, который разрабатывает Дрю ДеВолт (автор Sway и SourceHut) со своей командой последние пару лет.
Hare — язык для системного программирования с минималистичным рантаймом, статической типизацией и ручным управлением памятью.

Исходный код компилятора предоставляется под лицензией GPLv3, а для стандартной библиотеки под лицензией MPL (Mozilla Public License). Компилятор Hare не основан на LLVM или GCC, а использует легковесный qbe. Программы на Hare не линкуются с libc по умолчанию.

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

На Hare уже есть написанные проекты; например, микроядро Helios.

Пример кода:

use crypto::sha256;
use encoding::hex;
use fmt;
use hash;
use io;
use os;

export fn main() void = {
	const hash = sha256::sha256();
	const file = os::open("main.ha")!;
	defer io::close(file);
	io::copy(&hash, file)!;

	let sum: [sha256::SIZE]u8 = [0...];
	hash::sum(&hash, sum);
	hex::encode(os::stdout, sum)!;
	fmt::println()!;
};

>>> Подробности

★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 5)

новый язык программирования

Hare

Чего-то ржу.

Если серьёзно — я сначала счёл новость обезображенной копипастой с опеннета (учитывая, что там пример кода был в 2 раза длиннее), потом почитал оригинал, понял, что был неправ, и откатил назад. Даже добавил пару слов из оригинала.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 2)

Hare fits on a 3½" floppy disc, which are available for purchase.

Это очень интересно, вот только кто в наше время пользуется дискетами?

MPH
()

Пример кода

Не вижу статической типизации, вижу очередную скриптоту. Не взлетит, следующий.

foror ★★★★★
()

Но зачем он нужен? По отношению к расту похож на то, чем является Си по отношению к Си++.

unC0Rr ★★★★★
()

Горшочек, не вари!

По синтаксису – какой-то Rust на минималках.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)

const file = os::open(«main.ha»)!;
defer io::close(file);

Не совсем понял. Открытие файла происходит через функцию в пространстве имен os, а закрытие в пространстве имен io? Никто не запрещает так делать, но зочем?

Xintrea ★★★★★
()
Ответ на: комментарий от MPH

Ну я изредка, когда ДОС переставляю :D. Вообще, наверное это больше к требуемому пространству, чем к формату носителя, не?

dv76 ★★★★
()

Hare — язык для системного программирования с минималистичным рантаймом, статической типизацией и ручным управлением памятью.

Зачем оно нужно если есть C?

Meyer ★★★★★
()

Харэ уже всякие языки изобретать!

The_Coon
()
Ответ на: комментарий от monk

Есть замеры скорости по сравнению с Си?

А смысл? Быстрее ассемблера хочешь результат? Или думаешь компилятор недоязычка уделает десятилетия ресерчей и оттачивания до мелочей сявовых компиляторов?

foror ★★★★★
()

Что-то как-то некрасиво код выглядит, а тут всего 20 строчек. Даже противнее руста.

paran0id ★★★★★
()

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

Neresar ★★
()

Спасибо, но уже есть Zig.

umren ★★★★★
()

И в чём прикол языка? Что на нём можно сделать такого, что нельзя или сложно сделать на других языках?

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

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

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

Lrrr ★★★★★
()

Это видимо последний язык программирования который будет представлен публике.

faq2
()
Ответ на: комментарий от foror

В современном C++ многие тоже не видят статической типизации. А она есть. Вы наверно путаете статическую типизацию с явным указанием типов каждой переменной в исходном коде.

Gentooshnik ★★★★★
()
Ответ на: комментарий от Neresar

да пребудет с Вами С++ братья!

Дед опять забыл таблетки выпить? Ты ж всю жизнь за Scheme топил.

Gentooshnik ★★★★★
()

Наличие функции println пугает.

Shadow ★★★★★
()

Забавная идея. Вполне может зайти в качестве цели для транслятора с чего-нибудь заумно-функционального вместо привычного С. Особенно с учётом декларируемого консерватизма в развитии.

zabbal ★★★★★
()

Hare Кришна! Hare Рама!

tiinn ★★★★★
()

Hare уже всякое ненужно изобретать

burato ★★★★★
()
Ответ на: комментарий от dadd

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

imul ★★★★★
()
Ответ на: комментарий от Xintrea

Можно предположить, что os::open вернет хэндл, что и подтверждается докой. Проблема как всегда в долбанных авто в каждой строчке.

ya-betmen ★★★★★
()
Ответ на: комментарий от dadd

Тут смысл в распространении полезных утилит под Win/Linux.

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

Доступен язык программирования Hare (комментарий)

Использование WSL накладывает некоторые огранечения для хомячков

IIIypuk ★★★★
()
Последнее исправление: IIIypuk (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

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

Lrrr ★★★★★
()

Тот же zig поинтереснее выглядит, по фичам примерно похож на сабж.

theNamelessOne ★★★★★
()
Ответ на: комментарий от foror

Не вижу статической типизации, вижу очередную скриптоту.

Это как ты понял? Скорее всего там всё ОК с типизацией, просто современные языки умеют не «пачкать» код явными декларациями, поэтому и похоже на скриптоту


Вот тут типы явно проставлены

export fn main() void = {
...
let sum: [sha256::SIZE]u8 = [0...];
Crocodoom ★★★★★
()
Последнее исправление: Crocodoom (всего исправлений: 1)

Язык в целом выглядит интересно. Нечто среднее между Си и Паскалем.

Другой вопрос, что можно просто юзать Паскаль.

saahriktu ★★★★★
()
Ответ на: комментарий от Crocodoom

современные языки умеют не «пачкать» код явными декларациями
Авторы современных языков хотят кодить в блокноте.

ya-betmen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.