Design Patterns vs Anti pattern in APL
summary
Argues that APL rewards concise, human-centered notation by following 8 patterns (brevity, macro over micro, transparency over abstraction, idioms over libraries, data over control flow, structure over names, implicit over explicit, syntax over semantics). Demonstrates with an average function that naturally scales to matrices, an inner-product equals idiom for string matching, a single-line compiler pass as a boolean data expression, and an FFT big-num multiply that uses recursion without an explicit base case. Claims code becomes malleable, rewritable, and mentally tractable.
AI-written summary · about
chapters (20)
- 0:00Start
- 3:39Cult of Best Practices
- 7:47Patterns and Anti Patterns
- 14:29Transparency / Abstraction
- 15:41Abstraction Considered Harmful
- 20:09Data over Control Flow
- 23:21Good Variable Names
- 24:00Prime Number Generation in Apl
- 26:25Implicit / Explicit
- 30:01Syntax over Semantics
- 30:49Large Precision Arbitrary Precision Multiplication
- 32:06Aesthetics Matter
- 33:49Esthetical Programming
- 34:59Optimize for Rewrite
- 35:51Myth of Readability
- 36:23My Readability Bet
- 37:43Review
- 42:06Mechanism To Enable that Way of Thinking and Encourage that Way of Thinking That's One of the Difficulties with Trying To Take Apl and Use It in another Language because It's Not Just the Semantics Ideas That Make Apl Powerful It's Not that's Not How Apl Is Get to Where They Go It's a Combination of the Ideas and the Fact that They Have a Notation Which Is Optimized for the Human Mental Process To Parse and Interact with those Ideas so You Have To Have both To Maximize that Now that Doesn't Mean that People Haven't Had Really Good Success with Bringing Say like the Data Flow Concept into Other Places
- 44:05Maybe Words That Are Important or Mean Something Should Be Reserved for Actually Important Concepts and Not Be Wasted on the Trivial Ideas That Could Be Better Expressed some Other Way So in Pro To Translate that into Programming Issues We Have a Tendency We There's a Limited Number of Names That We Can Reasonably Use the Increase in Vocabulary Becomes Impossible To Work with that's Why We Have Long Variable Names because We Can't Remember What They Were We Have To Try To Read a Sentence To Describe What the Idea Was and We'Re Just Using the Variable Name To Do that
- 45:20I Started Giving every Third Group of Chairs in Here a Unique Proper Pronoun or Proper Name We'D Start To Have Run into Trouble but We Do in Fact Do that Kind of Thing in Computer Science All the Time and Part of that Is because Our Notations Encourage It Yeah Yes I Would Say the Nature of the Language in the Community Has a Strong Social Bias To Encourage People To Try To Write a Different Type of Code whereas Python the Culture and the Language Will Encourage Have a Tendency To Encourage a Different Style of Programming That Doesn't Mean You Won't Write Bad Code It Does Mean that over Time It Will Have a that Tendency Will More Likely Feel Bad to You
related talks
04mInterview
02mDesigning your Data: The Bread and Butter of APL Performance
27mA Novice Introduces APL Programming Language
01h 00mPragmatic Functional Programming using Dyalog
36mHooray for arrays
01h 36mThe Benefits of Learning a Different Programming Language
45mAPLicative Programming with Naperian Functors
57mDesign Patterns in Dynamic and Functional Languages
