Steve’s Blog

Thoughts on creativity, technology, and anything I find interesting

« Back to blog

Appreciating the Gift of Creation

I've always enjoyed extremes. This particularly manifests itself in my choice of software tools. I like software that takes a philosophy and runs with it, as far and as fast as possible. It's why I enjoy both Ruby and Haskell, even though they're about as opposite as languages can get.

Assembly language: piece of cake!

A few years back, someone asked me why I enjoyed one of these extremes, assembly language. For you non-technical people. assembly language is one of the most fundamental languages, very close to the actual ones and zeros the machine uses to operate. Here's an example:

global start32
start32:
; disable interrupts 
cli 
; enable SSE 
mov ecx, cr0 
btr ecx, 2 
bts ecx, 1 
mov cr0, ecx 
mov ecx, cr4 
bts ecx, 9 
bts ecx, 10 
mov cr4, ecx
 
This is some of the code that XOmB, my pet operating system project, uses to start up the computer. What it does is not important, but you can see how this is pretty extreme. It's almost unintelligible to someone who doesn't speak the language.

Programming and Religion

In any case, they wanted to know why I liked using this particular tool. The answer I gave is this:

Working on operating systems and programming in assembly language makes me feel like the high priest of the world's largest religion. Or maybe a shadowy cult. Regardless, I get to play gatekeeper between man and machine. If you want to talk to God, you've got to go through me, because I'm one of his chosen ones.

I tend to get a little overly dramatic at times. But I really like this particular analogy. Even though I'm in no way religious, I tend to make comparisons between programming and religion often. The head of the CS program at Pitt asked me why I enjoyed programming, and this is what I told him:

Programming gives me the feeling of having a divine touch. I animate dust into life; nothing into something. It's alchemy. It's creation. I'm my own little demigod of my own little world.

I may or may not have megalomania issues. That's not the point. 

This Power Should be Appreciated

Programmers have the ability to create, like many other crafting professions. It's really easy to lose sight of this, but it's the best part about writing programs! This joy of creation is one of the pieces of being a Hacker. That playful curiosity is a fundamental motivation for all that we do. The means are the end. The journey is the destination. Without a deep appreciation for one's ability to create, coding becomes boring. It's a series of hoops to be jumped through, deadlines to be met, handles to turn

The sheer joy of creation is the reason I'm able to code for hours all day on CloudFab, and then come home and work on personal projects. If it wasn't fun, I wouldn't be able to do it, and I'm incredibly lucky to be able to do something that I enjoy so deeply.

I was reminded of how lucky I truly am yesterday. I was talking with our business intern about a new side project website, and he said, "That's what you were doing with your weekend? I wish I was able to program. I can have good ideas, but then I still have to find someone, convince them it's a good idea, and trust they'll do it well." It'd been so long since I'd been able to will programs into existence that I'd forgotten what that's like. I'd taken my abilities for granted, and I feel like a lot of other programmers do. This seems to be part of the human condition; many parables have been written about the dangers of forgetting how good you have it.

So, if you sling some code now and again... are you using your power wisely? Do you appreciate your abilities? Just take a minute to reflect on that.

Loading mentions Retweet

 
To leave a comment on this posterous, please login by clicking one of the following.
Posterous-login     Connect     twitter