Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Hare is a boring programming language (harelang.org)
29 points by ddevault on Nov 28, 2022 | hide | past | favorite | 14 comments


> Many new systems programming languages are exploring big ideas and novel tools. Zig has comptime, Rust has procedural macros, and so on — but Hare lacks any grand ideas.

Would you say that the "big ideas" are being explored purely out of keeping stuff "exciting" or more due to an actual need for them? 50 years is a long time and requirements change.


There might be a need for these ideas, sure. They're worth exploring. But it's a bet, or a gamble: they're exploring novel territory. Hare aims to distill proven ideas into a simple package which represents the best approach as of $CURRENTYEAR, then use it to build a platform which will be stable for as long as possible. It might not be perfect -- the next language can improve on it, or maybe one of Hare's contemporaries will succeed -- but it will be dependable, and that's a trait worth optimizing for in at least one language.


If people wanted to use things like generics and metaprogramming with Hare, what's the solution? Write a transpiler, or just don't–use another language? I admire wanting to keep the language simple, but generics usually makes my programs simpler. At the expense of a more complicated language specification.


You probably want to use another language. Hare does not aim to support every use-case, but instead seeks to thrive in its niche. But I would also recommend giving Hare a shot and not writing it off because it lacks generics -- you can do a lot with it regardless.


I like the error handling by match/case error pattern.

Elixir shares this pattern too as well as other languages I'm sure. Did you draw inspiration from other languages for Hare error handling?


It draws from the (growing in popularity) approach of tagged unions/result types among many languages, but generalizes it a bit and makes it easier to use in an ad-hoc manner.


It looks like a language equivalent to Hare can be obtained by adding restrictions to C++.

Considering the lack of key C++ features (e.g. generics) in Hare and the lack of adoption, and most importantly the fact that you should use a memory-safe language like Rust instead of any memory-unsafe language like Hare or C++, there doesn't seem to be any practical use for the Hare language.


The practical use is that it's a programming language for purists or Luddites. You know, the kind of people that like suckless tools, Plan 9, C89, maybe Forth, or even R4RS Scheme. Maybe hate on the latest C++ standard or systemd. Programming is social, and these people need their safe spaces too.

Will they pull it off? Languages need killer apps more than they need language features. So there's both a chance and work to do. Let's see.

For me, you know, I feel like this industry is soulless and dull enough; I don't need a boring programming language to top it off. If all I'm doing is helping someone get even richer, at least let me have some fun while doing so.


>If all I'm doing is helping someone get even richer, at least let me have some fun while doing so.

Not everyone needs a language filled with features and abstractions to have fun programming. Some people just enjoy making programs doing something more than playing with higher order functions, meta-programming, etc.


  > Not everyone needs a language filled with features and abstractions to have
  > fun programming.
Yes, people who need these abstractions to have fun programming are a minority.

Unfortunately, I don't get dopamine rushes ticking feature requests off. I stopped being excited about making a cube spin on the screen long ago, so it's no longer about the what but the how: I need to fix problems in creative, clever, and expressive ways.

So Hare is not for me, but it's great that it exists.


>the fact that you should use a memory-safe language like Rust

That isn't a fact and neither is something someone necessarily should. Not everything mandates memory safety.


You should package up Hare in nixpkgs. It would be nice to be able to play with it that way.


Hare is available in nixpkgs to the best of my knowledge.


nice! you're right. Apparently Google just doesn't index files within nixpkgs anymore, so my usual "hare nixpkgs" query came up empty. Thank you :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: