really? I'm British and I'm quite amazed at how I can (without ever thinking about it) switch between colour and color. I wonder if maybe some people approach programming as a different language (eg: color isn't colour, it's color, it is a unique thing) and then some approach it as an extension of their own language.
Also a Brit here. I used to get annoyed, but eventually I think it seeped into my system as a different language as you put it. About 2 years ago I had a colleague get very angry with me for writing code analogous to:
Color colour = new Color();
To me, it makes perfect sense, and tbh didn't realise I was even doing it. I definitely endorse everyone standardising on American spelling though, now its been pointed out to me.
Strangely, I do that too. I tend to blame my education :)
Amusingly enough, (though not strange, if you consider its origins) Haskell uses the British spelling. Off the top of my head, the colour types are defined in the Data.Colour module.
I don't know if this is the one you meant, but I watched it a while ago and I think it's well worth the time: SPJ is great to listen to and you actually pick up a good amount Haskell and functional concepts.
I never had much of a problem with 'color', but grey/gray got me every single time. Always went with the British spelling.
However, at this point, I actually can't remember which spelling is which. I have to look it up. 'a' is the American one, right? (gosh, I hope I'm right)
I've often wondered this. I had a friend who couldn't spell to save his life when he was writing prose - but when he wrote code he was fine. Never understood how that worked.
I'm glad you said this - I'm exactly the same. I automatically type "color: gray" when coding, I wouldn't dream of using them them outside my text editor.
It may not be limited to natural vs programming language though. I also have no issue daily switching between 0-indexed and 1-indexed languages, but I hear an endless stream of complaints about the latter language from people who insist they can't do that.
Are you saying that you don't? I most definitely think of code as being an extension of language. Code occupies this rather unique field where it is part machinery and part language. Approaching it only as machinery, limits your possibilities.
I doubt it. While it may limit your parent's capability (if he thought of it as a second language), I think it would a little presumptuous for him to imply it limits yours. I know lots of people who approach coding differently than I do, yet they still do just fine (even if I can't watch them code because it drives me crazy :).
It would be presumptuous if I was to say that not thinking that way would make you a bad programmer; I'm sure there are many ways to enlightenment. And many types of enlightenment, for that matter. But I would venture to say that being able to think of programming as language, is a strength. Whether you use this paradigm as the primary frame for writing software, is a different matter. I find it very powerful.
See also: Literate programming, or - more recently - Domain Driven Design (In particular: Ubiquitous language).