>>95I don't really
hate Python, but I'm unsatisfied with it, and there are other languages that fulfill the same role better, so I use them.
Sure, I hate the indentation (I believe that since you aren't supposed to see whitespace at all, it shouldn't have any effect on a program), but the philosophy behind Python (there should be one way to do it, and that way should be obvious) really just strikes me as incorrect. Really, Guido? There should be only one way to do something, and it should be obvious? Then why the fuck didn't you just write my program for me, since it's so obvious, and build it into the language? Writing in Python is a fine experience when you want to do things that the language designers predicted you'd do, but it becomes incredibly awkward if you have to write something they didn't think of.
To their credit, those situations don't come up often, even when you take into account that OOP is slapped onto the language in some places, and not in others. But it only takes one time to run into the brick wall of ``We didn't think you'd want to use this construct like that, so this feature that should be trivial is missing and to build it in yourself would take more space than the rest of your program'' to turn you off.
I can't remember what it was for me. I think I was trying to do something with
map and object construction intertwining, and I spent ages beating my head against the documentation, thinking I just didn't know enough Python, and finally I found some blog (by somebody who evidently did know enough Python) and it turned out the only way was to have two layers of objects and use one type as a proxy for the other in a manner that was incredibly awkward. And since ``Not writing awkward code, and being able to write it quickly'' was Python's selling point, and since it had failed at both for my particular task, I dropped it like a sack of rotten potatoes and used Perl for everything I would have used Python for. I'm no better at Perl now than I was at Python then, but I've never run into that problem again.
I know you're probably saying to yourself ``Well, you must have been doing it unpythonically to get into that situation in the first place,'' and you're probably right, but I don't care. As a language, Python advertises itself as being the choice where that doesn't happen, because all the subcomponents of the language are so intuitive that once you know a decent bit about the foundations, everything else just falls into place and you can worry about your algorithms and flow control. There are other languages that fill the same niche as Python, so it doesn't have a lot of leeway on failing to come through on those claims.