Why APL is a language worth knowing

FnConf 2022


Description

“A language that doesn't affect the way you think about programming, is not worth knowing.” ― Alan Perlis, in “Epigrams in Programming”

Following Alan Perlis's words, this talk will show why APL is a language worth knowing. In other words, I will devote the talk to showcasing characteristics of APL that are likely to, on the one hand, influence the way you use other programming languages, and, on the other hand, understand concepts of computer science.

By listening to this talk, I hope to convince you that learning a language that is radically different from all the other languages you know isn't harmful. Learning a language that is radically different from all other languages you know won't scatter your knowledge or spread your brain too thin. In fact, learning a language that is radically different from all other languages you know will cement your programming knowledge, helping you build bridges between topics you didn't even know were connected.

To drive my point home, we take a closer look at two characteristics of APL: the fact that Boolean values are represented by the integers 0 and 1, and the fact that APL is an array-oriented language. In studying these two things, we draw connections to the traditional if statement and to list comprehensions, deepening our understanding of those.

Outline

  1. Welcome, introduction, and setting the stage (5 min)
  2. What is APL (5 min)
  3. The relationship between Boolean values and the integers 0 and 1 (10 min)
    • Boolean values in APL (3 min)
    • Data-driven conditionals (7 min)
  4. Array-oriented programming and list comprehensions (15 min)
    • Scalar functions in APL (5 min)
    • List comprehensions as data transformation expressions (10 min)
  5. Conclusion (3 min)
  6. Q&A (5 min)

Watch the recording