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

Order Matters

Forward Declarations


                var name;
            

Makes Re-organization error-prone


                var name_function = name;

                // ...

                function name();
            

Harms Literary Programming

Changing names is hard