Emiliano wrote: > Sean Russell wrote: >> Ummm... then don't use global data. At worst, you'd be no worse off than .... > You might not use it, but your i-know-better neighbour will. Then it will be her variables that will be overwritten, not mine. Really, using global variables is such a poor programming habit that I believe that if you have someone on your team using them, you have more problems than just global variables. I've had to work with poor programmers enough to know that a little tutoring and some decent project leadership can really help these people contribute good code. Lord knows I'm not the best programmer in the world, and I learn from other people as much as they, me. This is why you have unit tests and code reviews. This is what "teamwork" is all about. Oops, now I'm drifting into XP advocacy. Sorry. >> The main difference is that, with Python, Guido V.R. is determining how >> all >> of you are going to style your source. I'd rather have local control >> over that sort of thing. > > While I agree with you, I have to ask: why? I feel the same way yet I > can't shake the feeling we're being childish for holding on to > something as insignificant to a particular coding style while we both > acknowledge that coding standards are good. Ah. I can appreciate that. I'd rather have flexibility in choosing the coding standards because coding styles should be dynamic. If someone has a better idea about how to make code readable or more maintainable that Python's rigid style doesn't allow, then too bad. While this is true of any programming language to some extent, the flexibility allowed by Ruby provides more wiggle room. I feel that language-imposed style limitations are more restrictive of creative freedom than those imposed on the project level. If you don't have any ability to change, you'll never improve, and you'll never discover a *better* way of doing things. >> I'm increasingly getting the feeling that there isn't much structure in >> your work environment. > > On an individual level, that's what you're going to see. Unless you > work at NASA, maybe. Well, my last project, which had a team of 5, and about 50k lines of code in Java, had some coding standards that we uniformly adhered to. There were only three ways to tell the difference in any of the code: 1) You knew which code you wrote because you remembered writing it 2) You looked at the comments 3) If there were any really long variable names, it was my code. So I'd argue that Python would not have changed this in the least. In fact, we used the "official" Java style guide with some minor changes to the variable naming scheme. These changes were, in our opinions, significant improvements on the "official" style guide. If the Java compiler itself had imposed those style restrictions, we wouldn't have been able to use our naming scheme. This is the core of my disagreement with enforcing styles at the language level. >> Again, I'd rather have local control, than leave >> that sort of thing up to the language designer. > > Which leaves you to police such matters. Yes, that's part of the team effort... everybody polices each other's code. You can't afford to not have code review on a large, multi-programmer project. > I don't think that was the point. His work environment may or may not > be as chaotic as you describe. The way I read his statements is that .... as I imagine :-) > in large projects, you need coding standards anyhow, in which case > it makes very little difference if you enforce them by policy or by > your compiler. I don't particularly like the coding standards I have > to use at work now, and still I have to use them. Same difference who > does the policing. I disagree. With Python, the coding standards are inflexible. Python is not going to change; you have no chance to provide input; control of the style is so far removed from you that you are, in effect, insignificant. If control is local, you have input. It may be ignored; you may be outvoted; it may be such a legacy standard that changing it would be impossible. This is still at the *worst case* no worse off than if you were using Python, and the opportunity for it being *better* is much, much greater. --- SER