Even if you “just know”, this doesn’t grant you the ability to perform an instantaneous search-and-replace on the entire contents of your own brain.
Think of the difference between copying code, and function invocation. If the function is defined in one place and then reused, you can certainly make one change, and get a multitude of benefits from doing so.
However, this relies on the original programmer having recognized the pattern, and then consistently using a single abstraction throughout the code. But in practice, we usually learn variations on a theme before we learn the theme itself, and don’t always connect all our variations.
And this limitation applies equally to our declarative and procedural memories. If there’s not a shared abstraction in use, you have to search-and-replace… and the brain doesn’t have very many “indexes” you can use to do the searching with—you’re usually limited to searching by sensory information (which can include emotional responses, fortunately), or by existing abstractions. (“Off-index” or “table scan” searches are slower and unlikely to be complete, anyway—think of trying to do a search and replace on uses of the “visitor” pattern, where each application has different method names, none of which include “visit” or use “Visitor” in a class name!)
It seems to me that yours and Robin’s view of minds still contains some notion of a “decider”—that there’s some part of you that can just look and see something’s wrong and then refuse to execute that wrongness.
But if mind is just a self-modifying program, then not only are we subject to getting things wrong, we’re also subject to recording that wrongness, and perpetuating it in a variety of ways… recapitulating the hardware wrongs on a software level, in other words.
And so, while you seem to be saying, “if people were better programmers, they’d write better code”… it seems to me you’re leaving out the part where becoming a better programmer has NO effect...
Even if you “just know”, this doesn’t grant you the ability to perform an instantaneous search-and-replace on the entire contents of your own brain.
Think of the difference between copying code, and function invocation. If the function is defined in one place and then reused, you can certainly make one change, and get a multitude of benefits from doing so.
However, this relies on the original programmer having recognized the pattern, and then consistently using a single abstraction throughout the code. But in practice, we usually learn variations on a theme before we learn the theme itself, and don’t always connect all our variations.
And this limitation applies equally to our declarative and procedural memories. If there’s not a shared abstraction in use, you have to search-and-replace… and the brain doesn’t have very many “indexes” you can use to do the searching with—you’re usually limited to searching by sensory information (which can include emotional responses, fortunately), or by existing abstractions. (“Off-index” or “table scan” searches are slower and unlikely to be complete, anyway—think of trying to do a search and replace on uses of the “visitor” pattern, where each application has different method names, none of which include “visit” or use “Visitor” in a class name!)
It seems to me that yours and Robin’s view of minds still contains some notion of a “decider”—that there’s some part of you that can just look and see something’s wrong and then refuse to execute that wrongness.
But if mind is just a self-modifying program, then not only are we subject to getting things wrong, we’re also subject to recording that wrongness, and perpetuating it in a variety of ways… recapitulating the hardware wrongs on a software level, in other words.
And so, while you seem to be saying, “if people were better programmers, they’d write better code”… it seems to me you’re leaving out the part where becoming a better programmer has NO effect...
On all the code you’ve already written.