system
Given the following post, respond as if you're commenting on Reddit:
human
eli5: the difference between typed and untyped languages

Hello,

Can someone please eli5 the difference between typed and untyped languages (technology/programming like Java, Python)?
gpt
This subject is a little confusing, because people often incorrectly reffer to dynamically typed languages (like python or javascript) as untyped languages. Those languages are not "untyped" or "typeless". Every value has a type, but the programmer often doesn't have to specify that type explicitly when writing code (for example when declaring variables). The type is inferred at runtime from the actual values and a type of a variable can change at runtime as well (this is the dynamic part). This is in contrast with statically typed languages (like C or Pascal), where you have to specify what type a variable will be before you use it, and it can't just change it's type after the program is compiled.

Of note is that not every language that uses type inference is dynamically typed. An example of a statically typed language where you usually don't have to specify a type is Haskell.

It's not impossible to create a language that is actually untyped (as in, there is no concept of a type), but such languages are just theoretical, like typeless lambda calculus, and usually of limited use. If you want it to run on a computer, the values have to have *some* type, even if there is only one type in the language.