Which came first, the chicken or the egg? Howstuffworks says that the egg came first. I can dig that.
But today I am wondering: Which came first, the API or the application? With my recent decoding of "What is an API?" let me attempt to understand this a little bit further. I ask this question because it is the fundamental question that faces someone trying to make something interesting on the computer. Their first assumption is that they have to design a great API, because everything springs forth from the properly designed API. Using my new analogy, it is like trying to build a creative company by figuring out the company telephone book first. Hmmm, that sounds bad. Maybe it confirms my assumption that you should never spend too much time working on designing an API, and you should instead spend more time working on getting your program doing what it is supposed to do. Going back to my analogy, you might be better off building the company first, and then alphabetizing the company phone directory.
I fall into this trap myself all the time. I design and build at least three large API's a year. For rendering, or analysis, or simple interprocess glues ... I love making API's because it's the ultimate form of constructive procrastination. You manage to get something significant done (the API), but you never have to do what you were really supposed to do (the real reason why you are making the API). The same thing can be said for the person that designs some sort of software tool with the intent of doing something. Ninety-nine times out of a hundred they are so tired out from building the tool, they never get around to actually using the darn thing. One of the true pioneering creators of so-called digital "paint programs" is the legendary Alvy Ray Smith (he's the guy I thank everyday for inventing the RGB to HSV transform) who is set for life financially and professionally, but never went on to create great computer art with his own tools.
So, the moral of the story is you gotta make tools and API's to scout out new territory on the computer, but you also gotta make stuff with your tools or API's, otherwise you will never make any major digital art ... but at least you might become set for life financially and professionally. Seems win-win to me.
Graduate Researcher Kelly Norton of MIT says, "It turns out the question of which came first (at least as it focuses on the chicken or the egg) has been definitively answered."
Posted by maeda at May 28, 2005 10:11 AM