@laurenonizzle tweeted a link to a forum discussion about the differences between scripting, coding and programming. I’m offering my thoughts here, feel free to chime in with yours.
As indicated by several posters on that forum, the line can get blurry. This is mostly because the terms are used interchangeably. I can be a scripter, coder and programmer at the same time. The definitions can also depend on your development background.
Similarly with ActionScript. It started out as a “scripting” language to script Flash animations, games and applications. I actually messed around with Flash and ActionScript about 10-12 years ago. It worked different then and was built around that frame by frame concept to build a game or movie. Today, ActionScript 3.0 is actually not a scripting language anymore. It is as complete as a language can be. It is even compiled and runs on the ActionScript virtual machine – exactly like how Java code is compiled and runs on the Java virtual machine. In my mind, it is no less of a language than Java is. Anyway, ActionScript is no longer a scripting language. If you still think ActionScript is an “incomplete” or “limited” language then please check out the Flex.org Showcase - after that please wipe your brain matter off the screen so you can continue reading the rest of this post.
Another incorrect definition for “scripting” is that it is to write instructions for another program to parse, but that is what code is anyway. They’re instructions for something else to run. (See #4 in the forum) So what about SQL scripts to query databases? This is a scripting language as well that directs another program ex. MySQL or Oracle how to query your data. But we don’t refer to these people as Oracle Scripters? You’re a SQL programmer. And no SQL programmer would say I’m scripting the query that will get the intersection of X and Y and then join that with the B.
So what is Scripting? I think it is when you use a tool or combination of tools to automate a task or series of tasks – regardless of the language it is written in. I can be lazy, I would script cooking breakfast if I could. It doesn’t have to be just limited to a command line tool. Use what you see most fit for what you are trying to automate. Sometimes I use shell script, sometimes it is an Excel script, it can be PHP, it can be Java, it can even be C. Whatever.
On to coding. I don’t like this term personally, but sometimes I am a coder too – it’s part of the job – When I’m a coder I’m like this guy:
So a coder is someone who codes from one language to another. It can be from English to Morse code, or from English to Java code. When you are coding, you are translating requirements into a language the environment your application will run in will eventually understand (server, PC, iPhone, browser, etc.), and this is where the term “code monkey” comes in and why I dislike the term coding. Sometimes you got to do what you got to do and just crank out code.
To program any machine or application requires you provide it with a set of instructions to run. Be it your fancy coffee machine that is programmed to have coffee ready by 7:15am. It can be the radio in your car i.e. you program your favourite channels into it. Or it can be set of instructions telling your browser how bounce a ball GIF around on the page.
So what does this all mean? It means they’re all the same – sorry there is no big bang explanation here. At the end whether you are scripting, coding or programming, you are providing some environment like a PC, robot, or browser, a set of instructions on what tasks it needs to perform. Whether the language you do this is high level or low level has nothing to do with it. Whether it ends in “script” or ends in “++” has nothing to do with it. Whether it runs on your browser or on a mainframe has nothing to do with it. Whether it is intended to be sold to millions or just used by you has nothing to do with it.
I’d suggest you use none of the above terms. You’re a software craftsman. You design and build solutions using the best suited technologies for the problem you are trying to solve.