- cross-posted to:
- [email protected]
- cross-posted to:
- [email protected]
Hare is a systems programming language designed to be simple, stable, and robust. Hare uses a static type system, manual memory management, and a minimal runtime. It is well-suited to writing operating systems, system tools, compilers, networking software, and other low-level, high performance tasks.
Funny you mention Rust - one of Hares lead devs (and I believe the original creator), Drew DeVault, has been pretty vocal about his dislike for Rust, especially in the low-level and Linux kernel world. Here’s an article by him about the subject:
https://drewdevault.com/2022/10/03/Does-Rust-belong-in-Linux.html
IIRC, Hare has more of a “trust the programmer” approach to things such as memory management. As a programmer who who trusts no one and especially not myself, I don’t think Hare is for me (and i disagree wit a lot of Drews points.) But that’s just my two cents. The language itself seems pretty neat still, but I think it’s got very different design goals
If there’s one thing the history of computers has shown us beyond the shadow of doubt, it is that programmers cannot under any circumstance be trusted to manage memory.
I suppose I can respect that opinion on memory management, but also disagree that we should always trust the programmer. I was mostly commenting on the syntax, if it weren’t for the fact that I was on the website for Hare I would have thought it was Rust.
It’s got a lot of good ideas from what I saw in the quick guide, but I feel like lifetimes are the next step for memory management in general. If they really want manual memory management to be default, they could continue to flip Rust and make a
safe
attribute for functionsI think the exact opposite to them. Humans are almost always the weakest link. The more you can automate the better.