On Jul 24, 9:26 pm, Jordan <[EMAIL PROTECTED]> wrote: > In reality? I'll just keep writing Python (hopefully enough so that > explicit self become burned into muscle memory), and use other > languages when necessary (no more C than I have to, looking forward to > dabbling in Erlang soon, and one day overcoming the parentheses phobia > enough to really tackle Lisp properly). When I'm old enough and wise > enough, and have the time, energy and inclination, maybe I'll sit down > and put a proper effort into designing and implementing a new language > that bests suits my own particular style and needs.
> Just maybe it'll > be good enough that smart people will rally to defend its design > principles from people attacking them on the internet :-) Forgive me in advance, but that is just a day dream, however good a language design is, there WILL be other people who disagree with the corner cases. Python is one example, even with Guido that is great at designing language, there are many edges in python that many people disagree and attack from time to time, but not every one of those edges got fixed, why? Because it is impossible to appeal everyone, if the language is changed according to your (or other's) idea, there will be some other people who don't like it (with your examples, it might be the people who are used to functional programming and people who want to implement a very complex behavior in __eq__ and __ne__). What seemed to be the obviously correct behavior for you would be unexpected for some other people (this is also in python's Zen although in a slightly twisted kind of way[1]: "There should be one-- and preferably only one --obvious way to do it; Although that way may not be obvious at first unless you're Dutch."). [1] Basically, the Zen is saying that whether and idea is the obviously correct way to do something is measured by Guido's measuring tape. Basically it's also saying that python is designed according to what HE thinks is obviously correct. The Zen you're attacking: "Explicit is better than implicit," is a generally good advice, although as you mentioned, it doesn't fit every single cases in the world, which leads us to the other Zen[2]: "Special cases aren't special enough to break the rules; Although practicality beats purity." [2] In our case, "Explicit is better than implicit" is the "rules", the corner cases where implicit is a generally better choice is the "special cases". The first verse ("Special cases ... break rules") implies that everything should be explicit, no exceptions, while the second verse ("practicality beats purity") means that if something breaking the rule makes it more practical, then you don't have to follow the rules[3]. These two statements contradicts each other, implying an implicit Zen: "Foolish consistency is the hobgoblin's little minds", it is OK to break the rules sometimes. [3] Despite saying this, I also have to emphasize that what is practical or not is measured by Guido's tape. With this explained, I hope you understand the point I'm making: "There is no The Perfect Language, that is liked by everyone in the world." The moral is, if you like a language, try to resist its warts and know that each wart have its own story. You don't have to like the warts, but you just need to stand to it. -- http://mail.python.org/mailman/listinfo/python-list