Hacker News new | ask | show | jobs
by samatman 759 days ago
I was interested in Hare until I found this immensely self-defeating FAQ item: https://harelang.org/documentation/faq.html#will-hare-suppor...

As a baseline, I support developers using whatever license they would like, and targeting whatever operating systems, indeed, writing whatever code they would like in the process.

That doesn't make this specific policy a good idea. Even FSF, generally considered the most extreme (or, if you prefer, principled) exponents of the Free Software philosophy, support Windows and POSIX. They may grumble and call it Woe32, but Stallman has said some cogent things about how the fight for a world free of proprietary software is more readily advanced by making sure that Free Software projects run on proprietary systems.

They do at least license the library code under MPL, so merely using Hare doesn't lock you into a license. But I wonder about the longevity of a language where the attitude toward 95+% of the desktop is "unsupported, don't ask questions on our forums, we don't want you here".

Ironically, a Google search for "harelang repo" has as the first hit an unofficial macOs port, and the actual SourceHut repo doesn't show up in the first page of results.

Languages either snowball or fizzle out. I'm typing this on a Mac, but I could pick up a Linux machine right now if I were of a mind to. But why would I invest in learning a language which imposes a purity test on developers, when even the FSF doesn't? A great deal of open source and free software gets written on Macs, and in fact, more than you might think on Windows as well.

From where I sit, what differentiates Hare from Odin and Zig, is just this attitude of purity and exclusion. I wish you all happy hacking, of course, and success. But I'm pessimistic about the latter.

11 comments

On the one hand, I can respect the authors for sticking to what they want to accomplish and not accommodating every demand.

On the other hand, that is hardly the only thing from the FAQ that raises one's eyebrows:

> we have no package manager and encourage less code reuse as a shared value

> qbe generates slower code compared to LLVM, with the performance ranging from 25% to 75% the runtime performance of comparable LLVM-generated code

> Can I use multithreading in Hare? Probably not.

> So I need to implement hash tables myself? Indeed. Hash tables are a common data structure that many Hare programs will need to implement from scratch.

As it stands, this is definitely not a language designed for mass adoption. Which is fine, and at least they're upfront about it.

Some of those design decisions I’m okay with, but deliberately not providing a basic hash table for general usage is pretty bizarre. I can’t think of even one serious software project I’ve worked on that didn’t need a dictionary/map-like data structure somewhere in the code.
> But why would I invest in learning a language which imposes an arbitrary purity test on developers?

While I understand your concerns, I disagree with your the idea of “imposition”. Someone doing something for free doesn’t owe anyone to do it in a particular way (as long as it’s not malevolent). You’re free to express your opinion, but if the developer has already established his guidelines, criticisms like this is not constructive.

Sounds like you and the Hare people have different definitions of success. As for "languages either snowball or fizzle out," I feel like that's pretty dismissive of a lot of languages that have been steadily marching on for decades even without this rockstar status.

Not every band has to hit the Billboard charts to be worth listening to.

It says they won’t officially support Windows or MacOS. Some other project can try to port it if they want, right? It seems good of them to be honest about their intended level of support.

Supporting an OS the devs don’t use is a big ask.

> Languages either snowball or fizzle out.

This is not true and a naive statement. There are quite few languages which are not popular across the board but have a very firm niche in which they thrive and fulfill critical roles.

I think focusing on Linux makes sense for limiting the scope of the project. Supporting Mac sucks when you own no Apple hardware and have no personal interest in the ecosystem. Windows users probably can just use WSL, right? Or I mean, people use docker these days anyway.

So I get it. Especially if it is to be a more niche or pet project but then again I don't buy the ideological reason. I am a really big proponent of free software and their stance just doesn't make any sense. I agree with you here. But then again they can do whatever they want.

I don't think that Apple particularly cares about porting their software to Linux. Do you feel the same about Apple? That with such an attitude, they surely cannot succeed?
Apple releases a great deal of open source software, which, so far as I'm aware, all runs on Linux as well. At least Swift, clang, and LLVM, all run on Windows as well. So does their Objective C compiler, so of Apple's programming languages, that leaves AppleScript. I would not describe AppleScript as robustly successful.

I believe Apple could probably get away with keeping Swift proprietary, or only supporting Apple platforms. But they don't. I have no inside-track information on why that is, but I suspect the reason is fairly simple: developers wouldn't like it.

> so of Apple's programming languages

So the whole part of your message about "even the FSF saying that free software should run on proprietary system" works when you want to criticize Hare, but not when looking at Apple proprietary software, right?

A language is just another piece of software, I don't see why you should apply different rules to a programming language than, e.g. to a serializing system like Protobuf. And I don't think Google actively supports swift-protobuf (https://github.com/apple/swift-protobuf).

Hare upstream just says "we are not interested in supporting non-free OSes, but we won't prevent you from doing it". It's your choice to not use Hare because of this, but it's their choice to not support macOS.

> As a baseline, I support developers using whatever license they would like, and targeting whatever operating systems, indeed, writing whatever code they would like in the process.

> That doesn't make this specific policy a good idea.

You will note that Apple invests approximately zero effort in making those projects portable.
"We cannot effectively study, understand, debug, or improve, the underlying operating system if it is non-free. We actively work with the source code for the systems on which we depend, and we are not interested in supporting any platforms for which this is not possible."

I understand that you don't like it, but how do you come to regard a statement like this as "arbitrary?" It's exclusive, for sure. "Purity test" is one way to characterize it. But do you really think that statements like this are just the product of individual caprice? That it's not someone's attempt at a principled intervention, but just an "attitude?"

Ouch, I hadn't really considered it before but that quote deeply resonates with me. The experience of trying to debug windows wifi system is day and night compared to wpa_supplicant/mac80211.
You're right, it isn't arbitrary. I removed that word from the post and edited it to express my opinion more clearly.
I was going to post the same quote. If you have no visibility into the layer you depend on, you really can’t reason about it or write optimized code for it.

The Hares are saying they require that, which I totally understand and respect.

There's no purity test and the Hare devs aren't prohibiting you from using Hare on macOS or any other platform.

They just don't want to maintain Mac/Windows ports themselves. If somebody else is interested, they can maintain a port. Like that macOS one that you've already found.

My real showstopper with Hare is the lack of multithreading. In the modern world, we need to be making parallelism easier not harder!
"The goal of Hare is not to achieve the broadest possible reach, but to be a part of a broader system which effectively achieves Hare’s goals."