Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17

Dyalog User Meetings · 7K views · 2017 · 59:03

Open on YouTube

Programming language designFunctional programmingtalk

Why Hacker News recommends it

Shared in APL threads as a thought-provoking talk with lots of useful commentary beyond the slides.

Recommended by 1 people across 1 different months, 2018 to 2019.

What it is

Aaron Hsu explains why programmers often find APL harder to learn than people with no programming background. He identifies eight patterns that contrast traditional software engineering practice with APL practice, starting from Ken Iverson's language design principles.

What people said

Recommends feelin_googley · 2018-03 · Hacker News · on “APL Style: Patterns/Anti-patterns”

For those who do not use Javascript in the browser, here is another source of the presentation: [this video] Lots of good commentary not in the slides. And here is a way to download the video without Javascript. I have been meaning to try to rewrite this in k. # Notes # Works by brute force and has been reliable for years # Was easily updated when YouTube made changes (rare) # Zero dependencies except tr, sed and an https client # Takes a YouTube URL on stdin # Example usage: # echo [this video] 22 file # "ytd" is name of the script # "22" is itag-no in this case large mp4 ("18" is smaller mp4) # "file" is optional filename, no extension required # if no filename given video is saved as "1.mp4" # UNIX

Cites ognyankulev · 2018-03 · Hacker News · on “APL Style: Patterns/Anti-patterns”

Two talks with these slides: 1. [this video] (Dyalog17: Patterns and Anti-patterns in APL: Escaping the Beginner's Plateau) 2. [LINK] (Design Patterns vs Anti pattern in APL by Aaron W Hsu at FnConf17)

Cites eggy · 2019-05 · Hacker News · on “Translating math into code with examples in Java, Racket, Haskell, Python (2011)”

@ddragon your points are well taken. I will look further into Julia. I still think when I wrote "out of the box" with APL in mind as far as expressing math, or J for that matter if you learn the ASCII symbols. I've seen other examples since your post on Julia that show similar math expressiveness, but they seem to rely on libraries or the syntactic sugar provided by the libraries. I haven't tried your example, but it looks like vanilla Julia. My familiarity with Matlab makes Julia an easy choice for me too. Here is a simple example in J: +/ % # The above is an average function in J. It is a fork, where you fold right over the input (+/), and divde (%) by the tally (#) or count of items, so t

Cites jodrellblank · 2019-10 · Hacker News · on “Blurring the Line Between User and Programmer”

Aaron Hsu’s talk on APL - I think this talk - [this video] - has a more radical interpretation; by the time you’re using lisp to compose lightbulb apis and Bluetooth stream hacking, you’re already past the point of divergence that you mention and are on the wrong side of it. APL does the hard part of choosing composable functions and presents those to the user, as a simplified interface. Sorting isn’t a global namespace of thirty different sort algorithms so you can delight in picking the exact one you want, sorting is one character (⍋) so you can use it as a composable building block and not care about the details. I might agree that the core issue is that programs have become less composable ov