Been doing a lot of coding in python lately. While some of the hackability of the language is nice for doing some cool things, overall, I cant say im a fan. Its a little too obscured for writing algorithms where effiency is important. Its hard to tell what data types are truly backing various variables and thus makes it tricky to pick the right implementation. I think im working with raw arrays and they turn out to be linked lists or worse. Even then things like a "Dict" isnt always clear if its a Tree implementation or a hashmap implementation or something else entirely.
Granted this isnt an impossible task, I have managed to figure it out by pulling open the source code of the libraries I call and using profiling tools. But python seems to not care or obscures a lot of that.
@freemo
I really like this post and the discussion it started. When coding in python I'm especially annoyed by the lack of typing information, but less from a efficiency perspective and more from a readability standpoint. Knowing the type of a function usually gives you enough information to guess what it does or understand the documentation better. And the fact that you have to run code to find type errors in python is just a bonus...