Here is a good question: Is scripting programming or just systems administration?

For some reason, I'm often asked this question: is scripting programming or just systems administration?  Oddly enough, we briefly addressed this within the firstPowerShell Unleashed book.  But, because I'm still quizzed about this question from time to time, plus the fact that I myself also still randomly reflect upon it, I thought discussing this topic might be a good post.

Well, to start things off, I do not consider myself a programmer by any means.  If fact, my friends might warmly refer to me as an angry line hacker when I do sit down to write code.  For some reason, I just do not have the patience for dealing with the inherit clumsiness of trying to force a machine to do something using a bunch of text that for all intensive purposes have been derived using the inconstancies of human language (or thought).

Yes, not all programming languages have a relationship to a human language taxonomy.  But, when was the last time you tried to sit down and write something in machine language and such.  The point I'm trying to make is that I, at this point in time, and until someone invents a way for me to plug my brain into the Internet, do not like writing code very much at all.

However, I do like to solve problems.  This is why I often find myself in front of the keyboard, with my favorite caffeine drink in tow, ready to bellow out various expletives all in a vain effort to produce my latest work of automation (if only they could solve world hunger).  Yes, I do like scripting.  It is a love/hate relationship, but it is a relationship none the less.  However, because I do what I do... does that make me a programmer, where does the line get drawn?

So... that being said, let's start with the basic definition of programming (and Google says):

"Programming is a form of music production and performance using electronic devices, often sequencers or computer programs, to generate music..."

Ahhhh.... No.  Let's clarify that a bit as in Computer Programming (and the magic eight ball says):

"Computer programming (often shortened to programming or coding), sometimes considered a branch of applied mathematics, is the process of writing, testing, debugging/troubleshooting, and maintaining the source code of computer programs. This source code is written in a programming language."

Hmmm... well if you went by that definition alone.  I might just be a programmer (kinda).  After all, scripting does involve aspects of writing, testing, debugging/troubleshooting, and maintaining code.  However, the applied mathematics aspect is a bit of stretch for me.  :>)

But, what the definition fails to address is how most people tend to differentiate between the free loving realm of scripting vs. the supposedly more structured kingdom that is programming.  Yes ladies and gentleman, I give you the compiled vs. the interpreted argument.  Sadly, I must now take that argument away, bash it on the wall, and present two examples named Java or Python.  For you see, both of these examples have qualities that would classify them as compiled and interpreted languages.  Thus, compiled vs. the interpreted argument is a mute point. 

Ho-hum...  So, how does one determine the difference between scripting and programming?  Well, in my opinion, they are the same or on their way to being the same.  For the most part, we are all trying to solve problems.  Sometimes, those problems require very complex programs or scripts.  In other cases, a simple program or script will suffice to meet the needs of the script-dever (haha - I made up a new word).

The only difference that really comes to mind between scripting and programming are the tools that are used and the implied intent of what is developed.  For example, a programmer's toolset will most likely be more slanted towards developing something that is large and complex.  Thus, something that is written by a programmer will most likely be used as a fixed asset within an organization.  For example, I'm pretty sure that if Exchange Server 2007 was just a script, most people would not have chosen to use that version of Exchange as their mail server.

On the flip side, the act of scripting is meant to be more free flowing.  Thus, a scripter would have a lighter tool set and develop things that could be highly flexible, portable, and not always considered a fixed asset.  However, that does not preclude organizations from running their entire operations based on a single script (yes, I have seen this).

Anyhow... you decide.

If you like this, check out some other posts from Tyson:

Or if you want, you can also check out some of Tyson's latest publications:

Lastly, visit the Microsoft Subnet for more news, blogs, and opinions from around the Internet.  Or, sign up for the bi-weekly Microsoft newsletter(Click on News/Microsoft News Alert)

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2009 IDG Communications, Inc.

IT Salary Survey: The results are in