Viewing the world as a programmer / curious fuckhead.

Steve Yegge wrote a post the other day entitled A programmer's view of the Universe, part 1: The fish. Jokes about the length of Steve's posts aside (I really don't mind the length, myself), this was a beautifully written piece, and it got me thinking.

I came to a bit of a realization about the way that I think, how being a programmer has influenced that, how being just generally curious has influenced that, and how my mindset contrasts with (specifically) creationists. I am an atheist, in the more "modern" sense of the term - I do not profess faith in any sort of deity. I do not discount the possibility of one, although my reasons for that are more because I don't like discounting possibilities, and less because I actually think that a deity or deities are even close to being a probable occurrence.

Some introductory matter

Most of my family, and some of my friends are religious folk. The vast majority of the religious part of my family, and most of my religious friends profess Christianity as their religion. The vast majority of these people are intelligent (for whatever it's worth, my Grandfather was a member of MENSA until he got fed up with them being all uppity), and mostly willing to discuss issues of faith on the debate-level

Now, religious debate is a funny thing. I doubt the very existence of a deity of any sort - and doubt the existence of your god(s), if you have one or more, much more than I doubt the existence of a god in general. That's saying quite a bit. As such, debating faith and religion with people of faith is pretty interesting. A lot of the time, the debates follow one of two paths:

    1. Someone tries to use their religious text to back up their entire belief structure

    2. I point out that I don't believe in god to begin with, and start pointing out logical fallacies within their belief structure

    3. They continue to counter-point with their text, and we repeat steps one and two until the debate just fizzles out

    1. We start talking about how we view the world, and how what we have seen and experienced has lead to our current mindsets.

    2. We eventually come to the conclusion that we are seeing the same thing, but interpreting it differently

    3. Trying to explain why we interpret the world the way we do ends up being very frustrating to accomplish - something that ends up being on such a high level of abstraction that it's hard to find words to describe.

The first type of debate is tiring, and almost never leads to anything worthwhile - debates that follow the first format tend to just devolve into very emotional processes, with one side being very and legitimately (taking into account their beliefs / worldview) concerned for me and what's going to happen to me after I die, and with myself getting rather annoyed, and sharp in tone.

The second type of debate tends to be slower and more thoughtful, with both sides considering the arguments put forth by the other, and while it does generally end in something of a "stalemate", both sides probably come out of it with a better understanding of the other sides mindset, and with perhaps some new viewpoints, and new things to think about. I greatly prefer the second style, and people with which I have had the second style of debate are the people that I had the epiphany regarding how our mindsets contrast. People with which I have had the first style of debate, and their mindset, is perhaps a subject for a separate post, and it would be a rather complicated and sad post indeed.

The most interesting thing about the second style of debate is that myself and the person I am debating with are often using some, if not all, of the same observations as our reason for thinking the way we do, at least at a high level of abstraction.

We both see patterns all over the place - the difference is in how we interpret them.

The point

When I look at the world, I see patterns upon patterns, loose rules upon loose rules, abstractions upon abstractions. The intelligent theist or deist sees the same thing, and interprets it as being evidence pointing at the existence of a god, or intelligent creator of some sort. After all, there is so much similarity in everything, it's only a small leap of faith to assume that something intelligent had its hand in the creation of it, and perhaps even in the day-to-day happenings within it.

What I see is stateful protocols built on top of layers of abstracted stateful and stateless protocols. I see the ways that base elements are able to combine, combined up to the point where other interactions are able to occur, those interactions combined, and so on and so forth until we get plants, and self-awareness.

The above "explanation" of what I see does it no justice, and to be honest I don't have enough knowledge of physics, chemistry, biology, and all the other realms of human knowledge to do it justice.

As a life-long curious fuckhead, and an almost life-long programmer, I have had first hand experience with:

  • How very complex rules for interaction can be built from very simple bases (see SICP)
  • How unexpected outcomes can occur even in simple systems
  • How it is possible to implement stateful protocols on top of stateless ones
  • How entirely random occurrences can drastically change the behavior of a system, or agents in a system
That last one is largely from reading about the craziness that happened when random mutation was added to the old "core wars" game.
It's an incredible read, and it did a lot to solidify the validity of evolutionary "theory" in my mind when I first read it.

Of course, one can argue that all the direct experience I have had was set up by intelligent beings. I don't think this needs to be the case - mutations on the edge of a set of rules ability to mutate get kept or discarded according to whether or not the organisms with the mutations are capable of surviving long enough to spread them. They are caused by chance (much how cosmic rays can flip bits). This is yet another thing that I can not describe eloquently enough to do it justice - how chance and very base rules about combination can lead to complex systems, and drastic changes within complex systems given enough time.

In conclusion

I'm not the sort of person who likes faith very much. I don't like having opinions that I can't back up, I don't like relying on "gut instinct", I don't like not questioning what I think I know. This is part of the reason why I like programming - there is always something new, and there is always reason to question your assumptions, and often it turns out that what you produce will be of a higher quality if you do question your assumptions.

I like to think that this is applicable to many other areas of life (in fact, I thought it was a good thing to do before I ever started programming), and my life experience - as well as others - greatly supports the notion that examining your mindset and questioning your assumptions is a very good thing to do.

I can see how being a programmer has changed the way that I look at the world - it has not reduced the wonder I see in the world, but has changed the nature of that wonder from one of pure mystery to one of plausibility. I swear, I can almost see where the layers of abstraction separating life from matter and separating sentience from life lay - the lines are fuzzy, but they're there - and I probably wouldn't even be close to being able to sense them if I wasn't a programmer.

No comments:

Post a Comment