Notation as a Tool for Thought, the 1979 ACM Turing Award Lecture by Ken Iverson who developed APL, is insightful in understanding some of the thinking behind it.
I found this part remarkable:
> The executable language to be used is APL, a general-purpose language which originated in an attempt to provide clear and precise expression in writing and teaching, and which was implemented as a programming language only after several years of use and development.
This is also how Python started out! I always thought, "Python is so easy for beginners because it is a teaching language." Well, so is APL!
(Also I hear they're more than a bit sad about how crude procedural programming is! But unfortunately I came at it the other way around, so my standards are permanently lowered ;)
https://novelkeys.com/products/cherry-olivia?variant=4300136...
https://21kb.com/products/21kb-apl-classic-retro-beige-keyca...
https://omnitype.com/products/gmk-dimensional-cyl?srsltid=Af...
The APL Source Code (2012) - https://news.ycombinator.com/item?id=34064480 - Dec 2022 (58 comments)
RNUMBER DC F'16807' RANDOM NUMBER.
Surely we wouldn't have DailyWTF quality code here. Looking for how it's referenced we find the RANDOM function itself: * RANDOM NUMBER GENERATOR.
* LEHMER'S METHOD, CACM JUNE '66, P 432.
* N(I+1) = P RES Q X N(I)
* P = (2**31)-1
* Q = 7**5
Following that lead to the original ACM article referenced:https://dl.acm.org/doi/epdf/10.1145/365696.365712
Which further lead to this rather interesting article on the history of the ROLL function which relies on this random number generator:
https://www.jsoftware.com/papers/roll.htm
Neat!
If you insist on looking at your keyboard, you can also buy stickers for like $10.
Don't get me wrong. I like the idea of a compact language and may reconsider APL in the future if, my financial luck changes :)
https://www.jsoftware.com/#/README
I actually prefer a hybrid solution, i.e. using a part of the original APL symbols, which are now provided by Unicode, so you can map them on any standard keyboard as you please, while other symbols are replaced by keywords.
The reason is that a part of the original APL symbols make sense and are useful, because they are extensions of the traditional mathematical notation, while some other symbols, e.g. those used for trigonometric functions, are arbitrary and had only the purpose to make the text somewhat shorter and simplify the parsing of the language at a very early time, when the available resources were very scarce, and this does not matter today any more.
For example (no affiliation):
https://www.tindie.com/products/russtopia/apl-keyboard-symbo...
Nothing against the APL, J & K languages but my brain got accustomed to using the R-Language and R-Studio, even over Python, partly because of the same keyboard difficulty, at least in my case, but also because it felt somewhat, more complete, and organized than Python. That's how my brain works, me thinks. Lately, I've started contemplating learning LUA since it's easy to work with and tied to Roblox, for game making, but again, AI's put a pause on all things related to learning, as far as mentally absorbing new stuff is concerned. I don't see the point.