Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
2  
A better name for your scripting languages is Automation. –  rwong Oct 18 '10 at 9:21
1  
A similar question would be "When does an ad-hoc solution become an engineered solution?" –  rwong Oct 18 '10 at 9:22
show 3 more comments

17 Answers

up vote 34 down vote accepted

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.

share|improve this answer
4  
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. –  Chris Oct 5 '10 at 13:49
7  
+1 I agree with karianna. A scripter is a programmer. –  user2567 Oct 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. –  Caleb Oct 5 '10 at 22:05
show 3 more comments

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.

share|improve this answer
add comment

Imagine being in a software house. Imagine having one programmer and one scripter. The boss asks some software to be done.

  • Can the scripter get the job done? Most likely.
  • Can the scripter write readable and maintenable code? Almost impossible.
  • Can the scripter apply the right paradigms, design patterns and choose the right architecture, frameworks, etc? Hell he doesn't even know what this stuff means.
  • Can the programmer work as fast as the scripter? Not likely.
  • Can the programmer write code that any other programmer will be able to read and mantain? Almost always.
  • Can the programmer analyze, structure, work with complex stuff and make choiches foreseeing the future? Hell yeah.
share|improve this answer
16  
-1 for insinuating that all programmers work with the future in mind. Have you never inherited someone else's code? Sheesssh. –  Caleb Oct 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 Mosca Oct 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. –  mouviciel Oct 6 '10 at 5:09
10  
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 Verburg Oct 6 '10 at 9:00
1  
-1. I don't have enough characters in this comment to explain all the answers why. Very insulting. –  Craige Jan 17 '11 at 16:18
show 6 more comments

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.

share|improve this answer
show 1 more comment

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.

share|improve this answer
add comment

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,

  • algorithms and computational complexity
  • code readability and maintainability
  • error handling

etc.

share|improve this answer
add comment

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?"

share|improve this answer
add comment

scripter = very inexperienced programmer, who knows nothing like OOP, MVC, algorithms, readable code, agile, picking right frameworks/libraries for work, working with DBs, optimising code for speed, etc.

share|improve this answer
add comment

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.

share|improve this answer
show 2 more comments

A scripter becomes a programmer when he makes the conscious decision to improve his programming skills, instead of coasting along with minimal abilities.

share|improve this answer
add comment

I use the term scripter to describe someone that wraps existing libraries in order to automate a manual task in a system or across systems.

It is a sub-type of programmer like Database programmer, System programmer or Web Programmer.

share|improve this answer
add comment

As soon as they graduate from using primitive JavaScript hacks for web development and advance to real development using either Flex, Silverlight, or JavaFX rich clients. :)

share|improve this answer
2  
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 Mosca Oct 17 '10 at 9:39
show 1 more comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
show 1 more comment

Programmers are people that do programming full-time to solve business problems in code. Scripting is what Sysadmins do to automate their manual processes to keep the servers up and running.

share|improve this answer
show 1 more comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.