Friday, October 12, 2012

The 'then' and the 'now'

By:  B.Y., Software Engineer @ G2

I recently read an article that dated back to 1999 involving an interview with Ken Thompson. For those of you who don't know who he is he created the B programming language, helped develop the C language, worked on the founding UNIX development, was an avid security professional, and lead the work for distributed operating systems such as PLAN 9 (in most ways my idol). His work laid the foundation for most of what we work on today. In that article he spoke on a few key topics and I wanted to share some afterthoughts given the current state of the Computer Science field (and no I won't regurgitate the article for you).
History Repeats Itself
I find it humorous that now, 13 years later, most points in the article are still present today; at the core being that history repeats itself. This is wholely apparent in the 'cloud' push many of us are involved in. What project or solution is going to give rise again that has already been discovered? Perhaps we could use early research (circa 1980's) to glean ideas for future projects. Has technology changed enough to inflict new thought on old paradigms?
Thought Process
It seems there are two fundamental paradigms in which we, as computer scientists / software developers, think. There is the classic top-down approach and the age-old bottom up. In dealing with an end goal it seems to take a culmination of both types to wholely finish a succinct project. I can personally attest to this given a research project I'm working with Erik S., James B., and Scott W. If not for the culmination of us bottom-up thinks coupled with some crazy top-down guys, we might have missed key interleaving aspects.
Teaching the Core
As some of you may know this is one topic I'm extremely interested in. Ken wrote "I think that computer science in its middle age has become incestuous: people are trained by people who think one way. As a result, these so-called orthogonal thinkers are becoming rarer and rarer." I wholeheartedly agree and posit that this statement still stands today, if not worse. This poses an even greater challenge to those of us 'orthogonal thinkers' collecting here at G2 nowadays to get our 'crazy' voices heard of the humming noise that is complacency.
Simple is Beautiful
Ken said it best: "The aggressive use of a small number of abstractions is, I think, the direct result of a very small number of people who interact closely during the implementation. It's not a committee where everyone is trying to introduce their favorite thing. Essentially, if you have a technical argument or question, you have to sway two or three other people who are very savvy. They know what is going on, and you can't put anything over on them." This is more apparent now given the gross number of people pulling the wool over each others' eyes to get what they want. It also speaks to group dynamic and size; a fact that could be a boon for project management. Sometimes the old UNIX adage is correct, less is more.
Anyways, that is the end of my odd rant in case any of you were wondering when I would stop typing. Hope you enjoyed!

For those of you crazy enough to check my references:
http://genius.cat-v.org/ken-thompson/interviews/unix-and-beyond
http://www.ece.cmu.edu/~ganger/712.fall02/papers/p761-thompson.pdf

No comments:

Post a Comment