←back to thread

What is it like to be a bat?

(en.wikipedia.org)
180 points adityaathalye | 1 comments | | HN request time: 0s | source
Show context
iLemming ◴[] No.45119507[source]
The article basically talkes about "umwelt" (there is a link at the bottom) - "is the specific way in which organisms of a particular species perceive and experience the world, shaped by the capabilities of their sensory organs and perceptual systems"

How it at all related to let's say programming?

Well, for example learning vim-navigation or Lisp or a language with an advanced type system (e.g. Haskell) can be umwelt-transformative.

Vim changes how you perceive text as a structured, navigable space. Lisp reveals code-as-data and makes you see programs as transformable structures. Haskell's type system creates new categories of thought about correctness, composition, and effects.

These aren't just new skills - they're new sensory-cognitive modalities. You literally cannot "unsee" monadic patterns or homoiconicity once internalized. They become part of your computational umwelt, shaping what problems you notice, what solutions seem natural, and even how you conceptualize everyday processes outside programming.

It's similar to how learning music theory changes how you hear songs, or how learning a tonal language might affect how you perceive pitch. The tools become part of your extended cognition, restructuring your problem-space perception.

When a Lisper says "code is data" they're not just stating a fact - they're describing a lived perceptual reality where parentheses dissolve into tree structures and programs become sculptable material. When a Haskeller mentions "following the types" they're describing an actual sensory-like experience of being guided through problem space by type constraints.

This creates a profound pedagogical challenge: you can explain the mechanics of monads endlessly, but until someone has that "aha" moment where they start thinking monadically, they don't really get it. It's like trying to explain color to someone who's never seen, or echolocation to someone without that sense. That's why who's never given a truthful and heartfelt attempt to understand Lisp, often never gets it.

The umwelt shift is precisely what makes these tools powerful - they're not just different syntax but different ways of being-in-computational-world. And like the bat's echolocation, once you're inside that experiential framework, it seems impossible that others can't "hear" the elegant shape of a well-typed program.

There are other umwelt-transforming examples, like: debugging with time-travel/reversible debuggers, using pure concatenative languages, logic programming - Datalog/Prolog, array programming, constraint solvers - SAT/SMT, etc.

The point I'm trying to make - don't try to "understand" the cons and pros of being a bat, try to "be a bat", that would allow you to see the world differently.

replies(1): >>45119791 #
1. iLemming ◴[] No.45119791[source]
I suppose someone (even an experienced vimmer) might argue that learning vim is not so much "umwelt-transformative", but rather like "muscle memory training", like LeetCode drilling.

Indeed, basic vim-navigation - (hjkl, w, b) is muscle memory.

But, I'd argue the umwelt shift comes from vim's modal nature and its language of text objects. You start perceiving text as having an inherent grammar - "inside parentheses", "around word", "until comma." Text gains topology and structure that was invisible before.

The transformative part isn't the keystrokes but learning to think "delete inside quotes" (di") or "change around paragraph" (cap). You see text as composable objects with boundaries, not just streams of characters. This may even persists when you're reading on paper.

That mental model often transforms your keyboard workflow not just in your editor - but your WM, terminal, web browser, etc.