APL is how non-programmers imagine what programming is, a kind of sorcery involving exotic symbols and elaborate ritual processes to create data and algorithms out of thin air. Like LISP, it's an eternal classic that every generation rediscovers and gets their mind blown as an educational experience about the strange nature of computing, logic, and language.
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.
APL was the first programming language I learned, I was obsessed with learning every intricacy of the language. I almost lost my mind when I had to switch to a procedural language. APL warped my mind in such a way that it took almost a month to feel comfortable using anything else.
If the Keyboard requirements for this language were not so high, I might have gotten into this language, but the cost of purchasing the equipment put me off. That is not to say that I don't find the language intriguing since that it is.
You can just change keyboard settings in any OS? The same way you change from QWERTY to DVORAK you can change to Cyrillic or... But every APL programmer just uses something like deadkeys, typing e.g. ` before another key like `[ becomes ← or `$ becomes ⍋. The same are largely used for BQN too. Every tutorial teaches how to type explicitly e.g. https://tryapl.org/
If you insist on looking at your keyboard, you can also buy stickers for like $10.
A lower cost option is to buy a set of sticker overlays (e.g. similar to the ones you can buy to make it easier to type Korean or Japanese, etc. on a US (or generally, non-native) keyboard).
I went out to talk with a guy, back in about 1995, in Chicago, fired up APL on his notebook, loaded the JPMorgan Risk Metrics data set, fiddled a bit, and reduced the thing to a one-line formula in an interactive window - like a Jupyter Notebook.
At my very first professional EE position, in 1978, there was an older staff member, PhD, kind of a professor type, who was programming in APL. Naturally curious, I asked him about it and what the strange symbols on the keyboard meant. His explanation mostly flew right over my head but I asked a few questions, thanked him, and went away. In 43 years, he's the only person I ever saw using it.
I've always been curious about APL. My grandfather partnered with an APL programmer in the early 70's to develop shallow geodesic dome geometries suitable for home construction and optimized for least number of distinct strut lengths. The one he lived in is still standing[0]
APL is how non-programmers imagine what programming is, a kind of sorcery involving exotic symbols and elaborate ritual processes to create data and algorithms out of thin air. Like LISP, it's an eternal classic that every generation rediscovers and gets their mind blown as an educational experience about the strange nature of computing, logic, and language.
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.
APL was the first programming language I learned, I was obsessed with learning every intricacy of the language. I almost lost my mind when I had to switch to a procedural language. APL warped my mind in such a way that it took almost a month to feel comfortable using anything else.
If the Keyboard requirements for this language were not so high, I might have gotten into this language, but the cost of purchasing the equipment put me off. That is not to say that I don't find the language intriguing since that it is.
You can just change keyboard settings in any OS? The same way you change from QWERTY to DVORAK you can change to Cyrillic or... But every APL programmer just uses something like deadkeys, typing e.g. ` before another key like `[ becomes ← or `$ becomes ⍋. The same are largely used for BQN too. Every tutorial teaches how to type explicitly e.g. https://tryapl.org/
If you insist on looking at your keyboard, you can also buy stickers for like $10.
A lower cost option is to buy a set of sticker overlays (e.g. similar to the ones you can buy to make it easier to type Korean or Japanese, etc. on a US (or generally, non-native) keyboard).
For example (no affiliation):
https://www.tindie.com/products/russtopia/apl-keyboard-symbo...
I went out to talk with a guy, back in about 1995, in Chicago, fired up APL on his notebook, loaded the JPMorgan Risk Metrics data set, fiddled a bit, and reduced the thing to a one-line formula in an interactive window - like a Jupyter Notebook.
Related. Others?
The APL Source Code (2012) - https://news.ycombinator.com/item?id=34064480 - Dec 2022 (58 comments)
Alan Kay on “What Made APL Programming So Revolutionary?” - https://news.ycombinator.com/item?id=19842238 - May 2019
At my very first professional EE position, in 1978, there was an older staff member, PhD, kind of a professor type, who was programming in APL. Naturally curious, I asked him about it and what the strange symbols on the keyboard meant. His explanation mostly flew right over my head but I asked a few questions, thanked him, and went away. In 43 years, he's the only person I ever saw using it.
I've always been curious about APL. My grandfather partnered with an APL programmer in the early 70's to develop shallow geodesic dome geometries suitable for home construction and optimized for least number of distinct strut lengths. The one he lived in is still standing[0]
[0] https://maps.app.goo.gl/YgExrSKh3UZu4XKw9
I used it when I was in college for my Senior Project. That would have been 1978/1979. I had a keyboard with the APL symbols molded onto the keypad.
There are a handful of modern keysets available with APL legends as well
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...
Well that opened a bit of a rabbit hole. Looking at the source code I saw this which made me chuckle:
Surely we wouldn't have DailyWTF quality code here. Looking for how it's referenced we find the RANDOM function itself: 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!