The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →A dynamic programming language lets important decisions—especially whether an operation is valid for a value—be made while the program runs. In the most common use of the term, its type checks happen at runtime rather than in a type checker run before execution. Python, JavaScript, and Ruby are examples.
What “dynamic” means
The phrase has a broad and a narrower use. Broadly, a dynamic language can perform at runtime operations or decisions that other languages may settle at compile time. More commonly, people use “dynamic” to refer to dynamic typing: the program checks values and operations as it runs. The Python typing specification puts the distinction this way: “A dynamically typed programming language does not run a type checker before running a program.”
As an Amazon Associate I earn from qualifying purchases.
For example, a runtime can determine whether a value supports an operation when that operation is reached. If it does not, the program may raise an error then, rather than having a type checker reject the program before it starts.
Free tools Windows power users keep installed
One-click scans. No signup required.
Dynamic languages still have types
Dynamic does not mean untyped. Values have types, and the language’s runtime rules still determine which operations are valid for them. The Python typing specification explicitly cautions: “This is not to say that the language is ‘untyped’.”
Dynamic typing is different from weak typing
Dynamic versus static typing describes when type checking happens. Strong versus weak typing is a separate distinction about which operations and conversions a language permits. Python, for example, is commonly described as both dynamically and strongly typed; the two labels do not conflict.
Examples: Python, JavaScript, and Ruby
- Python: Its typing specification describes it as dynamically typed. Values are checked at runtime when operations are performed.
- JavaScript: Oracle identifies it as dynamically typed; a variable’s type depends on its current value at runtime. The MDN glossary also uses JavaScript examples involving changes to variable types and object properties or methods.
- Ruby: Oracle also identifies Ruby as dynamically typed.
These examples share runtime type checking, but “dynamic” is not a guarantee that every language behaves identically in every respect.
Can a dynamic language use static checking?
Yes. Dynamic typing does not prevent tools from checking code before it runs. Python supports optional type annotations, and separate type-checking tools can analyze them to find some problems ahead of runtime. Those checks supplement rather than replace Python’s ordinary runtime behavior.
Dynamic does not mean interpreted
The term describes when certain decisions or checks happen, not how a language implementation executes code. The definition alone does not tell you whether an implementation interprets code, compiles it, or combines techniques.
Quick Recap
Best Value
Rank #4
Rank #3
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.




