Automatically creating a local variable when I have forgotten to specify that as 'global' or have typed a variable name wrongly has driven me nuts using Python.
Sounds like your problems are more than with Python. global
does exist but you will never need it. Like exec
and eval
it's there for a reason but the overwhelming majority of Python code will never need it.
Whitespace or braces is personal preference but in team work whitespace is much easier to enforce.
At a programming level Python can be criticised for dynamic typing, memory use, the global interpreter lock, speed but for any of the random inconsistencies that Javascript throws up.