Names
Typos
Compile-time errors
error: use of undeclared identifier 'name'
Runtime errors
NameError: name 'name' is not defined
Assigning to the wrong name
var name;
nome = "Nick";
console.log(name);
>>> undefined
Bare Words!?
Name Collisions
Shadowing
Clobbering globals
name = "Nick"
name_list = ["Fred","George"]
for name in name_list:
pass
print name
>>> "George"
Namespaces
- Switching namespaces
- Distributing packages
- Circular import problem
Order Matters
Forward Declarations
var name;
Makes Re-organization error-prone
var name_function = name;
// ...
function name();
Harms Literary Programming
Changing names is hard
- Shadowing/Namespaces
- Dynamic languages