-- Leo's gemini proxy
-- Connecting to ix.cyb.red:1965...
-- Connected
-- Sending request
-- Meta line: 20 text/gemini; lang=en
> 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.
how do we shrink our code size by an order of magnitude? functional programming languages solve an HCI problem, not just a semantic problem!
directness: idioms over libraries, the apl function is its own name
data over control flow, control flow is unnatural and unnecessary
fuzzy: suggestive generality → serendipitous transfer
syntax over semantics
human centered
leverage the human mind to pursue cross-domain optimizations.
Less name dependences ┌──────────┐ │ ▼ Better Better Structure Names ▲ │ └──────────┘ Easier to use names
> 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 ← (⍺⍺ ⍵) ⍵⍵⌸ ⍵
brevity/verbosity
macro/micro
transparency/abstraction
idioms/libraries
data/control flow
structure/names
implicit/explicit
syntax/semantics
-- Response ended
-- Page fetched on Fri May 17 12:10:38 2024