Comment Re:His Comment (Score 1) 399
Python is a horrible language and is hard to write for any real sized project.
Let's say you need to modify a function signature to handle different parameters. Or maybe even rename the function to better reflect it's real purpose. In any compiled language it's dead simple to verify that all users of that function have been updated as well. In python, you what? Grep through the source code and hope you find all of the instances based on the function name? Well what if you passed the function is as a parameter to another function? Well.. you get a runtime error when your code doesn't interpret when running, but by then it's possible that it's already released.
How about logic bugs that can't easily be found?
something = function_call(a)
soemthing = function_call(b)
The soemthing is probably a typo.. Good languages will tell you you never declared a variable called soemthing.. Python will just create it for you. Yay.
Or even just something like:
a = "some string"
a.someFunctionThatDoesn'tExist()
You have to unit test every possible code path just to know the damn thing compiles. Duct typing is the tool of the devil that doesn't save any time and in fact causes more problems and just wastes developer time. It's impossible to refactor, large projects are a pain in the ass, and import statements do different things depending on how you declare them (Yes, there is a difference between "import module.submodule" and "from module import submodule" and "from module import submodule as some_other_name").
And whitespace as part of your syntax is just stupid. Oh and Python doesn't have real threading because of it's reliance on a horrible interpreter implementation revolving around the GIL. Oh and you can't have true encapsulation because it's impossible to have private variables in python. And there's not really a thing as a "constant" as it's a pain in the ass to make something immutable.
If you want something that follows the 3 points you just made, use Scala. It's functional, OOP, can be used as a scripting language.. and it's statically typed so you avoid all the pain in the ass shit you run into with python. Oh and it has threading to boot.