Drew Chadwick DeVault / ddevault / SirCmpwn - Opinionated white-male-guilt-ridden software developer. Cancelled Hyprland and slandered it as "toxic" and transphobic. Hates X11 users and Hacker News. Lolicon.

it's like c but worse

C people don't like Hare because it's strictly less capable. Rust people don't like it because it's a worse C, Drew somehow managed to make a programming language disliked by all sides. Truly an accomplishment.
the point of the language seems to be "stable language for 100 years" but that's called c and you aren't going to do that
keep dreaming you little bitch
So he just made Rust
actually he didn't because iirc hare doesn't even have the raii and memory safety checking that rust does

hare literally seems to be a very lackluster incompatible derivative of c that has a reference implementation that targets a compiler backend that is itself a very lackluster clone of gcc
it has pretty much no reason to exist and i cannot think of reasons why anybody would use it, except for the case that you happen to be drew devault and you are unusually biased in its favor since you made the thing
i think hare's memey compiler backend is more potentially useful than hare ever will be tbh
 
i think hare's memey compiler backend is more potentially useful than hare ever will be tbh
Kind of true, QBE has some merit (60-70% of the speed for 10% the effort in implementation) but it's between two niches:

- Super fast compilation, decent code: You use a copy-patch compilation algorithm, which is implemented by Cranelift, or other equivalents. Cranelift outputs better code than LLLVM -O0 while being a few order of magnitudes faster. Great for JITs, interpreted languages, etc.
- Super fast code: LLVM, basically what any serious language uses these days for AOT compilation.

QBE excels at neither.

There's not much market for anything inbetween. A good JIT would utilize both poles (LLVM for hot loops, Cranelift for ~mid code, interpretation for cold code). And since you're not the one writing the optimizer, arguments for using QBE over LLVM are mostly tangential and related to DX.
 
  • Informative
Reactions: UERISIMILITUDO
There's not much market for anything inbetween.
there are other dimensions, though
for instance, i think it might be a neat complement/alternative to stuff like tcc if you're trying to make a sequence of compilers bootstrap each other
also its small size could be beneficial in certain scenarios because llvm certainly isn't an incredibly lightweight piece of software

that being said, qbe is a questionable backend choice to be used by a language as supposedly ambitious as hare
 
  • Agree
Reactions: UERISIMILITUDO
there are other dimensions, though
for instance, i think it might be a neat complement/alternative to stuff like tcc if you're trying to make a sequence of compilers bootstrap each other
also its small size could be beneficial in certain scenarios because llvm certainly isn't an incredibly lightweight piece of software

that being said, qbe is a questionable backend choice to be used by a language as supposedly ambitious as hare
Drew is a minimalism sperg. QBE is a small backend, Hare itself is kept small as well. That's what the "size of a 3 1/2 inch floppy" weird brag is there for on its front page. When you actually need performance on the level of LLVM in your hot code paths, I'm pretty sure the recommended solution is dropping down to assembly.
 
  • Agree
Reactions: UERISIMILITUDO
Back