Language Choice Imposes Social Structure

...the idea behind NewSpeak of the book 1984 (NineteenEightyFour) -- by restricting the language so that "freedom" and "revolution" can't be expressed, you can prevent people from thinking about such things, or acting on them. In other words, you can use language to control people.

As a special case of LanguageChoiceImposesSocialStructure, we find that some computer languages, by their very design, inhibit refactoring --> moved to LanguageInhibitsRefactoring.

One thing that makes the difference between a comfortable and uncomfortable language, is the degree to which it allows or suppresses IncrementalDevelopment. Some programmers need to get more frequent feedback on how they're doing, just in the sense of seeing more happening. If you use a language that allows you to see how things are evolving, you're more productive and effective than when you have to do a lot of coding up-front before you can even compile and execute the darned thing. (Many people I speak to believe that this is the same as a distinction between planning and unplanned hacking but I don't buy this. I still plan, I still design. But I also want to continuously prototype and refactor down at the micro-level.)
Absolutely agree. We have a massive framework of dinosaur C# classes enshrined in stone, totally untouchable. Nearly all of them are poorly designed, they aren't refactored and have no unit tests. And standards force us to inherit and reuse them. The slightest change proposal is heavily resisted as they say they'll have to retest everything. They wouldn't have to retest it all if they were properly factored and had NUnit tests! So the fact that C# encourages inheritance and punishes changes further up the inheritance chain, negatively impacts the programming culture and productivity. IMO, a language should be judged by the damage that an abuser (poor coder) can do. A poor coder writing a bad function is one thing, but writing a framework base class that cannot be touched and must be inherited by all reflects horribly on the language.

ESR revised "How To Become A Hacker" 07 Mar 2006: "Remove C# from the list of languages to be avoided now that Mono is out of beta." --BenTremblay

I expected something like: only the other way around:

Language can't be so restricted that 'revolution' or 'freedom' are impossible to express. I think Orwell underrated human inventiveness. As for programming languages, yes they impose social structure: similar-minded people tend to be attracted and use the same language. This probably avoids some HolyWars?.

I dunno... "revolution" and "freedom" give me syntax errors unless I bind them to something...

See also SapirWhorfHypothesis, ProgrammingLanguagesShapeThoughts

View edit of March 26, 2009 or FindPage with title or text search