Wednesday, March 2, 2011

Ok, I'm coding an Angel... Now what?

package inspired.flash.srp.angel.evolving
In response to a previous post, Allen wrote:

Avi, The problem is, coding Angels is often more expensive than coding demons. It requires better planning, more time, everyone's buy-in, discipline, documentation, good memory of where the current Angels reside, and how to quickly find them, etc. More often than not, our bosses are Devils that preffer fast demons to slow and expensive Angels. Maybe with the comming of the programming Messiah, all that will change, but Neo died in The Matrix 3, so the wait for that messianic era continues.
He makes a good point.  The world is not perfect, we aren't all working on open ended projects with a seemingly infinite amount of time to develop the fine pieces of the code.  So what is one to do?

Well, not surprisingly this isn't a problem just with programming. This is a general problem with life, and so, lets look deeper into the metaphor for a solution.   Angels, literature commonly tells us, are good things and help people make good choices or allow the good choices to flourish. Demons on the other hand cause pain and torment and seduce us to sin.

Well, Ben Azzai tells us that a sin leads to a sin, and fulfilling an obligation leads to fulfilling more obligations. When it comes to coding, the more you allow the devil to make you write demons, the more demons you will write. However, if on the side, when you aren't currently forced to write demons, you practice writing angels.. then you will end up writing more angels; even in times when you would expect to be writing demons!  Devils are never going to go away, we are always going to have tight deadlines and once in a while we will have to write a demon or two.  But we don't have to wait for the coding messiah to force us to create angels.  We can do it one angel at a time, until soon the forces of darkness can't even contemplate knocking at our pearly white gates of code heaven.