**In layman's words:**

- Separating declaration from instantiation helps decouple who uses the objects from who creates them
- When you do that, polyporphism is enabled since, as long as the instantiated type is a subtype of the declaration type, all code using the variable will work
- In strongly typed languages you must declare a variable stating its type, by doing simply ` var = new Process()` you are not declaring the variable first.