
Markus Unterwaditzer <markus@...> writes:
Hello James,
I see how this would help with avoiding a whole class of errors, but then
also think your two suggestions -- the var and implicit keywords -- would take a great deal of flexibility and expressiveness from the language. Also, Python was never meant to be statically typed, so suggesting static typing so many years after its creation is IMO pointless, even though you're suggesting it to be optional. OTOH I like your idea of suggesting variable names when NameError is raised, but i don't know how easy this is to implement in CPython.
I also want to say that the kind of error you're describing never occured to me in practice. The mistake of assigning to the wrong variable name (and not noticing it immediately through an exception) seems to me like something
i that
only occurs when deliberately writing huge cludges of spaghetti-code, or when you're simply not using enough namespaces.
I don't believe that having var and implicit keywords would make the language less flexible -- they are completely optional, remember. If you omit "implicit none" from the beginning of your program you can write your program like you do now, implicit variable declarations and all. In retrospect, statically typed variables does contradict Python's duck typing: it shouldn't matter if it's a float or an integer, as long as you multiply or divide, you're fine, and if you need a specific type, you just check with type(). - JN