The Spherical Cows of Programming
8 hours ago
- #spherical-cow
- #functional-programming
- #async-dataflow
- The 'spherical cow' modeling technique simplifies complex problems by abstracting away variables to focus on critical aspects.
- Functional programming (FP) is one example of a 'spherical cow,' ignoring memory conservation to solve specific problems.
- Over-reliance on a single 'spherical cow' (like FP) leads to workarounds, complexity, and issues like callback hell or thread safety problems.
- Other 'spherical cows' include Prolog, Forth, BASIC, async message passing, and more, each suited for different problem types.
- Default async dataflow is an underutilized 'spherical cow' that could complement existing approaches.
- Combining multiple 'spherical cows' can lead to better problem-solving rather than focusing on just one method.
- FP doesn't reflect hardware behavior, leading to inefficiencies like exponential memory growth and software fragility.
- Historical notations (like quill and papyrus) limit how we conceptualize computing, treating computers as electronic typesetting machines rather than innovative tools.
- Different 'views' (like types, sequencing, or async events) can each have their own languages or visualizations for problem-solving.
- C popularized the function-based 'spherical cow,' evolving into modern functional programming with added complexity.
- UNIX pipelines showcased productivity gains from async components but were overlooked due to OS-heavy implementations and textual thinking biases.
- Non-sequential operations may be better expressed with pipeline-like notations rather than traditional sequential syntax.