…that is the question. Rather than a Shakespeare reference, I’m here referring to a term in software development which determines how a language deals with variables, for example.
Define: type
When you create a variable in a computer language, it’s usually something like this:
var someVarName = 1;
In a case like this, we might infer that someVarName stores a number (an integer). We might say that the someVarName‘s type is integer. Using a pet-ownership metaphor, it’s like purchasing a dog house first (“someVarName”) and then next buying a dog to put into it (“1”). You wouldn’t buy a fish bowl to store a dog… although this seems to work out great if you own a cat. JavaScript, e.g., is like this picture: it doesn’t seemingly care if you want to store a cat in a fish bowl.

Two Schools of Thought
There are two camps out there: those who like languages which force the variable type and those who don’t.
A statically-typed language usually involves a step in which your code is converted into something else (compiling) and any type-related issues must be fixed before a program can be created.
A dynamically-typed language is run “as is” and the code is evaluated at the moment of truth—determinations about the type of a variable are made at this time. If there is a type-related issue, your end-user could be the first person to see the error.
Statically-Typed |
Dynamically-Typed |
Java |
JavaScript |
C++ |
Python |
C# |
PHP |
C |
Objective-C |
The Pendulum Swings
Over the past three decades, the popularity of either approach has waxed and waned. It’s safe to suggest for the moment that the less-strict languages are gaining rapidly in popularity over their stricter counterparts.

We have the world of open source to thank for the popularity and speed of development we’re currently seeing in these dynamically-typed languages like JavaScript and Python.
Seeing the Future
Honestly, though, there are too many people in that strict-is-better camp and their influence is felt within software development companies. If I were to guess at the future of JavaScript, I’d probably have to say that TypeScript and Flow will gain in popularity as larger development teams look to lower the number of bugs in their code.
I don’t know, though. Maybe it’s time that we just relax and let the cat hang out in the fish bowl.