What a pity this is down. If anyone wants to do the legwork of arranging it with the people who run the site, we could give this story a second run at the front page some day it might hold up better. Alternatively, if anyone at tryapl.org sees this, email us at hn@ycombinator.com and we'll try to help.
I got into APL for a while at Caltech in 1969, a year after I started programming. After the more verbose languages I'd learned (BASIC, Algol 60, and a couple of assemblers), it was fun to see how much could be done with so little code.
We had one of the IBM 2741 Selectric terminals with the APL keyboard and typeball, which made editing code a lot easier!
This reminds me: I seem to recall that some years back, there was a research programming language announced here on hn. One of the distinctive features was that they used (unicode) symbols for the source. I wasn't aware of APL (and APL keyboards) at the time -- so didn't make the connection.
I think it was much newer, and more similar perhaps to haskell with latex for syntax, than APL. I remember the language was hosted in a trac[1] instance, and I believe it was a research project from a major US college, maybe Cornell?
Does anyone have any idea what I might be (almost) remembering?
I've tried searching, but I don't think it was a "show hn:", and either way, looking through all programming languages submitted to hn is a bit of a daunting task...
>"The reason for wanting a definition for zero divided by zero is given by Falkoff and Iverson in The Design of APL as "it was deemed desirable to avoid an error trap in this case."
I think that both decisions are crazy. Any calculation that leads to division by zero is indicative of a conceptual problem, and the user should be alerted to this by an explicit declaration of error, not silent failure. I guess that this is mitigated by the fact that the languages are intended to be used interactively by individuals who know what they are doing.
As an alternative to the expensive, proprietary implementations of APL, one can also try NARS2000, which is a free, open-source, ISO/IEC 13751 Extended APL.
I find that division by zero usually satisfies some edge condition in practice, as you are usually dealing with lists of numbers in APL, and it doesn't really come up that often.
But which is preferable 0 or 1? Maybe something in between, or maybe even something surprising like -1/12? Which choice will lead to the least error in the long run?
I'd say, if you like APL, if you grok APL, you will not like J, K or anything that does away with the beauty and power of notation as a tool for thought.
Do J and K really do away with notation as a tool of thought?
I don't know much J, but my understanding of K is that it simply maps APL's functionality onto ASCII - and imo this transformation doesn't impact notation, especially once you have spent a decent amount of time reading it.
Two quick comments. One, there's been a lot of primitives added since I knew APL some decades ago, some of which would be rather hard to type with a 2741 selectric (equals underbar slash?), and some like jot-dieresis and tilde-dieresis where I think they were just really bored one night and trying to think up the silliest possible overstrikes. Two, how do you get rid of the "pop-up APL keyboard" once you pop it up? Hint: you don't need it, click the Primer tab and you can enter symbols from there.
Touch screens on mobile devices offer a potential workaround for the friction created by APL's special keys. There's even a keyboard already out in the wild: