Skip to content
0:00 / 0:00

#apl#dyalog#programmingparadigms

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

Dyalog User Meetings

1.4K subscribers • 2 videos on Hallway

YouTube
  • Recommended by 2 people: 1 on Hacker News and 1 curated list.
  • Presented by Aaron Hsu, Indiana University
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

7.2K views9 years ago2 recommendations

Programming languagesSoftware designLanguage design and type systemsFunctional programming

Aaron Hsu explains why experienced programmers often struggle more to learn APL than beginners, contrasting traditional software engineering with APL patterns.

Aaron Hsu, Indiana University (U.S.A.) Aaron Hsu (Indiana University) has been evangelising for APL, both with trained computer programmers and with people who have no previous programming experience. In doing so he has observed that people in the former category have found the learning wall higher than those in the latter. Curious as to what could be causing this, Aaron investigated possible reasons, starting from Ken Iverson's principles of good language design. He identified eight patterns that contrast traditional software engineering practice with the patterns of practice that appear in well written APL code, and he shares those here before touching on code readability. Presentation Title: Patterns and Anti-patterns in APL: Escaping the Beginner's Plateau (U01) Event: Dyalog '17, Elsinore, Denmark, 10-14 September 2017 Presenter: Aaron Hsu Slides (online): sway.com/b1pRwmzuGjqB30On?ref=Link Introduction Challenges in Teaching APL Transparency over Abstraction Importance of Brevity & Idioms APL Syntax and Problem Solving Filtering & Deleting Functions Readable APL Code System-Level Optimization -------------------- Learn more about APL and compete for one of three $100 prizes! Open to all skill levels. challenge.dyalog.com Our other annual competition promotes APL through innovative open-source libraries and commercial apps built with Dyalog APL. The winning entry receives £2,500 GBP and an expenses-paid opportunity to present the project at a Dyalog user meeting. forge.dyalog.com -------------------- #APLProgramming #Dyalog17 #CodingChallenges #DesignPrinciples #ProgrammingIdioms #ReadableCode #SystemOptimization #AbstractDesign #APLTrains #LogicalExpressions

Why it's here

2 people recommend this

What people say. Recommended as an insightful look into array programming paradigms and why traditional software engineering habits can hinder learning APL.

programming-talkscurated list on GitHubRecommends

Under “APL”

Patterns and Anti-patterns in APL: Escaping the Beginner's Plateau 00:59:02 by **Aaron Hsu** (2017)

feelin_googleyon Hacker News • Recommends

On “APL Style: Patterns/Anti-patterns”

For those who do not use Javascript in the browser, here is another source of the presentation: link to 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 link to 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…

u/gopher9in r/ProgrammingLanguages • Mentions

On “Psychedelic Programming Languages”

Suggestions for next trips: APL and Prolog. Here are some links: - link to this video - https://xpqz.github.io/learnapl/intro.html - https://www.metalevel.at/prolog?ref=hackr.io

ognyankulevon Hacker News • Mentions

On “APL Style: Patterns/Anti-patterns”

Two talks with these slides: 1. link to 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)

eggyon Hacker News • Mentions

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…

jodrellblankon Hacker News • Mentions

On “Blurring the Line Between User and Programmer”

Aaron Hsu’s talk on APL - I think this talk - link to 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…