I have mused about a related question since I got my first computer eons ago. It had only a machine code monitor (yes, a though start to learning what a computer was). It does seem some kind of Forth might have been the good first step on the path to high-level languages (like https://github.com/uho/preForth) but it's sure not the only way.
This book takes an historical perspective. When I bought my first computer in 1980, an Apple II, lower case required a hardware mod. Lisp had already been around for decades.
In every major system one can now hide upper case conventions, but they too often default to old man shouting "GET OFF MY LAWN". And of course, those parentheses. One can easily represent trees by a notation that does away with most parentheses, but instead they've become a loyalty test.
At $20 or even $30 I would have bought the PDF for this book, to keep my library complete, to support all Lisp efforts. $40 made me think. This is a pure optimization problem; one should roughly want to maximize revenue, but favoring number of copies sold for the side benefits. I doubt that $40 achieves that maximum.
I enjoyed the return to typing in upper case very much! Ancient LISP in particular is nice to type, because there are only letters and the occasional dash, asterisk and parenthesis. All the special characters in modern languages really hurt my fingers!
>One can easily represent trees by a notation that does away with most parentheses, but instead they've become a loyalty test.
But can you copy or delete an expression from that other representation by paren-matching in your editor? To me (and others I guess) this was not much of an initiation ritual. I fell in love with parentheses on first sight.
> $40 made me think.
I get that! And to be honest, writing becomes more painful as I grow older, so I adjusted the price a bit to compensate for that. So far the sales numbers suggest that people are willing to spend the money.
BTW, the PDF and paperback generate the same royalties (as with all of my books). The price difference is the production cost of the physical book. So you pay the same for the content in either case.
If it helps, I opted for the paperback. Looking forward to giving this one a read.
The caps point is interesting to me. I can't think of a good reason why caps should be shouting, but I definitely agree with it. Hilarious to remember back when mixed case was not the norm. (Also, awkward to work in languages where symbols are case sensitive. Worse when they are case significant.)
I'm curious on the tree representations you mean. Most make some use of whitespace, that I have seen. But they lose the portability of the representation that I have with easy copy/paste to other environments. (To and from chats, emails, etc.)
Originally Lisp was all upper case. The line of languages is six decades old, after all. The first Lisp program I ever wrote was on punch cards on an IBM 7094.
The evolution of to Common Lisp had to deal with this. The solution (which works well) is that the default mode of the Lisp reader converts symbol names to upper case, unless they are escaped. So, the common case is that symbols are lower case in source files, but are upper case internally, and typically are printed in upper case (that can be tweaked if desired.)
So we have Lisp where case does not (mostly) matter and Python where even whitespace matters. We have APL famil;y of languages which invented their own alphabet. In hindsight I wonder if there is any consensus or studies on which approach is the best?
In hindsight we know now what was problematic about the lisp reader conventions.
The default should have been lowercase case-sensitive, esp. for the ffi.
But we've only got uppercase case-insensitive, with flags for inverse (an ugly hack) and case-sensitive. This way you can call C or Java functions, but internally it's all case inversed. And still broken in some lisps