πΎ Archived View for ix.cyb.red βΊ wiki βΊ abstraction-considered-harmful captured on 2024-06-16 at 12:36:04. Gemini links have been rewritten to link to archived content
β¬ οΈ Previous capture (2023-09-28)
-=-=-=-=-=-=-
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!
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 β (βΊβΊ β΅) β΅β΅βΈ β΅