Chronos is one of the many Smalltalk-related blogs syndicated on Planet Smalltalk
χρόνος

Discussion of the Essence# programming language, and related issues and technologies.

Blog Timezone: America/Los_Angeles [Winter: -0800 hhmm | Summer: -0700 hhmm] 
Your local time:  

2007-09-28

Syntax Imprinting

I have come to the conclusion that programmers undergo an imprinting process when they learn and then heavily use a particular style of programming language syntax—especially in the case of programming languages they learn early in their career. Once they've been imprinted with a particular syntactical style, they tend to resist learning or using any language whose notational conventions don't closely conform to that style.

This resistance to "foreign" syntactic styles in programming languages goes much deeper than a native speaker's preference for his own spoken language versus some foreign language.

Many people are quite happy to learn multiple human languages. But people do tend to be more willing to learn a foreign language that uses essentially the same writing system as their native language uses. But if one must learn a set of ideograms instead of using an alphabet, or learn an alphabet instead of a set of ideograms (Chinese, Japanese,) or learn a very different alphabet (Roman, Hebrew, Arabic, Cyrillic. etc,) then there is usually far less willingness to make any attempt to learn such a language.

The aversion to learning a really foreign writing system is usually quite strong. People tend to be much less accepting of the differences between the writing systems of English, Hebrew and Chinese than they are of the differences between English, French and German as spoken/written languages. People just don't want to learn what they see as a strange, mysterious, inscrutable and weird system of writing.

The reaction of programmers to "foreign" syntactic conventions in "exotic" programming languages is a lot like the typical reaction to a really different writing system. This intolerance of the radically foreign is not just unfortunate, it's tragic. A lot of programmers are, in effect, crippling their programming abilities by doing the equivalent of refusing to switch from the use of Roman Numerals to Arabic Numerals simply because they've imprinted themselves to Roman Numerals.

Long division is much easier using Arabic Numerals than it is using Roman Numerals. Not all syntax is created equal, even when the semantics is the same. The first step to overcoming a phobia is to acknowledge you are suffering from it. The second step is to decide you want to be cured.

Real programmers should not be afraid of new syntactic conventions. New syntax is often invented for good reason--and in any case, the only way to know is to try it. No pain, no gain.

No comments: