Hacker News new | ask | show | jobs
by hamter 1506 days ago
So hare's target niche is people who want to use hare? On the first blog post and the ensuing conversation here that wasn't clearly stated (at least as far as I can tell). It seems a little strange that the programming language's niche would be "idk why not"... but then again why can't it be?
1 comments

Hare's target niche is stated on its home page:

> 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.

I would be happy to clarify further if you're still unsure of what kind of programs are well-served by being written in Hare.

Yeah that's not really a niche as much as it is a description of what Hare is. Maybe what would be more helpful are some examples of use-cases you and the rest of the Hare team have in mind when developing this language.
I feel like we're really picking nits at this point. We're using it to develop these things. There are ongoing projects to make a kernel in Hare, POSIX utilities, a password manager, graphics libraries, and so on. There's a list of ongoing projects here which may make this clearer:

https://sr.ht/~vladh/hare-project-library/

I hope that helps.

That's still a list of projects possible to write in Hare, not necessarily good to write in Hare. At this stage I believe (and if true, hope you to clearly state) that Hare exists in the same realm as Sourcehut, that is, the alternative world you and like-minded people prefer. Many programming languages exist mostly to fulfill creators' ego and yet completely deny that fact, which would be unwise in my opinion.
What I’m missing are comparisons. A few examples illustrating what makes Hare preferable when compared to C/Rust/Zig.
Every language would do us (programmers) a great favor by having a page titled "Pro & Cons" or even "When to use X / When not to use X", and could include comparing other languages as well. Maybe it's hard to sell your language if you have to include cons/when not to use X as well, but it'll help gain trust for sure.

In the case of Hare, it doesn't seem to be good if you want to be able to have anything running on Windows/macOS, as one stated goal is "Hare does not, and will not, support any proprietary operating systems" according to https://harelang.org/platforms/, which makes it very unattractive for me at least, as I move across three platforms daily.

How do they expect to gain traction if they refuse to support 2 of the three platforms software is developed for?
In Hare's defense, not every programming language needs to target every runtime/OS/environment.

JavaScript only targets the browser. Shaders usually targets one graphic runtime. Maybe there is a space for a language that just targets a few OSes, or even just one? Remember that both C# and Swift initially just targeted one platform, so maybe it does makes sense to now have one OSS language for OSS nerds.

While that was true for years, Node.js has made JavaScript viable on the server for quite a while. But I agree with your overall point. I think JS and C# are good examples of languages that were seen as valuable enough to start using in other environments. I love C#.
Well, naturally, with people who use the other one: Arduino. I mean FreeBSD. Or maybe FreeRTOS? Wait, Android. Or NetBSD. Or Wasm. Or JS. Or the JVM. Or the .NET CIL. Or ReactOS. Or SerenityOS. Or FreeDOS. Or Illumos. Or OpenSolaris, heh.

Or just regular old GNU/Linux like 70% of the Web. But either Android installs or FreeRTOS installs easily outnumber those.

I really want to avoid measuring Hare up against other languages. I think it stands on its own merits, and would prefer that people evaluate it in earnest rather than compare bullet points with another language. Nevertheless, there does exist a (dated) comparison with C:

https://harelang.org/blog/2021-02-09-hare-advances-on-c/

And if you have any specific questions that you want to frame in the context of another language, I will do my best to answer them.

If you want people to evaluate it on its own merits, then make those merits stand out. As it stands, your intro paragraph ("Hare is a systems programming language...") is so generic that it doesn't tell me why I might want to use it instead of C or Zig or assembly. Where does it excel? What makes it stand out? Bullet points help me quickly decide whether I want to spend time evaluating a language.
> I think it stands on its own merits, and would prefer that people evaluate it in earnest rather than compare bullet points with another language.

I’m definitely not looking for bullet point comparisons.

Rather, I’m looking for an example of implementing some concrete functionality in both Hare and — say — C, which highlights the advantages of Hare over C in implementing this specific functionality.

Why do you need comparisons. Why can't you just experiment with it and use it if you want to?
Time has value. If the prospect isn't clear, the tradeoff of time to investigate is a waste. People are risk averse and want to understand the benefits the language was designed for relative to competing languages.
To make our lives easier. There is only so much time in a day and we would rather spend it well.
The sibling comment already says most of it, but the non-presence of a succinct comparison table is IMO a signal in itself that the language/project is a toy and not ready to be considered for production use.
I'm not sure I've seen such a thing for most languages, but maybe I'm used to just reading what a lang is about and mentally slotting it for certain things by myself. I bucket things by static/dynamic types, dominant paradigm, syntax style, GC/no GC, and stated goals, which include what it was designed for. Most of those are easy to discover.
Oh absolutely, and that makes sense if the language is being pitched to individuals. But as soon as you want to convince your boss to let you use it for a project, that executive summary level info is essential. They (rightfully) do not have the time to infer it or "play around", they need a clear "it's X but better because Y, Z."
No languages provide any such comparison that I'm aware of. Rust does not, Zig does not, C and C++ do not, JavaScript does not. Are all of these languages toys?
Ha, good call. IMO C, C++, and JavaScript are all kind of in that special case basket where there were significant domains in which you had to use them (JS for the browser, C for unistd.h, C++ for the Win32 API), so they didn't really have to compete with anything for long enough to become entrenched.

Zig, though, does very clearly lay out its pitch right on the homepage, and although it's maybe not a table of checkmarks, it's a series of pretty clear shots-across-the-bow at other languages, in particular C and C++.

Rust similarly has a "Why Rust" block above the fold on its homepage; it's not quite as terse as the Zig one, but it's clearly that same executive-level pitch.

Hare's homepage has: "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."

Maybe there's a case to be made here that these bald assertions are no different than what Zig and Rust claim about themselves. But I also think it's reasonable to have different expectations around this for a brand new project vs ones with years of track record and existing mindshare.

There's dozens of languages out there I haven't programmed in. If I were going to learn a new one, I'd have to base that decision on something beyond just vibes.