The Philosophy of Coding — Thoughts on My First Year as an EE Student

Abstract classes.  Data structures.  ADT’s.  Encapsulation.  Data hiding.  Spend anytime in a mid-level CS course at any US university and you’ll hear some, if not all, of these terms.  You’ll hear them more than once.  You’ll hear them everyday if you listen closely.  I definitely work with them more than I’d like to admit, but everytime I hear someone say “data hiding,” I cringe.

As a high school Sophomore, I was fortunate to pick up a Linux Format magazine in Barnes & Noble one afternoon.  That afternoon kicked off my love for Open Source, Linux, the OSI, and transparency in general.  Now, I’m a Mac user, so I appreciate what can come from an incredibly closed-off production team, but I hold  place in my heart and a sector of my brain open for Open Source Software.  It is the philosophies that Open Source is based on that have me thinking that as programmer’s we have the wrong idea.

Our languages are built around protecting personal property and copyrighted material.  They are made to hide the actual goings on of our code from coders who would expand on our programs.  Are we really so deperate to have control over our code?

Now, things like ADT’s and Data Structures provide new “features” that can be practical.  However, their initial conception was for the purposes of “abstraction” and “hiding.”  It almost makes computer programmers seem like overzealous conspiracy theorists.

I know I’m not the first person with these ideas, as there would be no OSI without such ideas have been spawned long before my time.  Maybe someday we’ll be able to trade protection and abstraction for community and synergy.  In a day without software patents, that could happen.  Hell, in a day without the RIAA the same thing could happen for musicians.  Who said our controlling tendencies only showed themselves in software engineering?

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s