What is the distinction between the three terms?
(I'm speaking from a Fortran, C++, Visual Basic, Java, etc perspective.)
What is the distinction between the three terms?
(I'm speaking from a Fortran, C++, Visual Basic, Java, etc perspective.)
Seems to be a bit blurry line, but scripting is generally done in a limited (ie not complete) language (example of scripting languages: Javascript, flash actionscript, shellscript - all done to serve a purpose, not all purposes).
Coding and programming I'm not sure there's a big difference in comp sci terms, one is just colloquial.
![]()
DISCLAIMER: I may sign with a wink out of habit. This is a signature and does not guarantee that what I'm talking about was actually funny, or should be perceived as such.
"Sometimes I take humor seriously. Sometimes I take seriousness humorously. Either way, it is irrelevant." - Malaclypse the Younger
Programming: The overall act of designing, expressing, debugging, then optimizing a software package.
Coding: Expressing (implementing) a program. (You'll note I've yet to say anything about computer languages. This was intentional.)
Scripting: Expressing a program (function, or subroutine) in a particular language.
And you, to whom adversity has dealt the final blow
With smiling [faces] lyin' to ye' everywhere ye' go
Turn to, and put out all your strength of arm and heart and brain
And like the Mary Ellen Carter, rise again.
Scripting has a few senses.
One is code that's used to direct the behavior of other programs instead of code that's used to write standalone applications all by itself. JavaScript and ActionScript fall into that category.
Another is code that's written in an interpreted language (such as perl, bash, or PowerShell) that's intended do small tasks for you and doesn't have a user interface or anything like that.
Scripting languages themselves actually tend to be less limited than non-scripting languages, in that they come with a lot more features and do the housekeeping for you. They tend to be designed for ease of use rather than performance, though, and often do not come with a compiler. A common practice nowadays is to write the guts of an application in a traditional programming language and then do all the higher-level control and whatnot in a scripting language so that you're using each for the kinds of tasks it's best suited for. About half of Adobe Lightroom is written in Lua for example.
If there's any difference between coding and programming, it's that programming can be used to describe any part of building software, up to and including doodling in a notepad, whereas coding specifically means sitting at a keyboard banging away on source code.
And tonight I'm going hardcore: I'm going to write code into notepad. I don't have my programming environment here but I still want to continue on my program. So tonight it will be without compilers but only with pure and raw logic of the human mind.
Since I'll write VB6 code as a part of a program, that would be scripting. Or coding, as in coding the gear box subroutine. Though where I come from, we'd say "programming the gear box subroutine". But that may be just us.![]()
In America, you get beaten by Chuck Norris. In Soviet Russia, Chuck Norris beats you.
At the risk of starting a religious war, I'd say that perl doesn't belong in that list.
First of all because it's not interpreted, second because it's actually a complete language, including easy to use GUI programming interfaces1.
It belongs in the language group with Java, not with bash or JavaScript.
1) I've implemented GUI applications in perl, I found it easier that Visual blah with MFC and a bazillion wizards and it has the advantage that it the resulting program was OS independent too, without extra work.
__________________________________________________
Reductionist and proud of it.
Trying to make sense of computers, The Error Log.
Being ignorant is not so much a shame, as being unwilling to learn. Benjamin Franklin
Chase after the truth like all hell and you'll free yourself, even though you never touch its coat tails. Clarence Darrow
A person who won't read has no advantage over one who can't read. Mark Twain
Sure, you can generate a standalone executable from perl code, but at least in my experience the standard method is to let perl run the script. Yes, it uses a just-in-time compiler to do this, but that's the case for all sorts of languages that are categorized as interpreted nowadays - Lua comes to mind again there. I think the key distinction is whether the usual way to run a program is 1-step (pass the source code into a program that runs it, it doesn't matter how) versus 2-step (pass the code into a program that compiles it into a standalone executable, then run the executable).
Not to mention that the standard term used to denote something written in the language is "perl script".
For the most part the terms are used to denote the same thing, writing computer code whether it be for an application or website.
For a distinct between the three in real life terms though:
Script - generally a stand alone function that produces a result or returns a value. (i.e. javascript, VBscript, etc)
Code - usually denotes a part of a larger application or class object.
Program - The complete code of an application, kind of a high level of all the functions, classes and methods.
When we're talking in the office and someone says they are scripting, it usually denotes working on a website, when they say coding they're working on an desktop app.
Science may set limits to knowledge, but should not set limits to imagination.
Bertrand Russell (1872 - 1970)
Ooooo, I think I thought a thought. Ooo I did, I did, I did think a thought.
My new favorite web comic: http://questionablecontent.net/
I think that in a broader sense they´re interchangeable. A program is the implementation of an algorithm. Whether your program is coded or scripted it is of minor importance, although scripts are usually related to interpreted routines.
Out of the crooked timber of mankind no straight thing can ever be made. -- Immanuel Kant.
Science may set limits to knowledge, but should not set limits to imagination.
Bertrand Russell (1872 - 1970)
Ooooo, I think I thought a thought. Ooo I did, I did, I did think a thought.
My new favorite web comic: http://questionablecontent.net/
Might you also include programming as working on physical machines as well? I'm thining of robotics and chipsets used in machines. So, I think of programming as the implementation of code into it's environment.
I think of coding as the process of banging out instructions to later be compiled.
I think of scripting as a writing simpler executable string that calls and relies upon programming previously done elsewhere or by others.
"What you think you thought you saw you did not see." Agent J, MiB - Manhatten Bureau
There are complete languages that are interpreted as well...
As for Nicolas' comment, I usually program that way. A big environment isn't really necessary for coding (though I like syntax highlighting).
![]()
DISCLAIMER: I may sign with a wink out of habit. This is a signature and does not guarantee that what I'm talking about was actually funny, or should be perceived as such.
"Sometimes I take humor seriously. Sometimes I take seriousness humorously. Either way, it is irrelevant." - Malaclypse the Younger
Out of the crooked timber of mankind no straight thing can ever be made. -- Immanuel Kant.
Several good answers, but in the end it's context context context. Using the supplied definitions might lead to misunderstandings in environments where the words have a subtle difference in usage.
(I once learned that someone worked as a programmer, but I couldn't relate to what he said about his work at all. After an awkward moment I found out he put together schedules for bands on festivals, etc.)
__________________________________________________
"Dumb all over, a little ugly on the side." -- Frank Zappa | Meet the OOONG TOE.
"Your right to hold an opinion is not being contested. Your expectation that it be taken seriously is." -- Jason Thompson
'No, mad's when you froth at the mouf,' said Gaspode. 'He's insane. That's when you froth at the brain.'
'This is really very simple, but unfortunately it's very complicated.' -- publius || TLIOF! -- dwnielsen
Speaking from being in the industry for 27 years...
Programming: The art of designing and writing complex applications or software. (A programmer would also be a good Coder, however a coder is not neccesarly a good programmer.)
Coding: The act of writing some code.
Scripting: A programming like interface used to write control or automation routines for applications or software, usullay without the need of compiling.
There is no problem that cannot be solved by a suitable application of high explosives - US Army Demolitions School
I just saw Hayley's comet, she waved, Said "why you always running in place? Even the man in the moon disappeared, Somewhere in the stratosphere" - Shinedown
http://worldsofothersuns.home.comcast.net/
To me, coding is mechanical, putting the algorithm into the computer so to speak, making sure syntax is correct, everything is defined before it is used, etc. The program may have been "written" (in the mind and/or as a design in psuedocode, drawings, etc.) by the same person, or someone else. That's programming, to me.
Scripting is writing a program of the simplest sort---each command is something potentially powerful (like a shell command) and they are run in the right order, maybe with some loops and branching, but the key thing is the programs are already there, and you choose how they get run. It's a step up from a "batch job" which had (if even that) rudamentary looping or branching (e.g. a goto statement, or an if x then execute this one statement).
In other words, a Perl script is often really a program, not a script.
A higher-level up from programming is designing--deciding what will be done, and even choosing existing (or creating new) algorithms, though if you write the algorithm in the final language to program in, you are also programming AND coding at the same time!
-----
Todd (Bowie, MD, US, North America, Earth, Sol System, Vega region, Local Bubble, Orion arm, Milky Way Galaxy, Local Group, Virgo A Cluster, Virgo supercluster, the universe in which spock is clean shaven)
Quidquid latine dictum sit, altum sonatur.
personal page: http://blog.astrosketches.info
Good point. Maybe I should say it's an implementation of instructions or instruction sets instead of implementation of code, which seems limited to digital and or electronic instructions.
After reading some other posts, maybe breaking it down this way makes more sense.
Programming is designing. Coding is describing. Scripting is applying.
"What you think you thought you saw you did not see." Agent J, MiB - Manhatten Bureau
I've done software development since 1977 and then professionally since the mid '80s.
I would say that while there is a lot of overlap, programming means coming up with the conceptual and design stuff while coding is taking those concepts and designs and, well, coding them up. As for scripting, historically a script has tended to be a non-compiled language such as a shell script, java script and such. But to be honest those distinctions seem to be fading.
Many years ago I ran into another one of those contextual definitions. During a job interview for an entry-level shop monkey position (which included some basic drafting), I was asked if I'd done any programming. When I replied, "I've done some C++, and I had to take a FORTRAN course in college," I was met with a blank stare. Apparently, in manufacturing, 'programming' refers solely to making NC programs for CNC machines.
I did get the job, but they never let me try the CAM software.
————————————————————————————
There are only two phases to a large procurement program: too early to tell, and too late to stop — Fitzgerald's First Law of Program Management
Well in some places yes, but in general in Industry, programming tends to be more PLC programming, the main players in the field being Siemens and Allen Bradley (or Rockwell Automation), these days a good knowledge of C++ and VB are also essential.
Aw what am I talking about, I've been doing this for 15 years and they expect me to be able to program anything in any language. I have to run just to keep up.
"If you've made it to retirement without being blamed for a major disaster, you've failed as an engineer."
Yeah, I probably should have been more specific. It was one of those sub-sub-sub-contractor job shops that machine aircraft parts. The kind that's just a handful of 3 and 5-axis CNC milling machines, plus a few old Bridgeport knee mills and maybe a turret lathe.
It may just be in machine shops that "programming" refers to the CAM department (while PLC programming is called "fixing the machines").
————————————————————————————
There are only two phases to a large procurement program: too early to tell, and too late to stop — Fitzgerald's First Law of Program Management
I'm running up against definition walls in my current job all the time.
Still trying to explain the difference between "program blocks" and "block programming" to some...
I'd really rather not have to resort to PLC-style programming (in a graphic environment) when there's simpler solutions around, but you know what they say: "When all you have is a hammer..."
![]()
DISCLAIMER: I may sign with a wink out of habit. This is a signature and does not guarantee that what I'm talking about was actually funny, or should be perceived as such.
"Sometimes I take humor seriously. Sometimes I take seriousness humorously. Either way, it is irrelevant." - Malaclypse the Younger
I knew someone was going to start the religious wars, and I completely agree that Perl is a programming language, not a scripting language. The difference has become kind of fuzzy anyway. The fact that Perl originated as a Practical Reporting and Extraction Language is immaterial. I use Perl in a scripting capacity, but it has all the features of a so-called complete language. True, the object-oriented features are an afterthought, but everything you expect in a language, such as program control structures, memory variables and general-purpose support of input and output. In addition of course, the list and hash manipulation features put many languages to shame.
Let the ad-hominems begin....
"The worst thing in life is to be forgotten." - Author unknown.
"Scripting" is a word you use when you want to talk about computer programming without scaring people away.
Life is like a box of chocolates. All of your choices are bad for you.
Generally this happens to a lot of coding environments that started out to serve a very limited goal (as is the case for most traditionally known as 'scripting' languages, macro coding, etc). The more popular it becomes, or the more widely used they become, the louder becomes the call to add features like you mentioned. Ultimately though, most languages turn out (or remain) especially strong in some applications, and marginally acceptable in others. Use the tool that's best suited for the task at hand, and you best know how to use. Let others worry if the work you do should be called coding, programming, scripting or spaghettifying.
Perl is code on crack!Let the ad-hominems begin....![]()
__________________________________________________
"Dumb all over, a little ugly on the side." -- Frank Zappa | Meet the OOONG TOE.
"Your right to hold an opinion is not being contested. Your expectation that it be taken seriously is." -- Jason Thompson
'No, mad's when you froth at the mouf,' said Gaspode. 'He's insane. That's when you froth at the brain.'
'This is really very simple, but unfortunately it's very complicated.' -- publius || TLIOF! -- dwnielsen
Speaking of code on crack...
I once worked at a company where our code testing setup was a browser interface using php and sql, with a perl backend with inline awk commands running a sed/shellscript that linked into our synergy "version control" system and compiled/ran our C files.
I think I might have forgotten some other languages that were involved somewhere around the way. I found out when I was tracing a really weird error once.
It was the most baroque code I've ever seen. Inline scripts inside inline scripts. We joked that it had to have been someone's degree paper, because nobody in their right mind would use so many languages in the same place otherwise.
(the error message I got? It said "should never get here".)
![]()
DISCLAIMER: I may sign with a wink out of habit. This is a signature and does not guarantee that what I'm talking about was actually funny, or should be perceived as such.
"Sometimes I take humor seriously. Sometimes I take seriousness humorously. Either way, it is irrelevant." - Malaclypse the Younger
What is VBA then?
Science may set limits to knowledge, but should not set limits to imagination.
Bertrand Russell (1872 - 1970)
Ooooo, I think I thought a thought. Ooo I did, I did, I did think a thought.
My new favorite web comic: http://questionablecontent.net/
I know it´s a rhetorical question, but it´s worth noting for the occasional reader that it isn´t a general purpose language. Visual Basic for Applications is designed to enable building Windows-based applications.
Out of the crooked timber of mankind no straight thing can ever be made. -- Immanuel Kant.