Notation as a Tool of Thought (1979)
Dense Notation, Productivity, and Array Languages
- Multiple commenters describe APL (and dense NumPy) as initially “hard and slow” to write, but ultimately faster because it forces a precise, compact problem specification—like a steeper but shorter path.
- There’s praise for APL’s “austerity”: little boilerplate, rapid focus on core domain issues, and a feeling that code becomes a direct extension of business concerns.
- Others argue NumPy gives many of the same array-programming benefits with more familiar syntax and zero-entry cost via Python, even if it feels bloated to APL-fluent users.
- New/related array languages (J, BQN, Uiua, K, klongpy) are mentioned; some say J profoundly changed how they think, but keymaps and unfamiliar symbols remain a barrier.
DSLs vs Powerful Primitives
- One thread contrasts the “DSL-first” approach (design notation for the domain, then implement it) with the APL/Clojure style: few core data types, many composable functions.
- Critics of DSLs say using them often reveals that the original DSL design was wrong, baking in premature assumptions and technical debt.
- APL is praised as a good medium for exploratory modeling: easy to rewrite a few dense lines as understanding of the domain evolves. Forth and Smalltalk are cited as other systems good for evolving notation.
Subordination of Detail vs Abstraction
- A detailed APL example shows building a hashmap-like structure purely from arrays and primitives, arguing that carefully designed data plus direct expressions can replace layers of APIs and abstraction.
- Advocates claim this “subordination of detail” keeps non-domain complexity implicit rather than hidden behind black-box libraries and simplifies customizations and observability.
- Skeptics respond that complexity is merely moved into data shape invariants; operations are often linear-time; and dense APL lines hide a lot of boilerplate and interpreter quirks.
- APL is criticized for weak tooling, opaque errors, and difficulty with branching and mutation compared to mainstream languages where common patterns (maps, conditionals) are idiomatic and well-supported.
Notation, Language, and Thought
- Commenters connect Iverson’s thesis to Sapir–Whorf: languages and notations both constrain and enable what’s easy to think.
- Multilingual experiences are offered where certain concepts “exist” naturally only in specific languages, supporting the idea that notation shapes thought.
- There’s ambivalence about modern tools: some fear a culture that hides formalism in favor of convenience; others analogize AI and automation to calculators replacing log tables—freeing people from low-level manipulation while still leaving room for fundamentals.
- LLMs are seen by some as regressions in precision compared to formal notation, and by others as complementary systems that can retrieve background “common sense” while symbolic systems maintain exactness.
History, Adoption, and Business Fit
- Historically, APL was less fringe; it was used in education and even inspired many later numerical and data tools.
- One view is that spreadsheets (Lotus 1-2-3, Excel) effectively displaced APL in business, despite APL’s greater generality.
- Others argue APL’s symbolic, non-ASCII style and abstract data-centric modeling make it hard to map directly onto business jargon and organizational structures, where Java/C#-style domain-named classes and methods fit better with how enterprises think and communicate.
Teaching, Tools, and Miscellaneous
- Iverson’s paper is used in non-CS contexts (e.g., architecture education) to provoke students to design their own notational systems for reasoning and representation.
- A niche ecosystem of array-language podcasts, interviews, and learning resources is referenced, reinforcing the paper’s status as a recurring touchstone.
- Some commenters contest Iverson’s critique of mathematical notation’s non-universality, arguing that multiple, even idiosyncratic, notations are valuable for exploration and creativity, though often underemphasized in formal teaching.