Live data from Hacker News

APL and Array Programming

forums.fast.ai

11–20 of 29 posts

Re: APL and Array Programming

#11
post #6

APL seems like a great language for computer graphics! Has anyone tried their hands at the same?

I don't know if APL supports graphics, but ngn/k, an implementation of K, a language in the APL family, has JS support in its official online playground [0], which can be used for displaying graphics.

[0]: https://ngn.codeberg.page/k/#

Re: APL and Array Programming

#12
post #6

APL seems like a great language for computer graphics! Has anyone tried their hands at the same?

Someone made a 3D boating simulation using Finnish island geodata; called StormWinds and using Dyalog APL connecting to DirectX - https://www.dyalog.com/case-studies/simulation.htm

The author also has this video: https://dyalog.tv/APLSeeds21/?v=iC9floP7POU "Tomas takes you through the API of a 3D-engine and shows you how to connect to it from APL, enabling you to create a simple scene with graphics objects moving in real-time. He also explores some of the more advanced rendering techniques." (I haven't watched it)

Re: APL and Array Programming

#13
post #7

Earlier quoted context omitted.

Very cool, this approach will inevitably catch on, I think. I built a similar typed PL and compiler for Morgan Stanley back in 2013: https://github.com/morganstanley/hobbes

I read about Hobbes years ago. The embeddability certainly caught my attention. I wrote Empirical specifically for the use case of wanting to read a CSV file while inferring the type at compile time. Basically, a ton of compile-time function evaluation mixed with type providers.

Yeah, I had this type constraint system for doing that kind of thing, so I can load a file at compile time to get the type structure and then compile/evaluate to process data in the file or files. Same thing for network connections between communicating processes (type constraints at compile-time decide a protocol, machine code at run-time assumes that protocol).

Re: APL and Array Programming

#14
post #5

Well this is unexpected - didn't think my little study group would appear on HN! :O Well anyhoo, all are welcome to join; details in the linked thread (including playlist of last week's videos so you can catch up). As it happens, my interview on The Array Cast was just published today: https://www.arraycast.com/episodes/episode31-jeremy-howard In it I discuss my thoughts on array programming, including in PyTorch, nu…

I also have found that kids pick up APL very easily. Schools are probably missing a huge opportunity not using it to teach math and computer science.

Re: APL and Array Programming

#16
post #3

I recently did a project using Dyalog APL. I really wanted to love it. On the pro side, the community was great and I loved the language, but only to a point. There are way too many instances of utter astonishment at behaviors that seemed to be just how the language works. I had a lot of trouble finding good, mature libraries for things I’ve taken for granted in other languages. I’ve found that Julia provides 98% of…

This reminds me of what a BASIC programmer friend of mine said about C when he first tried it. After many (mostly senseless) debates, I eventually convinced him to try C after showing some bodged-together flashy graphics demo.

He got me to teach him basic C syntax and then took off on his own, writing a game. After a few weeks of hacking, he presented me with a decent Asteroids clone, "I don't see the point of C."

The funny thing is, when I looked at his main.c file, the entire code was written inside the main function, with copious use of gotos. He had essentially tried to speak BASIC using C.

APL isn't an Algol-like, and you're probably going to have a bad time writing APL trying to use the cognitive tools and intuitions you have as a programmer of Algol-like or even functional languages. This includes the tendency to reach for libraries, when you can, for example, implement an entire U-Net CNN in 30 lines of APL and be competitive with PyTorch performance.

In my (budding) experience, to "get" APL you have to laser-focus on writing beautiful, concise code from the onset. It feels painful as a student to spend weeks writing and re-writing just to produce 2 lines of code, but in the end those 2 lines will be doing the work of 20 lines of Julia, or 200 lines of C, and feel like a pure, direct mathematical expression of the algorithm you intend.

Re: APL and Array Programming

#18
post #3

I recently did a project using Dyalog APL. I really wanted to love it. On the pro side, the community was great and I loved the language, but only to a point. There are way too many instances of utter astonishment at behaviors that seemed to be just how the language works. I had a lot of trouble finding good, mature libraries for things I’ve taken for granted in other languages. I’ve found that Julia provides 98% of…

This reminds me of what a BASIC programmer friend of mine said about C when he first tried it. After many (mostly senseless) debates, I eventually convinced him to try C after showing some bodged-together flashy graphics demo. He got me to teach him basic C syntax and then took off on his own, writing a game. After a few weeks of hacking, he presented me with a decent Asteroids clone, "I don't see the point of C." Th…

I think this is the first comment I’ve seen that describes my general approach to learning and designing programming languages. The only other topics such statements are likely to be made are concerning Lisp (and it `mind expanding` properties).

I really wish more people would focus on using/making languages that cater to a strict niche but compile to a sensible and readable common root language/IR.

Re: APL and Array Programming

#20
post #6

APL seems like a great language for computer graphics! Has anyone tried their hands at the same?

This well-known J dude has done some: https://www.youtube.com/watch?v=CzK2SazvCxM And J is almost isomorphic to APL.

J has much easier access to graphics with bindings to a window driver and OpenGL .

APL also has support for GUI apps (Windows only) using .NET, but graphics takes some additional effort: https://www.youtube.com/watch?v=iC9floP7POU

Post reply on HN