indexpost archiveatom feed syndication feed icon

First Thoughts on Hare

2022-07-30

I've been poking around with Hare to kick the tires and see how the language is shaping up while it is still in heavy development. Here I note a few things I have found surprisingly pleasant.

Easy to Pick Up

I have something of a problem with programming languages. I can't not look into each and every one. Never mind the fact that TCL went out of fashion decades ago or that people think J looks like line noise; if you write a programming language I will at least read the documentation to get a feel for it. Unfortunately with Hare being so early in development there is a dearth of documentation outside of the tutorial.

For larger projects and more complex languages this may have been a sufficiently high barrier to make me put off looking any further. In the case of Hare though I found the language simple enough with logical choices (like making the language expression-oriented!) that I found reading the standard library etc. enough to give me a feel for things.

Welcoming to Contributors

I will admit, I am willing to give Hare a chance so early in development because it is one of Drew DeVault's projects and I've enjoyed contributing fixes to his projects in the past. It turns out Hare is no different. When I saw the release announcement I browsed through the bug tracker and saw a few things I figured I could fix. In a few hours I had picked up a ticket I was interested in, learned enough of the language to make a fix, added tests and sent a patch. Then I made another.

How many projects - open-source, proprietary or other can boast such an easy on-ramp?

What Works Well?

Thoughts So Far

I like it! While I don't have too many projects that need a systems programming language I see the appeal in this one. It feels very much like something which you can understand the entirety of. Reading about using io_uring within Hare was a nice read not because it demonstrates any great feat of the language but because it gets out of the way. My sense of Hare so far is that you can learn it and then get to work (probably with a copy of The Linux Programming Interface handy). For me personally that vision appeals greatly after spending so much of my life chasing down package conflicts and bugs in third-party libraries.