LINUX.ORG.RU

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

 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)

ручным управлением памятью

Я не настоящий сварщик, но чем это отличается от Си? Какие недостатки Си решает этот язык?

hateWin ★☆
()

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

[petrosyan mode]Настоящий программист должен убить жену, написать свой язык и свое микроядро на этом языке![\petrosyan mode]

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

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

Потому что методов нет, извращенцы )

Joe_Bishop
()
Ответ на: комментарий от hateWin

Компилятор Hare не основан на LLVM или GCC, а использует легковесный qbe

Понятно, пока нет

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

Я тоже не сварщик, но отличие есть... это ДРУГОЙ язык.
Я его ещё не освоил - но из поверхностных знаний он: «сам в себе».
Но увы, не удалось мне 30 лет назад найти файл: forth.com - в котором он был бы сам в себе и давал на выходе исполняемые файлы...

Но сейчас легко поставил Форт и на Линукс и на Андроид. Будет на досуге что изучить...

А Си это уже и не язык а СРЕДСТВО! Средство для связывания инструментов подающихся в библиотеках... (Хотя как уже писал - я не сварщик и могу заблуждаться).

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

Какие недостатки Си решает этот язык?

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

Хотя, конечно, пофигу это всё. Всё равно не взлетит.

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

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

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

Но не взлетит, да.

Croco ★★★
()

В тексте новости

язык хорошо стандартизован

что, простите? Таки шо, УЖЕ? Когда успели? Или опять не знаем разницу между стандартом и спецификацией?

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

В свете текущих событий даже этого не требуется...

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

Всё равно не взлетит

Адекватной замены Си в ближайшее время не предвидится? Всякие зиги и расты ею не являются?

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

Так и в питоне тогда статическая типизация есть, если следовать вашей логике. Просто она под капотом.

Нет, потому что типы проверяются в процессе выполнения программы. На 100% статически типизированный код в принципе не может выкинуть ошибку типов в рантайме. Вот Haskell - это как раз статическая типизация «под капотом».

Gentooshnik ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Статическая типизация есть в любом языке под капотом =)

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

Ну и есть языки вроде bash и Tcl, в которых ошибок несоответствия типов в принципе нет.

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

У вас же WSL есть.

Оно кривущее что ппц. Постоянно что-нибудь не запускается и надо ковыряться в бинарниках, удалять секции, что-то патчить прямо по бинарникам, чтобы обойти баги в микрософтовском лоадере. Типичный пример https://github.com/microsoft/WSL/issues/8219.

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

Выше писали и я повторю - глянь на Zig. Годно, красиво.

@CryNet, я с Дрю долго цапался, что он самокат там где не надо наковыривает, так корона стала падать, и он не смог объяснить цель внесения того или иного решения. Я его пинал как прикладной (особенно было завязано на его плевки при написании Wlroots, понимаю, были проблемы как раз о том, что Croco выше написал - «модульности» не хватало, такие косяки лезли при добавлении «магии» новыми участниками проекта, ух), мол, покажи мне реализацию того, что ты писал раньше на твоём волшебном… Ох и много копий о щиты было поломано )))

Oldboy
()
Ответ на: комментарий от CryNet

))) Не, он пока сову на глобус натягивает, да не натягивается. Мы серьёзно обсуждали некоторые решения, на Си он с помощью хаков на раз-два решал, но потом чтобы добавить фичу, надо было лезть в код (а он большой) и разбираться тем, кто входил в проект, смотреть что накорячили ранее. Многие то по тому, что знают лабают. Ну и я же жук ещё тот, закидывал им их же задачи для реализации на новом, крутом Hare, да не выходит так изящно, что-ли. В ответ лучи «добра» и добавление новой штуки, вот только удобства не добавляло, глобальные проблемы не решало.

И главное, читать неприятно. Как 200+ строк напишешь…

Oldboy
()
Ответ на: комментарий от beastie

что именно было немыслимо? про мат - почитайте Гайдара, Аркадия которого

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

ну вот, а мог бы ЯП создать, «Славься», православный, со службами и иконками

Уже было. Читаешь код как молитву )))

Oldboy
()

Всё, ребята, харэ, отработали лавэ.
Пожалуйста, не трогайте Го, он почти идеален.

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

Да харэ уже, вам существующих языков мало?

mittorn ★★★★★
()

ещё один новый язык без ООП [facepalm.jpg]

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

Адекватной замены Си в ближайшее время не предвидится? Всякие зиги и расты ею не являются?

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

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

Понятно. Очередной ненужно язык, выходит.

Увы, пока да.

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

Уже. Пацаны пробуют.

«Пацаны пробуют» – это не «уже», это всегда. Свой пацан, который попробует, на любое новое чёртзнаетчто найдётся.

Свою нишу займёт.

Не займёт, она уже занята. А чтобы выкинуть из этой ниши тех, кто её уже занял, нужно быть намного серьёзнее.

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

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

ИМХО, Си сейчас при таком объёме тяжело хорошо использовать, для совместной работы вообще не вариант, вот и используют высокоуровневый клей со вставками. Только очень хочется (а создатели (создатель) Си были очень удивлены его популярностью) мощный, быстрый, с решенными болячками. И будет решение. Мне баба Ванга сказала лично ;) И опять ИМХО, оно не в создании ещё одного низкоуровневого ЯП )))

Лично я вообще извращенец, мне композицию функций подавай, монады, функторы. Ну или волшебников: John McCarthy => Marvin Minsky => https://youtu.be/EI0NXTrS5Pw?t=2859
https://www.youtube.com/watch?v=-pb3z2w9gDg&list=PLUl4u3cNGP61E-vNcDV0w5xpsIBYNJDkU

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

оно не в создании ещё одного низкоуровневого ЯП

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

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

Ага. Попытки замены - это тупиковый путь. Но так хочется включить trolling mode )))

Спасибо за беседу.

Oldboy
()
Ответ на: комментарий от mumpster

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

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

Во-первых, не всё измеряется вакансиями. Если на языке активно пишут, но не за зарплату, то он всё равно жив.

Во-вторых, есть вакансии не на программиста, но где надо кодить, например, на Delphi или Lazarus'е. Пусть это не совсем Паскаль, а Object Pascal, но тем не менее. Тот же Free Pascal Compiler компилирует как код на обычном Паскале, так и на Object Pascal'е. Так вот. Это, например, муниципальная ниша. Приходит человек, например, IT'шником в местную кадастровую палату, а там надо сопровождать код на Delphi/Lazarus'е.

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

кто будет програмировать на хэр?

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

Если на языке активно пишут, но не за зарплату, то он всё равно жив

Кто и где активно пишет на паскале? Сколько на нем написано прикладного софта, которым пользуются массы людей?

вакансии не на программиста, но где надо кодить, например, на Delphi или Lazarus’е

Так и запишем: паскалефанбои - не настоящие программисты.

сопровождать код на Delphi/Lazarus’е

Ну то есть паскаль жив примерно как кобол. Как живой, но не живой.

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

Кто и где активно пишет на паскале?

Самые разные люди для самых разных целей.

Сколько на нем написано прикладного софта, которым пользуются массы людей?

Не очень много, но есть. Уже приводили списки. На github'е его поисковик находит 5117 репозиториев с кодом на Паскале. И это только тот код, который выложили туда.

Из линуксового софта на Паскале известны, например, CudaText, Double Commander, PeaZip, eMKatic,... и т.д.

Так и запишем: паскалефанбои

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

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.