Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
A dynamic programming language lets important decisions—especially whether an operation is valid for the values involved—be checked while the program runs. Python, JavaScript, and Ruby are examples. Dynamic languages still have types; the key difference is when type checks happen.
What does “dynamic programming language” mean?
The phrase is most commonly used to describe a language with dynamic typing. The Python typing specification puts it plainly: “A dynamically typed programming language does not run a type checker before running a program.” Instead, the program’s runtime checks values as operations occur. Python typing specification
For example, a runtime can determine the type of a value when the program uses it, then check whether the requested operation is valid for that value. A type-related problem may therefore appear during execution rather than being rejected by a type checker before the program starts.
Why is the term sometimes used more broadly?
“Dynamic” can also describe behavior that a language allows a program to determine or change at runtime, where another language might fix or check it earlier. MDN’s glossary gives JavaScript’s ability to change variable types and object properties or methods as examples of this broader meaning. MDN glossary
#1 Best Overall
In a definition focused on typing, the narrower meaning is more useful: dynamic typing refers to checks made as the program runs. The broader meaning emphasizes runtime flexibility in program behavior.
How is dynamic typing different from static typing?
The central distinction is when type checks happen, not whether a language has types at all. In a statically typed approach, type checking occurs before execution; in a dynamically typed approach, the runtime checks values as operations are performed. The details vary by language and tooling.
Rank #2
| Question | Dynamic typing | Static typing |
|---|---|---|
| When are type-related checks made? | At runtime, as the program performs operations. | Before execution by a type checker. |
| Must types be established before execution? | Not in the same way as in a statically checked program; the runtime uses the values’ types. | Types are checked before the program runs. |
| Can additional static checking be used? | Yes. Optional annotations and separate tools can check some types before execution. | Static checking is part of the approach, though the exact requirements depend on the language. |
This distinction does not, by itself, establish that one language is faster, safer, easier to use, or more productive. Those outcomes depend on the language, implementation, tools, and project.
Does dynamic mean untyped or weakly typed?
No. Dynamic languages still have types, and their operations remain subject to runtime rules. The Python typing specification explicitly warns: “This is not to say that the language is ‘untyped.’” Python typing specification
Dynamic versus static typing is also separate from strong versus weak typing. The first distinction concerns when type checking happens. The second concerns which operations or conversions a language permits. Python, for example, is commonly described as both dynamically and strongly typed. Python typing specification
Which languages are dynamically typed?
- Python: Its typing specification describes it as dynamically typed. Python typing specification
- JavaScript: Oracle identifies JavaScript as dynamically typed; MDN explains that a variable’s type is determined at runtime from its current value. Oracle language documentation MDN glossary
- Ruby: Oracle also identifies Ruby as dynamically typed. Oracle language documentation
Can a dynamic language use static type checking?
Yes. Dynamic typing does not prevent a developer from using optional annotations or separate static-analysis tools. Python supports annotations that type-checking tools can examine before execution. These tools can find some errors early, while the program’s ordinary runtime checks still apply. Python typing specification mypy documentation
Rank #4
Does dynamic mean interpreted?
No. “Dynamic” describes when checks or other behavior occur; it does not determine whether a language implementation interprets code, compiles it, or combines techniques. Those are separate questions about implementation.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsQuick Recap
Best Value
- Used Book in Good Condition
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

