Also by the same author.
But it does come with some design decisions that I'm a bit ambivalent about and for which I haven't found a good explanation:
- No persistent data structures. I guess this has something to do with limitations of the GC?
- unhygienic macros combined with lack of namespaces. XOR those two choices would be fine, but the combination is janky
- Somewhat peculiar choices in syntax. It's neither Scheme, nor is it Clojure. # starts comments, ; is splice, @ marks literals as mutable...
Imagine the piano had only white keys, no problem right? Now just place the black keys at the back, between some of the white keys, right in the middle, such that each black key takes like a quarter of the width of the sandwiching white keys.
Now what's the problem with this again? Can someone explain in clearer terms?
If the issue is that we are trying to make the white key all have the same width at the back, well, why should that matter? Pianists don't press the white keys all the way at the back, do they?
Problem is that then the keys are not equally spaced chromatically (e.g. larger spacing between B and C than between C and C#).
You could probably get used to play like that, but it would be ineficient in terms of space for both the fingers and the mechanics of the piano (hammers, strings).
So what you do, in reality, is move some of the black keys down a bit (C#, F#) and some up (Eb, Bb) so that the spacing between the center of the keys is regular.
I don't think that's what's described in the article though?