Skip to content

Instantly share code, notes, and snippets.

@mbilokonsky
Created February 22, 2019 17:59
Show Gist options
  • Save mbilokonsky/383ba26986418eedcf973c30bd6dbcf1 to your computer and use it in GitHub Desktop.
Save mbilokonsky/383ba26986418eedcf973c30bd6dbcf1 to your computer and use it in GitHub Desktop.

Often, when building software or thinking about reality, we have this natural tendency to organize our reasoning in terms of top-down narratives. What I mean is, we see an ant carrying food back to its nest and we think "Yes, the ant colony survives by sending individual ants out to get food." There is this natural, to most humans, sense of teleology. We understand things by understanding what they're for, what purpose they serve.

We don't, as a rule, understand behaviors that seem to serve no purpose. We at best describe them as "not yet understood", and we assume that with more information we'll finally be able to tell a story that includes the fact under discussion.

But like, stories are only real in our heads, right? We tell stories because stories are how humans think. If some data can't fit into a story then we ignore it, because we literally have no way to think about it. But I think that this often leads to a specific kind of fallacy: the fallacy of assuming that a story exists that can reconcile all of the various phenomena in the universe. We have no reason to believe this to be true, and we have a number of reasons to think that maybe it's not.

Let's go back to that ant - on some level, the subjective experience of the ant has nothing to do with the "desires" of the colony. The ant is following its own internal directives, which involve carrying nutrients to a place where it makes sense to the ant to leave nutrients. We see a story with a teleology - the individual ant smells pheremones and reacts. Both are 'true', in a sense, but these are narrative truths. They encode a story, and there's no reason to believe that stories are "true" in the same way that facts are "true".

This is the key thing. And it informs every aspect of our thinking. Let's totally switch gears and talk about some code (it's okay if you're not a programmer, I'm going to keep this very simple.)

Let's say we have a right triangle, and we know the lengths of the two short sides and we want to compute the length of the hypotenuse. Pythagoras teaches us that the length of the hypotenuse is the square root of the sum of the squares of the lengths of the other two sides: a^2 + b^2 = c^2

If we had sides a and b and we wanted to get c, that would look something like this in javascript:

function computeHypotenuse(a, b) {
	const a_squared = a*a
	const b_squared = b*b
	const c_squared = a_squared + b_squared
	const c = Math.sqrt(c_squared)
	return c
}

But here's my question to you: does the implementation of the computeHypotenuse function follow from its name and arguments? Or do the name and arguments follow from the implementation?

Natural human thinking says: for some reason we want the length of c, and so we wrote a function that took what we knew and used it to compute the thing we wanted. This function wouldn't even exist if not for its teleogical goals - a human wrote this function to serve a purpose.

But what I'm proposing is that the following is also a totally valid way to interpret the above code:

"Hey, it turns out that when we perform a series of steps involving some basic mathematical operations on two arbitrary numbers we get a third number. It also turns out that that third number relates to the first two in terms of how a triangle works - but that's sort of a coincidence. We could have combined any number of different operations into any kind of order we wanted, where the return value could be anything. However, we've discovered that if we think of this particular arrangement in terms of triangles, it just happens that this function gives us the length of a hypotenuse. So let's call this function computeHypotenuse."

All numbers are mathematically related to all other numbers in infinite ways. Most of these relations are irrelevant to us most of the time. When we care about a specific number, we do our best to identify and isolate that subset of all numeric relations that expresses the thing we care about. But we are not creating order! We are merely asking the universe a question, in the hopes that the answer maps to our mental models in a way that allows us to make progress in whatever process we're executing.

If you take this approach to thinking about order and structure then suddenly you realize that teleology is totally decoupled from ontology. Teleology can inform subjective motivations, but the relations encoded into the universe exist whether or not someone cares about them. They don't express a goal or any kind of ending - they simply express relations. Two relates to Three and Five through an arithmetic relation, whether or not anyone ever wants to add Two to Three, right?

Similarly, in our programs all of our data can relate to all other data any number of different ways. By writing code what we're doing is querying the universe for information and describing the format in which we'd like to receive our answer. computeHypotenuse is a name we assign to a certain relation that's useful for a certain purpose, but it's not the case that we sat down and created that relation because we needed to know the length of c, right? The idea that there's a function called computeHypotenuse which takes a and b and returns c is purely a matter of how we've decided to query the fundamental truths encoded in geometric relations. We didn't create that function, we gathered the components it needed, grouped them into a specific order, and gave it a name.

Does that distinction make sense?

Because if that makes sense then you might understand what I mean when I say that if you think about this stuff long enough you develop a sense that if there's such a thing as God, God is not the creator - God is the creation. God is the 'name' we've given to the relation of everything to everything, without any kind of query to provide structure to it. The nature of god is contingent upon the nature of every relation that god sublates.

You and me, fellow human, are similar: like god, we are "names" for the set of relations that define us. Myk is the relation between neurons and nutrients and gut bacteria and art and fear and love that exists within my skin. My existence is a dynamic ongoing sublation of all of these forces - just as my society is a sublation of myself and all other individuals coexisting in the same locality, just as my species is a sublation of all of societies, etc etc etc.

The reason I reject traditional notions of divine authority (even inverted ones, like the church of satan) is because that specific dialectic feels totally backwards to me: it makes zero sense to even refer to God in any terms other than 'the way everything relates to everything else', and it doesn't make sense to ascribe agency to those relations - agency is a story, after all, and stories aren't ontologically real in the same way that facts are.

Now, stories ARE fundamentally real to us, and we definitely need stories in order to reason about the universe. But it feels important, to me, to remember that teleology is a story and ontology is a set of relations with no narrative heft.

So to me, the fundamental spiritual questions are things like: given that I seem to be a story that a system of relations is telling itself, how ought I exert what control I seem to have over that story? Ought I act as though I believe the story to be more real than the relations? Ought I give in to the illusion of teleology? Ought I focus on the stories of others and seek to make them happier? How does narrativizing the relational structure of the universe work, exactly? What gets lost, and what's the mechanism of how loss takes place? Ought I seek to remember that lossiness, or ought I accept it as a fundamental truth of my subjectivity? To what extent ought I seek to preserve my own subjectivity and to what extent ought I seek to sublate it into a larger subjective context? Can I even do that? If the universe is purely relational and narrative is a human construct, does that mean god is a human construct? Given that god is a story we tell about the universal relations, how ought I reason about its 'reality'?

Where I'm sitting right now is this: I am the "Myk" function. I consume inputs and I produce outputs. My values imperfectly constrain those outputs I seek to produce. My environment chooses, in its own way, what to do with my outputs - but always my outputs are put into the universe, contributing to the definition of god. To me, questions of free will vs determination are secondary: I just need to always remember that every choice I make shapes the universal divinity in some small way, and that's enough to give life some kind of meaning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment