Python Part I · Module 1 · Introduction to Python
Programming vs Scripting
Within a week of starting Python somebody will tell you it is a scripting language, and depending on who they are, that will sound like a description or an insult. It is worth knowing exactly how much of that distinction is real before it shapes how seriously you take your own work. The short version is that a script is a program — the word describes how the code is used rather than what it is made of. There is a genuine technical difference underneath the argument, but it is narrower and more useful than the version usually taught, and several of the differences people confidently list are not true at all. This chapter separates the two so the label stops mattering to you.
Foundation7 min readPythonPart IFundamentalsScriptingTerminology
Part I · Module 1 · Chapter 1.2 · Programming vs Scripting
1. The Claim You Will Hear
Sooner or later somebody will say one of these:
- "Python is a scripting language, not a real programming language."
- "That's just a script, it's not proper software."
- "Scripts are for small jobs; programs are for real systems."
None of these is quite right, and the last one is not right at all. But they are common enough that it is worth knowing what the speaker is reaching for.
2. What the Word "Script" Is Actually Doing
A script is a program. It is written in a language, it is carried out by a computer, and it produces a result. Nothing about it is a lesser category of object.
What the word usually signals is something about how the code is used:
- It is run directly from its source file, rather than being turned into a separate executable first.
- It usually automates a job a person could otherwise do by hand — moving files, launching a tool, collecting results.
- It often glues together other programs rather than implementing everything itself.
Those are all statements about usage and habit. None of them is a statement about what the code fundamentally is. The same Python file can be a throwaway script in the morning and a load-bearing part of a nightly flow by the end of the month, without a character of it changing.
3. The Part That Is Genuinely Real
There is a real technical difference hiding under the argument, and it is worth naming precisely, because it explains something you will actually observe.
Some languages require an explicit translation step before anything can run. You write source code, you run a compiler over it, and the compiler produces a separate file of machine instructions. You then run that file. C works this way. If you edit the source, you must translate it again before the change takes effect.
Python does not ask you to manage that step. You hand the interpreter your source file and it gets on with it.
| A compiled language like C | Python | |
|---|---|---|
| What you write | source code | source code |
| What you do next | run a compiler to produce an executable | run the interpreter on the source |
| What you run | the produced executable | the source file itself |
| After an edit | translate again, then run | run again |
That is the honest difference, and it is genuinely useful: it is why the edit-run loop in Python is short, and why a Python file you find on a server can be read and changed on the spot.
4. What Python Actually Does Behind That
One clarification, because a half-true version of this is widely repeated.
It is commonly said that "Python is interpreted, therefore nothing is ever compiled". That is not accurate. Python does translate your source into a lower-level form before running it — it simply does so automatically, in memory, without asking you to manage the step or produce a file you have to keep.
So the real contrast is not compiled versus not compiled. It is who is responsible for the translation step: you, or the tool. In Python it is the tool, every time you run.
Chapter 1.4 follows that translation one stage further, which is as far as a beginner ever needs to go.
5. The Claims That Are Just Folklore
Older teaching material — including some still circulating — presents scripting and programming as two columns of opposed properties. Several of those rows do not survive contact with reality, and believing them will cost you.
- "Scripts are small; programs are large." Not true in either direction. Plenty of production Python runs to tens of thousands of lines. Plenty of compiled programs are forty lines long. Size is a property of the problem, not the language.
- "Scripts have low maintenance cost." The opposite is the usual outcome. Code that was written quickly, by one person, with no tests and no documentation, is the most expensive thing to maintain — precisely because it was treated as disposable and then was not disposed of.
- "Scripts can't be real software." A script that decides whether a chip's regression passed is real software by any definition that matters.
6. So What Is Python?
Python is a programming language. It is also extremely well suited to being used in the way people mean when they say "scripting" — run straight from source, automating a repetitive job, gluing tools together.
Both descriptions are accurate at once, which is why the argument never resolves and why it does not need to. When you finish Part I you will have written programs. Some of them will be used as scripts. The label will not change what you had to understand to write them.
7. Exercise
Exercise 1 — classify the claim. For each statement, decide whether it is accurate, folklore, or accurate but misleading: (a) "Python compiles your code automatically." (b) "Scripts are small programs." (c) "You don't run a separate build step in Python." (d) "Scripts don't need tests."
Exercise 2 — one sentence. A colleague dismisses a 300-line Python tool that runs every night as "just a script". Without arguing about vocabulary, what is the one question you could ask that makes the label irrelevant?
Exercise 3 — the translation step. In your own words, in one sentence each: what does a C programmer have to do after editing their source that a Python user does not, and why does that make Python's edit-run loop shorter?
8. Summary
- A script is a program. The word describes how code is used — run from source, automating a job, gluing tools — not a lesser category of thing.
- The real difference is who manages translation. A compiled language makes you run a compiler and then run its output; Python takes your source directly and handles that step itself.
- "Python isn't compiled" is wrong. Python does compile your code — automatically, in memory, every time you run it. Chapter 1.4 goes one step further into that.
- Most of the scripting-versus-programming table is folklore. Size, seriousness and maintenance cost are properties of the problem and the care taken, not of the language.
- The damaging belief is that scripts need no care. This course never treats "it's only a script" as an excuse.
The label is now out of the way. The more useful question is why Python in particular ended up being the language engineers reach for — which is Chapter 1.3.
Where this fits
Part of the Python curriculum.
