Skip to content
0:00 / 0:00

#apl#dyalogapl#typesystems

Does APL Need a Type System? by Aaron W Hsu at #FnConf18

ConfEngine

14K subscribers • 20 videos on Hallway

YouTube
  • Recommended by 4 people: 3 on Hacker News and 1 in engineering communities.
  • Presented by Aaron W. Hsu
  • An opinion. It argues one side of a question engineers disagree on.

Intermediate. Assumes working knowledge.

6.4K views7 years ago4 recommendations

Programming languagesSoftware designLanguage design and type systemsFunctional programming

Aaron W. Hsu argues that APL's expressiveness and rapid iteration deliver the benefits usually credited to static type systems.

APL is known for its concise problem-solving expressiveness, and it is used very successfully in places where high-quality and rapid iteration are requirements, not luxuries. Static Type Systems have had tremendous success throughout the computing industry, even receiving positive HCI usability studies that demonstrate their effectiveness on a number of metrics with mainstream and functionally-oriented programming languages. This success leads many programmers to take the value of type systems as a given, especially as mission-criticality and the age of a project increase. Therefore, it comes as a surprise to many, when learning about APL, that it has spent so long as an untyped, interpreted language in domains and use cases where traditional wisdom would suggest the need for a typed, compiled language. But APL is not like other languages, and its unique features and historical uses warrant a careful revisiting of the question of type systems. In this talk we will explore whether or not APL needs a type system, whether it would benefit from having one, what that might look like, and how the interaction between APL and type theory might inform the design and use of type systems in general. Details: confengine.com/functional-conf-2018/proposal/7712/does-apl-n… Conference: functionalconf.com

Why it's here

4 people recommend this

What people say. Recommended as an insightful argument on why array programming languages like APL do not require static type systems.

u/hou32houin r/ProgrammingLanguages • Recommends

Does APL Need a Type System? by Aaron W Hsu at #FnConf18

kadblason Hacker News • Recommends

On “Why I think Haskell is the best general purpose language as of June 22 2019”

…gain when all tradeoffs are considered). I'm no longer confident that Haskell is the "best" language anymore. I was recently introduced to a language that might be even better than Haskell: Dyalog APL. ( link ). Try it out yourself ( link ) To explain why, I recommend watching Aaron Hsu's videos on Dyalog APL: - Does APL need a Type System? ( link to this video ) - This is actually a very interesting question that is more nuanced than upon first glance. - Design Patterns and Anti-Patterns in APL ( link ) - The main takeaway from this video for me was the principle of "Idioms over libraries." - Higher Performance Tree-Wrangling, the APL way ( link ) - Or how to model Trees without using pointer…

xelxebaron Hacker News • Recommends

On “Dex: A research language for array processing in the Haskell/ML family”

Just starting to learn J, myself, and this brings to mind Aaron Hsu's "Does APL Need A Type System?" talk: link to this video which argues that APL already provides the development ergonomics that are typically acribed to type systems. I.e. why type check your tacit function when it's implementation is about the same length as its type annotation? Anyway, as someone trained in Category Theory and a huge fan of type systems, I found Hsu's argument surprisingly pursuasive. I would love to hear any counterpoint arguments and the motivations behind attempts at giving J a type system.

eggyon Hacker News • Recommends

On “Ode to J”

…of its broad suite hash table-based functions. I like APL and J as a scratchpad where arrays are the basic unit and not scalars. J is functional and it turned me on to that world before I touched Haskell or F#. Aaron Hsu has a lot of great videos that speak to a lot of the usability and scaling out you mention: link I particularly like this one: link to this video I am able to grasp concepts or own them after coding them in APL or J even if the code isn't as fast such as how well APL applies to Convolutional Neural Networks 1,2. I really understood the mechanics of CNNs better after working through this paper a lot more than books I had read on ANNs in general since the late 80s/early 90s. By contr…

u/arcfidein r/ProgrammingLanguages • Mentions

On “Aaron Hsu - Do Programming Language Features Deliver on their Promises”

I've had some people ask or observe some similar things in this talk. For clarity, I'll point to longer discussions I've had on various points that I've made in this talk: **Structured Programming**: Episode 197: 🇬🇧 Algorithms & Tersity with Aaron Hsu · codereport/adsp2 · Discussion #96 · GitHub and the follow-up: Tacit Talk Episode 27: Tersity with Aaron Hsu and Jon Smith **Static Types:** Does APL Need a Type System? by Aaron W Hsu at #FnConf18 **Pointers and GC:** Programming Obesity: A Code Health Epidemic by Aaron W Hsu #FnConf19

tluyben2on Hacker News • Mentions

On “ngn/k, an AGPL K interpreter”

And I find q verbose :) However my poor statically typed brain is keeps struggling on how to mix Haskell (...) with APL/k. Video on that topic is here0. 0 link to this video

rschoon Hacker News • Mentions

On “Notation as a Tool of Thought (1986) [pdf]”

Prominent APLers think it doesn't need one. I agree, because APL tries to be close to math, and you don't write types when doing math. You use alternate and overloaded operators. A video on the topic link to this video

tluyben2on Hacker News • Mentions

On “A Dynamic Forth Compiler for WebAssembly”

…like the above (outside Lisp/Scheme as that has been done). Most people think it's nonsense anyway 0, so i'm not quite looking to have the user add actual types (mostly), but more-so with global static analysis. Anyway, bit offtopic, but nice to see there are more people (outside Arthur 1) who like some of these combinations of languages. 0 link to this video 1 link…

gsf_emergencyon Hacker News • Mentions

On “Flattening ASTs and other compiler data structures (2023)”

I've given up on finding relevant low-level CUDA(? tacit? asm??!!) code from Hsu*, but I did push the following to my to-watch stack link to this video Does APL need a type system Guess it's time to reverse whatever else I can find link *Bad faith, or just a run o' the mill, aka compleatly forgiveable profiteering?

u/memevidentein r/ProgrammingLanguages • Mentions

On “Static vs dynamic typing, would love to hear your opinions”

There's nothing that prevents a statically typed array language from existing, except that array language enthusiasts don't like it. Other than that, type inference would work the same regardless.