Комментарии 20
Очень классный проект. Особенно радует то, что он не опирается на монстров, вроде gcc и llvm, и его можно полностью охватить одним человеческим мозгом )
Отмечается, что Hare очень сильно похож на C, и почти все программы на C могут быть переписаны на Hare.
Кроме синтаксиса - на С особо не похоже (мне построение кода Паскаль\Оберон напоминает). И переделывать большинство С программ под модули - это почти писать их заново.
Звучит вкусно и интересно. В мире вообще не так много статически типизированных языков, а целенаправленного под написание осей давно не хватало
Разработчики отмечают, что Hare доверяет программисту и явно выполняет написанный код без скрытых манипуляций.
Означает ли это, что на уровне компилятора нет никаких оптимизаций? А если они есть, то что означает это "без скрытых манипуляций"?
fn example(x: int, y: int = 34) void = { // ... };
example(12); // Equivalent to example(12, 34);
Встроенные грабли, когда без чтения текста функции не разобраться. В Perl есть вызов функции с переменным количеством параметров, но такое не видел.
Классов не вижу. Это by design?
Ну написано - си. Очевидно что там нет классов. Но наверно Вы хотели спросить - зачем?
Написано не так.
Отмечается, что Hare очень сильно похож на C
Ранний C++ тоже был похож на Си, что не мешало ему иметь классы. Его так и называли: «Си с классами».
Да, всё верно, C++ имеет классы, С не имеет, поэтому Hare похож на С, а не С++, не?
То есть, я их не просмотрел, их в самом деле нет? (Про «похож, не похож» пусть будет, как скажете).
А какие в нем интересные языковые фичи?
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()!;
};
(© Пример с https://www.linux.org.ru/news/development/16854262)
Вот это похоже на C? 🤔
defer io::close(file);
О, суррогат деструктора.
Автоматизм, между прочим.
Вот это похоже на C?
В C нет автоматизмов, что — наиболее существенно.
Также там нет namespace'ов.
Этим Hare напоминает C++.
А декларации напоминают Pascal/Golang.
У меня первая мысль была что этот язык похож на Rust
Да харэ уже новые языки придумывать, старые починити!
Релиз языка программирования Hare 0.24.2