Scripting vs. Coding vs. Programming


Scripting

Traditionally, scripting may have referred to “incomplete” or “limited” languages. Usually used as the “glue” that tied different applications together, or just as an easy language to write something quick and dirty to automate some mundane task. Most common examples given are JavaScript, ActionScript and Shell script.

Yes, maybe 10 years ago JavaScript may have been considered a “limited” language – back when it was really mostly used to do some quick form validation or scroll some text on your browser, however that is no longer true today. This misunderstanding of JavaScript today is mostly accredited to developers that don’t understand it or have only used it to scroll text across a screen – and because it ends in “script”. Turn off JavaScript in your browser and try GMail, Facebook or even Google+. This is no longer an “incomplete” or “limited” language – in fact your web application would look incomplete without it; 1995 incomplete. Building a JavaScript based application today requires the same thinking and design you would give while building an application in C or Java. You need to apply the same design patterns that apply on the back-end. Speaking of the back-end, today you can even run JavaScript on the server side. So I can technically write a full GMail clone in just JavaScript.

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.

Coding

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.

Programming

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 favorite 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.

#coding #programming

Recent Posts 
Serach By Tags
No tags yet.