Follow

So happy to finally be able to share the programming language I've been working on with an amazing team!!! Please try it and let us know what you think! :)

harelang.org/blog/2022-04-25-a

@vladh I didn't know you worked on it with Drew. Nice work :)

@vladh Congratulations! 🎉

I went through the announcement and have only one question.

What languages does Hare interoperate with?

@vladh Logo gets ++cool points! I have no use for the language, but cute bunnies are forever useful.

@vladh @neauoire @nytpu Absolutely fascinating that Hare uses structural types across the board while also providing anonymous types.

I've had this hazy idea for some time that either:

- structs want to be nominally typed whereas unions want to be structurally typed, or

- named structs/unions want to be nominally typed whereas anonymous structs/unions want to be structurally typed.

Now I should have a lot more data to think about these questions!

en.wikipedia.org/wiki/Structur

@vladh @neauoire @nytpu Regardless, structurally typed anonymous union types are really nice, and basically address Rich Hickey's criticism at youtube.com/watch?v=YR5WdGrpou

@akkartik Thank you for having a look at Hare! :) The type system predates my contributions, but I can say that working with it has been absolutely painless. I think structural typing just makes sense here, and I can't see a situation where nominal typing would have worked better. If you do, or have other thoughts, let me know! :)

@vladh Yeah, my comment was of a more theoretical nature. For example, one use case I often think about is units. No programming language handles units well. Raising an error when comparing meters with seconds is something that feels like it needs nominal types.

Like I said, nobody handles this well, it's a bit of a corner case. But if you have a favorite way to model units in Hare I'd love to hear it :)

@vladh Very nice, I am in :) https://harelang.org/floppies/

Using QBE as a compiler backend is an interesting choice. Is simplicity the only reason not to choose LLVM?

To add support for other target platforms (like embedded devices such as an AVR, ESP32 or STM32F0), it is more a job for the QBE project, right?

@f Thank you! :) You're right on both counts. I'm optimistic that support for new architectures and OSes will come soon. If you'd like to learn more about qbe: drewdevault.com/talks/qbe.html

Sign in to participate in the conversation
Merveilles

Revel in the marvels of the universe. We are a collective of forward-thinking individuals who strive to better ourselves and our surroundings through constant creation. We express ourselves through music, art, games, and writing. We also put great value in play. A warm welcome to any like-minded people who feel these ideals resonate with them.