On Jan 13, 9:47 am, Bruno Desthuilliers <bdesth.quelquech...@free.quelquepart.fr> wrote: > Steven D'Aprano a écrit : > > > On Mon, 12 Jan 2009 13:36:07 -0800, Paul Rubin wrote: > > >> Bruno Desthuilliers <bdesth.quelquech...@free.quelquepart.fr> writes: > >>> Why on earth are you using Python if you don't like the way it work ??? > >> Why on earth keep releasing new versions of Python if the old ones are > >> already perfect? > > > That's a fallacious argument. Nobody is arguing that any specific version > > of Python is perfect, but clearly many people do like the general design > > choices of the language, that is, the way it works. > > Thanks for making my point clear. > > > *If* you don't like the way it works, and you have a choice in the > > matter, perhaps you should find another language that works more the way > > you would prefer. > > > On the other hand... Bruno's question is unfair. It is perfectly > > reasonable to (hypothetically) consider Python to be the best *existing* > > language while still wanting it to be improved (for some definition of > > improvement). > > And that's the problem : what Paul suggests are not "improvements" but > radical design changes. The resulting language - whatever it may be > worth, I'm not making any judgement call here - would not be Python > anymore. > > > Just because somebody has criticisms of Python, or a wish- > > list of features, doesn't mean they hate the language. > > There's probably a whole range of nuances between "not liking" and > "hating". And Paul is of course perfectly right to think that a language > having this and that features from Python, but not this other one, would > be a "better" language (at least according to it's own definition of > "better"). Where I totally disagree is that it would make *Python* better. > > Also, my question was not that "unfair" (even if a bit provocative). I > really wonder why peoples that seems to dislike one of the central > features of Python - it's dynamism - still use it (assuming of course > they are free to choose another language). And FWIW, I at least had a > partial answer on this.
I think the issue here is the distinction between hacking and software engineering. I may be misusing the term "hacking," but I do not mean it in a pejoritive sense. I just mean getting things done fast without a lot of concern for safety, security, and long-term maintainability and scalability. I'm not a computer scientist, but it seems to me that Python is great for hacking and good for software engineering, but it is not ideal for software engineering. What Paul is suggesting, I think, is that Python should move in the direction of software engineering. Whether that can be done without compromising its hacking versatility is certainly a valid question, but if it can be done, then why not do it? Certainly one basic principle of software engineering is data encapsulation. Tacking new attributes onto class instances all over the place may be convenient and useful in many cases, but it is not consistent with good software engineering. If the programmer could somehow disallow it in certain classes, that could be useful, providing that those who wish to continue doing it would be free to do so. If class attributes could somehow be declared private, that would be useful too. Optional explicit type declarations could also be useful -- and I believe Python does have that now, so no need to argue about that. Why do I continue to use Python when I have so many "complaints" about it? As everyone here knows, it has many good qualities. My work falls somewhere in the middle between "hacking" and software engineering. I am developing a research prototype of a safety-critical system. A research prototype is not safety-critical itself, and it needs to be flexible enough to try new ideas quickly, but it also needs to serve as a model for a well-engineered system. Is Python the right choice? I think so, but I don't know for sure. -- http://mail.python.org/mailman/listinfo/python-list