Friday, January 8, 2010

Know Thyself

Recently I was thinking about the way I develop software and something hit me; Good software can be known by how well the individual pieces 'know themselves'. We refer to this as object-oriented or as the more general concept of encapsulation. Whatever you call it, it really means the same thing - the object is responsible for knowing itself. "Know Thyself" was once inscribed in the Greek temple at Delphi. Perhaps programmers should all inscribe "Encapsulate" on the top of our monitors. Just make sure to do it in Greek characters - it looks way cooler.

By Example

The best way to learn (perhaps the only way) is by example. When you think about an example you understand that it cannot truly represent the concept that it is trying to explain. An example is a complexity introduced to explain a concept by reaching someone through something they are familiar with.
Let's looks at the concept of polymorphism. The idea is that we only need to know a little about something in order to complete our task. If we're making a fire, we only need to know that what we're throwing on it is going to burn, not if it's a tree, grass, or a penguin (yes, penguins burn). If you were anything like me, when you first learned about polymorphism you were a bit confused. However, once your teacher (or wikipedia) showed you an example, it made sense... hopefully. It's also interesting to note that once you learn a concept, it comes without effort.
So what's the lesson? It seems to me that complexity is introduced into our lives to help us understand simple concepts. It is God teaching us something by reaching us where we can relate. By observing the complexities of our lives and the world around us, maybe we can start to understand the concept that is "God", or the concept that God is teaching.

God in the Code

People have often looks at the natural world and attempted to unravel what it tells us about God. Most times we look at the simple aspects of nature such as the movement of the seasons, life and death, or even a bird's song to learn about the nature of our Creator. I believe that the one who organized the simple things of the world, also organized the complex. Perhaps it is even easier to see God through the complex things of the world than through the simple (why else create the complex?) even if the view is somewhat muddled. Henry Thoreau once sought to escape the complexities of life through solitude and self sufficiency, but wasn't his desire born out of complexities?
What this has lead me to believe is that God is as present in a computer as he is in the forest. His nature isn't just releaved in the plants and animals, stars and planets, but also in every form of hobby, craft, and business that we undertake.
I plan to compile (puns will be plentiful) my thoughts on my own craft (computer programming) in order to see what it tells me about God and perhaps what aspects it may share with other beliefs I have come across.