Strange Loop Conference | "Introducing the HandAxe Collections Pattern Language" by Maurice Rabb (Strange Loop 2022) @StrangeLoopConf | Uploaded 1 year ago | Updated September 28 2023
Often, the worst enemy of a better solution is an existing solution that's just good enough. New programming languages often borrow from prior languages, yet non-ideal choices from the past frequently live on. Haphazardly designed method protocols – method names, parameters, and return values – make core libraries harder to understand and limit their expressive power.
HandAxe is a pattern language for specifying collection protocols. It emphasizes consistency, composability, im|mutability, and mis|understandability. It begins by rigorously defining terms for referencing collection aspects: key, value, element, span, edge, index, etc. – aka “grips.”
Using a small grammar of operators and modifiers, HandAxe enables one to specify an ideal naming, protocol, and semantics for methods. Further, it enables method implementations to be autogenerated on demand. While implemented in JavaScript, HandAxe offers a unified approach for developing collection libraries in a wide range of languages.
Maurice Rabb
Spantree - Director of Pedagogy
@mauricerabb
I'm Director of Pedagogy at Spantree Technology Group LLC, and am passionate about mentoring junior engineers. I taught software engineering for 10 years, most recently as an instructor at Dev Bootcamp. When not waxing wistfully about the Smalltalk debugger, I enjoy playing board games with my daughter, exploring unusual maps, eating exotic fruits, and acting as the building super at our extended family compound on the South Side of Chicago.
-------- Sponsored by: --------
Stream is the # 1 Chat API for custom messaging apps. Activate your free 30-day trial to explore Stream Chat. https://gstrm.io/tsl
Often, the worst enemy of a better solution is an existing solution that's just good enough. New programming languages often borrow from prior languages, yet non-ideal choices from the past frequently live on. Haphazardly designed method protocols – method names, parameters, and return values – make core libraries harder to understand and limit their expressive power.
HandAxe is a pattern language for specifying collection protocols. It emphasizes consistency, composability, im|mutability, and mis|understandability. It begins by rigorously defining terms for referencing collection aspects: key, value, element, span, edge, index, etc. – aka “grips.”
Using a small grammar of operators and modifiers, HandAxe enables one to specify an ideal naming, protocol, and semantics for methods. Further, it enables method implementations to be autogenerated on demand. While implemented in JavaScript, HandAxe offers a unified approach for developing collection libraries in a wide range of languages.
Maurice Rabb
Spantree - Director of Pedagogy
@mauricerabb
I'm Director of Pedagogy at Spantree Technology Group LLC, and am passionate about mentoring junior engineers. I taught software engineering for 10 years, most recently as an instructor at Dev Bootcamp. When not waxing wistfully about the Smalltalk debugger, I enjoy playing board games with my daughter, exploring unusual maps, eating exotic fruits, and acting as the building super at our extended family compound on the South Side of Chicago.
-------- Sponsored by: --------
Stream is the # 1 Chat API for custom messaging apps. Activate your free 30-day trial to explore Stream Chat. https://gstrm.io/tsl