I was a co-op student at IBM Canada in 1986-87. I got sorted (think sorting hat - hiring was generic) into the APL cohort. We had a fun course at the beginning and then I was shipped off into ... get this ... a marketing group.
So here I sit in front of a then very fancy 3279 terminal writing my little APL programs to do what they wanted - mostly extract/reformat/summarize data from one sort of file format to another. Was this a particularly good fit for APL? Not really, but if all you have is a hammer...
Anwyay one day I poked around in other APL code that was on the system and visible to me, and ran one program and wham... the screen on the 3279, which to that point I'd only known as a nice colour text terminal - exploded into fancy graphics. Mind blown. How did they do that? I never found out, because the program that did that was, as you say, "write only" - it looked like screenfuls of random noise.
But yes, APL was used in the mainstream, at least in the IBM internal world, as late as the mid 1980s. Maybe the use was artificial - you know, train new cohorts of co-op students in it and make them use it for real work - as a sort of dogfooding, don't know.
> You could hardly even use it without getting a custom keyboard for it.
Not true. I can still touch-type APL, decades after my last use of the language and I don't have an APL keyboard.
Those complaining about typing being difficult or the funny symbols are not thinking this through.
What's the difference between typing English (or another language) on a computer keyboard without looking at it and typing APL.
None. Exactly zero.
If you don't learn how to type without looking at the keyboard, typing any spoken language is a slow grind.
How long does it take to learn to touch-type, say, English? Not too long. It takes effort and dedication that is well within the skills and mental capacity of 99.999% of the people who use computers. APL is no different.
Of course, you can't go from touch-typing English to touch-typing Greek or Japanese after a few sessions with a card in front of you. It takes work. You have to learn it. And then it's easy.
When I got started, in the early 80's, we would put stickers on the keys, buy a set of replacement keycaps or a ready-made APL keyboard. After not too long the keyboard no longer mattered. I, and everyone else I knew who actually used APL for more than a curious exploration, could touch-type APL on a normal keyboard without any custom labels or keycaps at all. As I said above, I can still do it, decades later.
If you don't touch-type, typing English is terrible; you might reach 24 wpm. The words just have so many letters! By contrast, ιρρω, ("generate the indices for the dimensions of the right-hand argument") is four keystrokes on three keys, like BASIC on a Sinclair ZX-81. That seems like it would make APL a lot more usable for a non-touch-typist than English. With the stickers, anyway.
(I do keep forgetting which keys I have ψ and ξ on in Greek: the illogical C and J. Maybe I should make stickers.)
For a period of time, custom font ROMs or typeballs were harder to improvise than custom stickers; although the PLATO IV and V terminals had both softfonts and overstrike, very few were ever made, and both features were entirely missing from more common hardware, like the IBM 2741, Diablo daisy-wheel printers, Epson MX-80, ADM-3A, VT-100, VT-220, Heath H-19, IBM MDA, Hercules, and even the CGA. In 01986, in the Microsoft shill magazine PC Magazine, Charles Petzold touted this killer new feature of the US$524 EGA: "Even with 64K [video RAM], the normal font is replaceable by software." (March 25, 01986, p. 115.) The TI-99/4A and Nintendo Famicom did of course already use programmable "character generators," but I don't think anyone ever offered APL for them. Eventually, of course, we all moved to framebuffer displays backed by cheap semiconductor RAM, so custom fonts were no longer a premium feature.
I think the "font problem" really was a significant issue for APL adoption during the period 01968–01988, and as it turned out, that was a crucial formative period for computers; that was when we got, among other things, the PDP-8 (and thus process control computers), Unix, TCP/IP, C, the Macintosh, the IBM PC, MS-DOS, spreadsheets, object-oriented programming, semiconductor RAM, computer animation, digital music synthesizers, TeX, Intel and its 8008/8080/8086/80386 line, the primacy of ASCII, the 68000, ARM, RISC in general, and the modern IDE. Of these, only MS-DOS and the 68000 have really fallen out of favor.
There are a lot of path-dependent things in computing that we can attribute to standards established during that time. If IBM hadn't had their head so far up their ass, or if VisiCalc hadn't been written until 01986, things might have turned out very differently for APL.
Yup. Used those. I had a PC rigged with a toggle switch and a custom little wire-wrapped board to be able to switch character ROMs. I even wrote printing utilities to be able to pause and swap out the IBM printer's type ball when printing documents that required a mixture of APL code segments and regular text. I wrote a custom hybrid text editor in APL for precisely this purpose, to be able to do application notes that included both character sets.
> I think the "font problem" really was a significant issue for APL adoption during the period 01968–01988
Yes, agreed. The bit of APL history casual observers miss is that Iverson's motivation for transliterating APL symbols into J was exactly this problem. He tried to solve a business/financial/adoption problem. As a result, he bifurcated and confused the APL world. He was wrong to make this decision. And, what ended-up happening was that both languages became oddities rather than what APL could have become with the capabilities of next generation hardware.
That and the cost of licenses. As a student I got free licenses but it was hard to justify what some of these packages cost. STSC's, I think, was the lowest cost most popular version used by most of the university types I used to engage with. IBM's version had penetration into business because of their position with mainframes. Once again, splitting the ecosystem did not do anyone any favors. J is an abomination (it defecates all over Iverson's own seminal paper on the power and value of notation as a tool for thought).
APL had many issues that truly needed resolving. Simple things like the object oriented programming and heterogenous data types would have been very interesting to explore. The other thing may have been providing official means for avoiding O(n^2) issues where just a few innocent looking operators would result in converting vectors intro matrices or >2 dimensional arrays and then having to do all that processing when a simpler procedural option that does not expand to consume all available memory would have been great. In some ways this is the world of Python and numpy today. You can work at various levels of abstraction and be reasonably aware and in control of resources and computational complexity.
Indeed, when APL was first available, you couldn't use it without a custom machine: an IBM system/360 mainframe. The keyboard was the least of your worries. And APL was distributed for free! Why charge for software when it's written in 360 assembly?
APL was near-mainstream in the 1970s thanks to time-sharing[0] (the article mentions this starting with "APL thrived in the 70's and 80's"). In fact, time-shared APL was significantly easier to use than most languages because it was used from an interactive session rather than punch cards. With results typed onto paper tape! It was used for a lot of practical tasks like administration where Excel would now be the most common tool. One book on APL had sales in the hundreds of thousands, and conferences[1] had attendance of over a thousand for a few years, despite competing with additional vendor-specific conferences.
Actually, Dzaima's APL app for Android has a very intuitive keyboard, coupled with APL's terseness, allows me to do pretty intricate stuff on my phone that I can pick up later at my desktop if it gets bigger. A lot of the resistance to the array languages is one of familiarity and aversion to anything new or different. Just try it. Math scared you as a kid too most likely, and even though you may not be a master mathematician in your adult life, I am sure you cleared some seemingly obtuse hurdles in your youth.
Honestly I think you'd have to be pretty proficient at APL for the touchscreen typing to become a problem. When I dabble in APL, I use the mouse to click on the buttons in the Dyalog language bar[0]. It doesn't matter -- it takes me much longer to think of what to type than it does to pick with the mouse.
That and finding the symbol on the the keyboard if it lacks the APL labels. I learned it with a small reference card I placed on top of a standard IBM PC keyboard.
I mean, given the number of new implementations of APL that are being actively worked on, there is clearly some interest.
The most prominent such dialect is BQN, which I definitely recommend anyone interested in APL-like languages to take a look at. https://mlochbaum.github.io/BQN/
In the 01950s through the 01970s you almost couldn't use a computer at all without getting a custom keyboard for it, so that wasn't an extra obstacle for APL. (You couldn't connect your Smith-Corona or Selectric to a computer, and until 01963, teletypes spoke 5-level "Baudot" code.)
One of Stallman's first jobs was writing a text editor in APL in the 01960s.