Is there a difference between 'scripters' and 'programmers'? What is the dividing line between scripters and programmers?

Perhaps all scripters be considered to be a programmer. If not all scripters can fall into the same camp, what about those people who use external objects such as COM objects, Win32's, etc. via an interop library?

As far as script languages I'm thinking of are (but not limited to) perl, bash, javascript, powershell, and batch files.

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.
If this question can be reworded to fit the rules in the help center, please edit the question.

2

A better name for your scripting languages is Automation.
–
rwongOct 18 '10 at 9:21

1

A similar question would be "When does an ad-hoc solution become an engineered solution?"
–
rwongOct 18 '10 at 9:22

1

How do you define "scripter"? That designation can have many interpretations.
–
Bryan OakleyMar 8 '12 at 13:55

17 Answers
17

I would argue that a scripter is a programmer, scripting languages are still programming languages :).

Some will argue that you're only a programmer once you've picked up your first non-scripting language. Your Mileage May Vary comes to mind here.

Some will also argue that a scripter has no formal methodology/training behind them, in that case those people will argue you're only a programmer once you apply formal methodologies to your coding. Again YMMV here.

A program is just a logical ordering of events so scripting is certainly programming. Some will argue otherwise but you can build pretty extensive applications using purely scripting langauges so I totally agree.
–
ChrisOct 5 '10 at 13:49

7

+1 I agree with karianna. A scripter is a programmer.
–
user2567Oct 5 '10 at 13:54

3

Thank you karianna. I've never seen such a load of bunk on a stackexchange site until this thread! I work with both compiled and interpreted languages and have many colleagues that do the same. Apparently I've lost track of how snobish people can be about their own skill set because I'm flabbergasted that so many people would write and approve of the implication that in general 'programmers' by virtue of using compiled languages write maintainable code with the right/best choices of libraries and frameworks with the future in mind keeping it all tidy and readble in source control.
–
CalebOct 5 '10 at 22:05

Generally the difference is that a "scripter" is writing scripts as part of some other process (IE, for batch processing, or for running backups), whereas a programmer is actually writing a complete application of some sort.

The language is really irrelevant. The scripter is just writing "quick and dirty" scripts in order to get a job done, whereas a programmer is trying to create something that will be useful for a longer period.

The distinction can get hazy of course, but it's one of those areas where pretty much all programmers are also scripters, but not all scripters are programmers.

Even when your granny set up your DVD recorder to save a TV show from channel A, starting at X, ending at Y, she programs. But does it make your granny a programmer? No. As anyone who managed to attach two pipes doesn't become a plumber on this basis.

Programming can be understood both as activity and as a profession. We've already seen that even your granny performs such activity as programming, so, from the "activity" point of view, "scripter" is a "programmer" as well.

From the professional point of view, the language you use is less relevant than your duties. A sysadmin who heavily uses his own scripts to start up, query and restart servers and services is not a programmer. But a guy who works in RedHat, and maintains the same set of scripts as a part of their Linux Distribution is a programmer. And whether you treat shell script and VBscript guys programmers depends on your hubris only.

-1 for insinuating that all programmers work with the future in mind. Have you never inherited someone else's code? Sheesssh.
–
CalebOct 5 '10 at 21:54

5

If you're looking for an excuse to downrate at random, go ahead. If you read my whole post you would understand what I mean. I know too well that there are also bad programmers.
–
Matteo MoscaOct 5 '10 at 22:43

4

Writing readable and maintainable code does not depend on the language, it depends on the coder. Applying right paradigms, design patterns, choosing right architecture, frameworks as well.
–
mouvicielOct 6 '10 at 5:09

11

I just can't agree with this post, I know several programmers who work with scripting language who craft well thought out and elegant solutions. Programmers using any language can hack together fast yet inelegant solutions.
–
Martijn VerburgOct 6 '10 at 9:00

3

-1. I don't have enough characters in this comment to explain all the answers why. Very insulting.
–
CraigeJan 17 '11 at 16:18

I'm probably taking a very distinct viewpoint than everyone here, but I think scripter is just a synonym for programmers.

Maybe not an exact synonym, the word scripter tends to contain the sense of being less experienced and more amateurish than a programmer; however, IMO there are no technical difference between the two.

I wouldn't object that a scripter is a programmer, but I would argue the difference between a scripter and a programmer, or rather the difference between an unsophisticated programmer and an experienced professional programmer is the realization of the importance of,

My personal opinion is that a scripter becomes a programmer when he or she starts to take an interest in more than just accomplishing the job at hand, and learns how to do some of: write maintainable code, use source control, learn language features to be better/more efficient, etc. In particular, if you want a quick and dirty test, my first and only question would be "do they use source control?"

I'm not posting anything that new, but I felt a distinction needed to be made. It used to be that programmers wrote in compiled languages and scripters wrote in interpreted languages. Is it really fair to call the guys that work on metasploit scripters now? No. I tend to think of programming as requiring additional skill and ability, such that programs: manipulate more inputs and outputs, handle more complicated tasks, present a framework that can be utilized by other programs, and accomplish more diverse tasks. Scripts on the other hand tend to be: more single purpose, don't expose the logic for reuse, and are written in interpreted languages. I tend to hold to scripters use interpreted languages and programmers use compiled languages with the exceptions of python and ruby.

Oh, is that "Real Development"? I don't think so. Web development is in Html. Stuff done in flash or silverlight is not accessible. Stuff like that should be used to improve visual appeal but not to provide critical content or functionality, as it's not usable by all type of audiences.
–
Matteo MoscaOct 17 '10 at 9:39

A scripter is like a car mechanic, he may be highly skilled at what he does, but he has to have the car to start with, and what's wrong with it has to be fixable by means of replacing a part. A programmer is anyone from the assembly line worker building the car to the designer sketching concepts in a CAD package.

My perception of scripting languages is pseudo-programming languages that let you control very limited tasks, such as in a game that can be easily modded. I'm not entirely sure if this is an accurate definition, but I think a scripter becomes a programmer when he/she learns a language that can exist on its own.

Scripts are programs that are not required to be compiled before runtime. Eg: PERL; PHP; BASH; et al.

Obviously some languages can be optionally compiled ahead of time (eg: PHP), but one would consider that a code cache. Java and .NET that are compiled down to bytecode for a virtual processor (JVM and CLR) would still count as "programs".

Keeping this in mind, your question seems predicated on the concept that Programmers and Scripters perform the same work, but are differentiated by their experience level or some other performance.

In my mind, scripters are a subset programmers working with different tools.

Now that I'm done nitpicking, I'll try to answer what I think you're actually asking - when someone can be considered a programmer. My answer is simple - when someone is actively earning a living from programming, then they are a Programmer. Anything else is just programming as a hobby.

A scripter who has formal CS training (and, at the minimum, understands how the Operating System works and knows how the script was executed/interpreted in the scripting environment, and how that scripting environment interacts with the Operating System in return) can easily switch to doing a programmer's job. There is no barrier, just learn more API.

Some scripters can also have the same niche expertise as programmers. For example, some scripters know techniques for hiding network latencies or performing multiple intensive / long latency tasks in parallel. Those knowledge are not exclusive to programmers.