alien protocol's blog

alien protocol

ABOUT ME:

This is the blog of alien protocol aka Brian Villanueva.

Founder and creator of Music Happening Now.

Fueled by fine coffee and speedy wi-fi.

Enjoys trail running.


MY WEB PROJECTS:

www.muzic.com


Edsger Dijkstra - Discipline in Thought

 

If you’ve got time, this is an interesting interview with Edsger Dijkstra, father of Dijkstra’s algorithm and quite possibly one of the most influential classical programmers we’ll see for awhile.  I say this because I believe his methods to be out of touch with the modern world and the state of software development.  

He compares two very different styles of programming - Mozart style of programming vs. Beethoven style of programming. When Mozart started to write, the composition was finished. He wrote manuscripts in elegant handwriting in one go. Beethoven was a doubter and a struggler. He started writing before he finished the composition and then glued corrections onto the page. In one place on a composition, he did it nine times. When researchers peeled them all off, the last version proved to be identical to the first one.

From the video, one can understand that Dijkstra preferred Mozart’s style of programming. Not just programming, but Mozart style of doing things. He says that the most important thing has been the daily discipline of neatly writing down his thoughts.  And damn… he makes me wish I could be so ordered with my daily thoughts, brainstorms, and learning process!

As the consummate Mozart of programmers, Dijkstra finds fault with the current software release methodology, and wonders why companies can’t get everything right and complete in version 1.0.  I see where he is coming from, but I believe these thoughts to be much more at home in the past rather than the world we find ourselves in today.

In my mind, users are now the creators of software.  That’s right… not programmers, but USERS.  The internet has shown me this time and time again.  A programmer or a team of programmers can spend all the time they want devising applications and programs and they can try to think of everything.  But at the end of the day, what they end up with is an incomplete application.  Because no application is complete until users show up, use it, break it, find ways to use it that weren’t planned, and find all the ways that the application can be improved according to real world usage.  Thus version 1.0 becomes version 2.0, etc.

I know that this might send a chill down some developers’ spines, and Dijkstra is most likely rolling over in his grave.  But the proliferation of computing devices amongst the general population has changed things.  Programmers are outnumbered amongst the millions of potential users roaming this planet, and they can’t be entirely responsible for predicting reality.

I’m not saying quick ‘n dirty hacking is the way to go either, there is still a need for elegance at the beginning stages of any application.  But due to the changing tastes and needs of the general population of users, software applications will always be works in perpetual progress. And like it or not, it’s the users who are driving this process, not programmers.