Saturday, March 11, 2006
Programming Languages and Snob Appeal
David Megginson argues that development and adoption of new programming languages is a self-perpetuating cycle driven by the desire of elite developers to distinguish themselves by not using what everybody else is using.
There is some truth to that, but it's not just snobbery that causes good programmers to migrate to new languages. When a bunch of smart people form a new community around a programming language, it's great fun. The appearance of a new programming environment presents a blank slate where the users can start over from scratch, and this appeals to creative minds. People create a lot of cool new stuff, people argue about the merits of the languages features and suggest improvements, and people work together very hard to figure out how the new language can express new ideas.
If the programming language becomes popular, then the "community" starts to deteriorate. Rather than being dominated by smart people saying smart things, the mailing lists and forums are dominated by dumb people asking dumb questions. They ask about syntax, rather than taking time to read the language reference manual. They complain about bugs, rather than submitting fixes. They complain because they can't get the interpreter to compile on OpenVMS. They ask why the new language can't be more like the old languages they already know. They write bad code, wonder why it doesn't work, and blame the language designers for their problems. When the smart people try to continue to make contributions to standard libraries or to improve the language, the new people complain because they don't like it when things change. For the smart people, it's not fun anymore.
This is what drives smart people away from the riff-raff. It's not a desire to distinguish oneself from everyone else; it's a desire to create and to commune with smart people. Maybe that is snobbery, but it is not based simply on trying to create an appearance of superiority. It's a desire to have a little fun.