Hacker News new | ask | show | jobs
by Volt 2500 days ago
Two things:

1. Why does the article in particular upset you? You talk about how J looks like ASCII vomit, and the article is trying to mitigate that. Perhaps it doesn't go far enough, which I would agree with.

2. What does an APL successor look like? Beyond object-orientation (which I don't see as contributing much).

1 comments

My apologies for not replying right away...just busy.

No, the article does not upset me. In fact, none of this upsets me at all. If it did I would stop my work in other areas and devote all of my efforts towards bringing "NextAPL" to the world for all to enjoy.

APL is, for the most part, and sadly, a dead language, has been for quite some time. Yes, yes, there are corner cases of usage but that's about it. It's more of an academic oddity these days than anything else. Again, sad to say this because I learned it when I was about 19 and used it for about ten years with great success.

Precisely because APL is a dead language virtually everyone who writes about APL doesn't really know APL and "the APL way".

The best I can explain what this means is to compare it to musical notation. This, of course, requires that the reader know and understand musical notation beyond the basics. In other words, if the reader has a few years of traditional musical training they'll get this immediately.

Simple concept: Once you grok musical notation, not only do you read it without effort, you see patterns in it, your brain can "see" the music, you can talk about it, you can write it and you can communicate your thoughts with this notation.

Now imagine someone comes along who doesn't want to put in the effort to learn and use this notation. What comes out of that are things like tablature and other stuff. Let's call that ASCII vomit just to stay with the theme.

Useful?

Sure?

The same?

Not even close. Not by a long-shot. In fact, it is primitive, inelegant and most-definitely not conducive to working "at the speed of thought", something Iverson clearly indicated APL enabled. Something anyone who has used APL for a non-trivial amount of time --defined as typing and reading it like a trained musician does musical notation-- will attest to.

Programming in APL, in this sense, can feel very much like playing the piano using sheet music with traditional musical notation.

Another way I always thought about programming in APL was to envision data structures floating in space in front of your while having powerful symbolic tools to manipulate them. It's almost like those scenes with Tony Stark using an advanced holographic CAD system to design his hardware. No mechanics, all thought.

In terms of an APL successor, well, this is hard to fully define until you dive into a project that would aim to product such a thing. I wrote about this on HN a few years ago. Rather than copy the whole thing, here's a link:

https://news.ycombinator.com/item?id=6117346