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