25.04.20222 min

Maciej OlanickiRedakcja Bulldogjob

Hare – nowy język programowania systemowego chce być jak C

Hare to nowy język programowania, za którym stoją proste, acz sensowne założenia: ma być jak C, tylko że prostszy.

Hare – nowy język programowania systemowego chce być jak C

Języki programowania rodzą się i umierają i zaledwie część z nich jest w stanie zdobyć uznanie programistów. Warto jednak odnotować, że dziś światło ujrzał Hare – nowy język programowania systemowego, któremu warto przyjrzeć się bliżej.


Hare – nowy język chce zastąpić C

Przyciągać uwagę do Hare może już sam fakt, że mowa o języku niskopoziomowym, który ma służyć przede wszystkim jako systemowy język programowania. Jak wiadomo, segment ten jest bardzo statyczny, języki niskopoziomowe rozwijają się bardzo niespiesznie i nawet dobry następca dla C i C++, Rust, popularyzuje się opieszale.

Założenia stojące za Hare trudno uznać za skomplikowane – język ma ambicję być jak C, tylko być prostszym w nauce. W praktyce oznacza to, że mamy do czynienia z typowaniem statycznym, ręcznym zarządzanie pamięcią oraz możliwie jak najkrótszym rozruchem programów. Tak prezentuje się przykładowy program służący do generowania funkcji skrótu SHA-256:

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()!;
};

W bibliotece standardowej już dziś znajdziemy między innymi implementacje kryptografii, obsługę sieci, operacji I/O czy wyrażenia regularne POSIX Extended. Z użyciem Hare zostało już napisanych kilka ciekawych projektów, w tym menedżer sekretów Himitsu, mikrokernel x86 Helios czy demon sieci bittorernt btgd. 


Ambitne plany

Oczywiście Hare jest na samym początku o swojej drogi, co zresztą podkreślają sami twórcy. Ich plany są ambitne – do osiągnięcia wersji 1.0 chcą znacząco rozszerzyć listę obsługiwanych architektury (na razie są to tylko x86_64, aarch64 i riscv64) oraz systemów operacyjnych (jak dotąd tylko Linux i FreeBSD) oraz dodanie obsługi TLS 1.2 i 1.3. 


Szczegóły na temat języka Hare oraz dokumentacja całego dostępne są tutaj.

<p>Loading...</p>