Live data from Hacker News

APL deserves its renaissance too

wordsandbuttons.online

21–30 of 123 posts

Re: APL deserves its renaissance too

#22
Neat little tribute article.

APL will not be reborn. If that was going to happen, this century's embrace of analytics and linear-algebra-rich machine learning would have propelled the upswell. It didn't and it won't.

Why? It's not the symbols. Not the keyboard. Nor the learning curve. Nor the lack of standardization, libraries, or GPU support. These are collateral damage, not primary drivers.

APL will not flourish because it is effectively a DSL with archaic I/O capability. It is a nearly-pure functional programming language. It's primary domain is mathematics. Native GUIs, networking, the web -- all uncompetitive add-ons.

In this sense, APL and Haskell share some DNA.

For dynamic systems modeling for my thesis, I reached for APL and Matlab. I still code Dyalog APL for recreation. Love it. But I wouldn't build a web app with it and a wouldn't run my company on it.

Re: APL deserves its renaissance too

#23

If you want APL to be reborn make a version that supports GPU acceleration. That just might give it momentum enough to be used, a language that runs with the native speed of the GPU and that is easy to compose without having to fiddle with the details could be a winner. There is this: https://github.com/Co-dfns/Co-dfns But it's not quite it. As for the word 'deserve': computer languages don't really deserve anything,…

No experience, and not APL; but [0] pops up on my radar now and then.

[0] https://futhark-lang.org/

Re: APL deserves its renaissance too

#24

If you want APL to be reborn make a version that supports GPU acceleration. That just might give it momentum enough to be used, a language that runs with the native speed of the GPU and that is easy to compose without having to fiddle with the details could be a winner. There is this: https://github.com/Co-dfns/Co-dfns But it's not quite it. As for the word 'deserve': computer languages don't really deserve anything,…

It would be a great dsl for tensor comprehensions. Also it's a better notation for much (most?) of the math of data science. I wish papers used it. Then the math would be unambiguous and testable and maybe even correct.

Re: APL deserves its renaissance too

#25
post #6

I've felt that high-DPI touchscreens are the opportunity for an APL renaissance, if there's ever going to be one. Once hardware keyboards standardized around ASCII in the '70s, it cramped the promise of APL's custom notation. On touchscreen it's trivial to render a software keyboard that contains the entire symbol set (perhaps even adapted to the user's experience level to make it less scary initially?). Increased re…

* e.g. scaling symbols based on their context and nesting level, just like we do in math equations*

That's a great idea. I can see it working in other languages as well, e.g., what Guy Steele and others were trying to do in Fortress.

Re: APL deserves its renaissance too

#26

I'd love for it to go more mainstream with a high performance open source implementation. Dyalog is pretty good, and I like J, but feel the missing symbol leaves something out. K/Q with kdb+ is too expensive, and the other open source array language implementations (Qnial, Klong, Kona, GNUAPL)are just not there.

How is GNU APL not there? It is standards compliant, 99.9% pure APL2 (per ISO standards), and is actively maintained (bugs and issues are usually turned around in a day or two). It performs quite well, and can be easily extended. I have even added memmap vectors to it to achieve even more performance (and to begin GPGPU integration). GNU APL also supports a library version (libapl.so) which allows APL2 to be incorpor…

I think it requires a more expert user. I couldn't get the manual install process to work on Ubuntu and I believe it requires MinGW or Cygwin to work on Windows (not for a beginner either). Don't get me wrong, I'm really really glad it is there.

Re: APL deserves its renaissance too

#27
post #17

I want to draw APL. Like with a stylus. That's pretty much how I'd want to use it, and the only way I'd bother. It's cool tech but it's general purpose appeal is nonexistent and there is already Julia and Matlab in technical computing space. If I could draw APL symbols and have some common libraries for JSON and Http and stuff like that, I could see a renaissance having enough steam to do something. Otherwise, it's o…

Remember the Palm Pilot? Drawing the ASCII-ish symbols in the little box? While I did memorize the strokes, I never found the process efficient. I don't think that drawing APL runes would be any better -- certainly not better than the key-combos of Dyalog's bespoke APL editor (free for personal use, BTW).

Re: APL deserves its renaissance too

#28

If you want APL to be reborn make a version that supports GPU acceleration. That just might give it momentum enough to be used, a language that runs with the native speed of the GPU and that is easy to compose without having to fiddle with the details could be a winner. There is this: https://github.com/Co-dfns/Co-dfns But it's not quite it. As for the word 'deserve': computer languages don't really deserve anything,…

How is Co-dfns not what you want? It is by far the best attempt I know of for bringing the full power of APL to accelerators like GPUs[0].

...however, it is not easy. Full APL has a lot of features (like nested arrays) that are incredibly difficult to map to GPU execution. And in general, APL is not easier to map to GPUs than your bog standard Numpy-style matrix library (in fact it's harder, since Numpy only has regular arrays and simple operations).

[0]: I was involved in a project that targeted only a small well-behaved subset of APL, which was hard enough: https://github.com/henrikurms/tail2futhark

Re: APL deserves its renaissance too

#29

No, it does not. I used APL professioally for about ten years back in the 80's. I love the language. It is incredibly powerful. Once you internalize it's like playing the piano, you don't think about the mechanics you play music. However, the language did not stand the test of time for far more important issues than the inconvenience of the character set and the keyboard. And, no, J is not a successor to APL, even th…

I think most of the users here realize the reality (lack of users and libraries), but also recognize the power you described. I'd love for a simple open-source & multi-platform interpreter with a built in keyboard and package manager. Simplicity is key here. J basically has this, but I agree the syntax is difficult for me.

Re: APL deserves its renaissance too

#30

Neat little tribute article. APL will not be reborn. If that was going to happen, this century's embrace of analytics and linear-algebra-rich machine learning would have propelled the upswell. It didn't and it won't. Why? It's not the symbols. Not the keyboard. Nor the learning curve. Nor the lack of standardization, libraries, or GPU support. These are collateral damage, not primary drivers. APL will not flourish be…

Is there a reason one wouldn’t just build the core engine of SIMD math software in APL, much like people build the core engines of medical-system software in Prolog?
Post reply on HN