Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

APL looks like a lot of fun, and I've tried to get into learning it for a while, but it's a shame that the most popular implementation is proprietary, and GNU APL is a dialect which is not as featureful and a separate dialect of APL unto itself, so it's not as though you can write a reasonably sized APL program with Dyalog and then expect it to work in GNU APL.


You can download a copy of Dyalog for free, if availability is the issue.

If it's licensing/a desire to use open-source software, perhaps taking a look at its close relatives of J, or BQN, would be reasonable?

* Dyalog https://www.dyalog.com/download-zone.htm * J https://code.jsoftware.com/wiki/System/Installation/J903/Zip... * BQN https://mlochbaum.github.io/BQN/index.html

All of the languages and implementations have their differences, but they are all driving toward the same ultimate goals.


"The GNU APL interpreter is an (almost) complete implementation of ISO standard 13751 aka. Programming Language APL, Extended." [1]

GNU APL is closely following the APL2 standard [2], Dyalog has lots of (proprietary) extensions.

APL does not have its roots in the FOSS world, all the more the efforts to provide and maintain a powerful, free option here are to be supported. It is not self-evident that there are always free software alternatives available.

[1]: https://www.gnu.org/software/apl/

[2]: https://www.ibm.com/downloads/cas/ZOKMYKOY


The standard for APL2 is quite old and doesn't reflect the state of commercial APL at all (Dyalog is the only one with significant development now but APLX and APL+Win kept it going through the 90s). For example, GNU doesn't have control structures so you are expected to program with the branch statement, APL's version of go-to. It also has various extensions of its own, including some that are based on Dyalog but not compatible. It's the only dialect that I would recommend against; I believe April, NARS2000, and dzaima/APL are all better despite various issues.


Oh, I didn't know that. Looks like I was completely wrong about GNU APL. Thanks for the links.


I highly recommend trying BQN [0]. It's a lot of fun indeed. It retains the array programming paradigm but modernizes a lot of things -- and has excellent documentation (but not much in terms of ecosystem, yet). The main implementation is GPLv3.

[0]: https://mlochbaum.github.io/BQN/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: