πŸ’Ύ Archived View for ix.cyb.red β€Ί wiki β€Ί abstraction-considered-harmful captured on 2023-11-04 at 11:28:59. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-09-28)

-=-=-=-=-=-=-

abstraction considered harmful

One of Hix and Hartson's usability guidelines is to Use Cognitive Directness (1993, p. 38), which means to "minimize the mental transformations that a user must make. Even small cognitive transformations by a user take effort away from the intended task." Conventional programming languages require the programmer to make tremendous transformations from the intended tasks to the code design.

Pane, 2001

how do we shrink our code size by an order of magnitude? functional programming languages solve an HCI problem, not just a semantic problem!

leverage the human mind to pursue cross-domain optimizations.

Less name dependences
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚          β–Ό
 Better    Better
Structure   Names
   β–²          β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Easier to use names

what's in a name?

If [you take] a look at how APLers communicate when they have ideas, you see code all the time, all day long. The APL community is the only one I've seen that regularly can write complete code and talk about it fluently on a whiteboard between humans without hand waving. Even my beloved Scheme programming language cannot boast this. When working with humans on a programming task, almost no one uses their programming languages that primary communication method between themselves and other humans outside of the presence of a computer. That signals to me that they are not, in fact, natural, expedient tools for communicating ideas to other humans. The best practices utilized in most programming languages are, instead, attempts to ameliorate the situation to make the code as tractable and as manageable as possible, but they do not, primarily, represent a demonstration of the naturalness of those languages to human communication.
β€” aaron hsu
# primesLessThanTwenty ← /2=+˝0=|βŒœΛœβ†•20
⍝ RationalsAreCountable ← (⍳×/s)β‰‘βŒΆβˆ˜β‹β¨β‹β‹,+⌿¨1+⍳s
⍝ Avg ← +βŒΏΓ·β‰’
⍝ APartitioningFunction ← (⍺⍺ ⍡) ⍡⍡⌸ ⍡

spectra

see also

fnconf 2017

~arcfide (aaron hsu's blog as a gemini feed)

26-8β‚‚

APL

Big Questions Notation