the Chinese natual language

Years ago, I once felt that there are some commonness between Chinese and Lisp. They both lack syntax, but expressing the same idea will need less words/time/space than other languages. What's more, they are both old languages but still used today.

Today, I just read an article (in Chinese) saying that "Thinking in Chinese is faster than that in English". The main argument is that Chinese has more voices than English. Chinese has 21 consonants, 35 vowels and 4 scales/tunes (音调, 四声 in Chinese but no counterpoint in English), so there can be totally 2900 voices, although only 1200 in use. English only has 20 consonants and 20 vowels, so there are only 400 voices at most (not to mention some unused voices). The time needed to think/pronounce one voice is relatively constant, which means that thinking in Chinese other than in English is somewhat like using a 64bit CPU other than a 32bit one. The author also mentions the example of 'pork,mutton,beef, and donkey meat' and the corresponding words in Chinese.

Since I have read several posters here about natual language, I post it here for more discussion.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Not knowing Chinese...

...I don't really have a way to judge. But isn't the Chinese language really an amalgamation of different languages and dialects?

I guess the larger question though is whether the richness of sound, voices, tenses, etc. has a direct bearing on the ability to communicate effectively.

Also entering into the equation would be the question of written versus spoken language. The Chinese writing is definitely larger, bordering on symbolic, but I think that it probably makes typing or digitizing more difficult.


I havn't heard comparison between written/typing speed. But I can tell that with {one Chinese two bytes / one English char one byte}, the same thing in Chinese will need much less space in a computer than that in English.

I heard there is person that can type 160 Chinese char per minute by ordinary keyboard. And I have used Speech Recognition software to input Chinese as early as 1996.

Could well be an Urban Legend....

...But I've read here and there that the Japanese have put more effort into speech recognition, owing to the difficulty of entering their text on a keyboard.

...and it almost certainly is

Whether or not there has been much effort on Japanese speech recognition, it likely has nothing to do with any difficulty in entering Japanese text on a keyboard. I have used the facilities on both Windows and MacOS to enter Japanese text on a standard American keyboard with no problems. Typically one types the romanized version of Japanese words (phonetically) and these are automatically transformed (either on the fly or at the end of a sentence) into words written with hiragana, katakana and kanji as appropriate (with the assistance of an extensive dictionary).

I am a native American English speaker, so my experience may not represent that of a typical Japanese. All the same, I cannot imagine that native speakers have a *harder* time with text entry than I do.

Mathematics faster in Chinese

A read a book about the way the brain processes mathematics (can't remember the title unfortunately) and there were similar results for mental arithmetic. It was partly due to Chinese taking less time to pronounce and partly due to Chinese students being taught some simple optimisations (like always multiply bigger by smaller, so they only have to memorise half the times table).

Statistically, Chinese and Ja

Statistically, Chinese and Japanese students are good at math, especially yonger ones. I do not know about the speed argument, but this may have something to do with their native writing systems. The Chinese writing system (also borrowed by Japan) is symbolic rather than phonetic. That is, one character=one concept, having no or little connection with pronounciation. And the language of math or programming languages are similar. You write just "5" and not "f-i-v-e", or
"+" and not "p-l-u-s".

Tonal Languages

If I remember correctly, tonal languages (like Chinese) need to make greater use of both halves of the brain.

So that would suggest that as more brainpower is being expended, it is not unreasonable to assume that total throughput is increased in a given time.

However, there is a corollary to this. If more brainpower is being used to process language, there is less available for other processing.

Bandwidth isn't everything.

Bad Assumptions

I think you're making some assumptions about how the brain works. Specifically, that it works like an electronic computer. Some research suggests that the brain only gets faster the more its used--as if a super-exponential algorithm just materializes more transisters on the processor to speed things up.

In any case, there are too many unknowns about the human brain to know for sure.

you definitely got a point... least about the similarity between Chinese and Lisp.

I think it's not so much about the voices or the number of available syllables, but rather about the almost complete absence of grammar. Once you've grasped a few basic rules, there's little you can do wrong (note that I'm talking about _grammar_ here; there is a _lot_ you can do wrong about the tones ;-)

Both Chinese and Lisp are a little intimidating at first, because you are not quite sure where to start. A lot of things you are familiar with from other languages (tenses, cases -- loops, declarations) are missing, while there are other concepts you've never encountered before, and which you are not quite sure how to use (classifiers, complements -- closures, continuations), or which just seem plain annoying (tones maybe -- parentheses for sure).

But once you've learned a few idioms, and heard/seen a couple of those clever tricks you can do with them, using any other language will start feeling just awkward.*

I sometimes wonder just how much the development of computers in general and programming languages in particular was influenced by its almost completely western setting. What would Computer Science look like, if it had originated in Asia, with Chinese as its dominating language?

It really is a pity that CompSci in China (including Taiwan) today is so slavishly geared towards the US...
(Take it from a CS student in Taipei.)

*: These remarks refer to contemporary Chinese (白話). Classical Chinese (文言文) doesn't remind me so much of Lisp as rather of APL: A handful of characters you've never seen before, and that even together with a two-page commentary don't remotely begin to make sense ;-)

Could Widespread Computers Have Started There?

I've had this hypothisis for a while: Computers for widespread, everyday use would need to be developed by a culture with a simple alphabet.

The reasoning is that the process of encoding and handling the language for complex alphabets (like Chineese) is so difficult that it's almost easier to get everyone to learn a new language. Unicode, for all its complexity, still doesn't cover 100% of all human written langauge. However, the alphabets for most western European languages fit well inside an 8-bit word, and has fairly simple transformations (toUpper(), toLower(), etc.).

Computers still could have been developed as a tool for, say, calculating pi. But I don't think computers for common people would have been developed.

Alternative Histories are Dangerous Bunk

Xiemaisi wrote:
I sometimes wonder just how much the development of computers in general and programming languages in particular was influenced by its almost completely western setting. What would Computer Science look like, if it had originated in Asia, with Chinese as its dominating language?

But that didn't happen and your question is meaningless. Although you could compose an infinite number of possible alternative histories, it is a waste of time. Of what use is this except to create a false mythology of "what might have been"? Your time would be better spent studying computer science.

It really is a pity that CompSci in China (including Taiwan) today is so slavishly geared towards the US... (Take it from a CS student in Taipei.)

Now we get to the real meat of your thoughts: that the oppressive US has forced it's thought patterns on Chinese for decades, in computer science if not in all fields. Rather than focussing on the innumerable advances that Western technology has brought to China, you have chosen to depict things Western as oppressive and you now romanticize about a lost possible alternative history wherein illustrious Chinese computer scientists sitting by now at StarGate-like computer terminals, perhaps computing (with variable word length computers) the genesis of wormholes and the perils of time travel. Undoubtedly, science would have advanced further were it done by the Chinese, you speculate.

It's sad, but I expect to hear a lot more of this garbage in the next 20 years as China staggers to it's feet, mostly thanks to adoption of largely Western methods. Note that the hole China dug for itself, that it is now climbing out of, was dug by the Chinese, not by the US or the Western world.

The formation of a romantic vision of a society (complete with sham history and religion) has happened in multiple societies within our own lifetime:

  • Germany's fascism prior to World War II was a romantic view that actually rejected Western methods and embraced a romantic vision of a master race,
  • As Japan rose to modernity a similar anti-Western cultural backlash occurred that resulted in Japan entering World War II,
  • The acceptance of "Western" methods and science (particularly in the oilfield) in the Middle East has led to a backlash by Muslim romantics that now embroils that region.

The book Occidentalism by Avishai Margalit & Ian Buruma traces the path of the romantic vision you embrace. Read it to find out where such romanticism eventually leads. Sad to say, the roots of this destructive romanticism are often traceable to (surprise!) the universities, wherein romantic young students fall in love with empty ideas that they then nurse and spread.

Anyone should consider themselves lucky to be introduced to leading-edge ideas regardless of the culture of origin. Believe you me, whether it be an Australian aboriginal or Inuit indian or US chemist who shows me how to open a door to the other side of the universe, I'm going to listen to him intently and do my best to understand, regardless of any culture differences.

Alternative histories are bunk.

interesting post...

...but you have very much misunderstood me. All I did was wondering whether Computer Science, had it originated in China, would be different. I did not conjecture _how_ it might be different, and I did not say that I believe such a Chinese CS would be any better than what we have now. Least of all did I revile the West as oppressive.

What I wrote may be a pointless reverie, but I hardly think it makes me a supporter of possibly dangerous romantic ideas or anything.

It is sad that you should misunderstand me that badly, and I apologize for posting something apparently very misleading.

Right now, I'm going to take your advice and get back to studying. Who knows, maybe some day I'll be able to make some _meaningful_ contribution to LtU... (oops, daydreaming again ;-)

Appropriate seasonal greetings, everyone!

Please do

Who knows, maybe some day I'll be able to make some _meaningful_ contribution to LtU... (oops, daydreaming again ;-)

Hands up everybody who thinks they're the least intelligent / well-informed person posting on LtU...

There are good and not-so-good reasons why people tend to find this forum a little intimidating. (I'm afraid I'd class the grandparent post among the not-so-good reasons). The good reasons - that the quality of discussion here is often very high, that people really seem to know what they're talking about - are also good reasons to try to overcome one's intellectual trepidation and participate.

This site is a great resource for people who want to learn.

Hand waving.

Hands up everybody who thinks they're the least intelligent / well-informed person posting on LtU...

I thought Ehud had a policy of making Editors of those of us that fall in this category. :-)

Re: misunderstood

Your original note was seriously just fine, and not at all misleading. Oy veh.

LtU should stick to PLs...

As a local curmudgeon with a background in linguistics (the study of language as a system), as well as in Mandarin (over 2 yrs at university level), I feel compelled to rain on this parade.

I can state without hesitation that Chinese DOES have grammar; it just happens to be short on morphologically expressed (i.e. changes to word forms) grammar.

If Chinese had no grammar, you would be able to arrange the words in any order without change of meaning, and words such as de or le (which express only grammatical information) would not exist.

As for the Sapir-Whorfish speculation about a Chinese dominated CS, I say bah-humbug. ;-)

maybe, yes ;-)

Of course Chinese does have grammar, but it is decidedly less palpable than with any other language I have encountered sofar (at least as far as I, without any linguistic background whatsoever, can see) -- the same way that Lisp has syntax, but less than most other programming languages.

And of course speculations about a Chinese dominated CS (whether Sapir-Whorfish or otherwise) are just that - speculations.

[BTW, good luck in trying to use 了 as a grammatical particle. It works as long as you stick to your textbook examples, but it it is a different matter in actual conversational Chinese -- but that is widely off-topic, of course.]


Really wished we had more words (like the Eskimos) for that stuff that's falling from the sky.

Hoping to have a White Christmas. :-)

About those Eskimos ...

I can't resist a chance to point out that the "received wisdom" about Eskimo words for different kids of snow is not actually true, according to linguists who should know. This is an academic/journalistic urban legend which has grown over the years to ridiculous proportions: debunking it has become the hobby horse of Geoff Pullum, a well-respected linguist who (I believe) founded the LanguageLog blog. See this this article about "Bleached Conditionals" at LanguageLog for a sample of his writings on the topic, or his very funny book of essays "The Great Eskimo Vocabulary Hoax".

By the way, I highly recommend LanguageLog for daily doses of linguistics, cultural commentary and humor. Not quite the laser-focus of LtU, and no monads, but still worth a look :) .

PS: my apologies to Chris if his smiley was meant to indicate he was aware of this issue.

[OT] Cardinality of cultural denotations for snow

Scott Johnson is right, this thread is drifting, like that cold white stuff the Eskimos have so many names for. ;)

I can't resist a chance to point out that the "received wisdom" about Eskimo words for different kids of snow is not actually true

It's more complicated than that: you first have to show what the received wisdom is. That Eskimos have many words for snow? A specific number? Most commonly 50, perhaps - but 50 is such a suspiciously round number that it's obviously intended as an approximation. Or, is it that other peoples don't have so many words for it? Your average Colorado ski bum has quite a few words for snow, too.

You could make up a similar statement about something such as, say, how many words the stereotypically car-obssessed USA has for "road": there are the classic English-language names like street, lane, way, etc., along with some borrowed ones like boulevard and avenue, but then there are the variations on "highway", which range from old-fashioned to futuristic: turnpike, parkway, freeway, beltway, thruway, expressway, superhighway, plus some more specific ones, like skyway and interbelt.

In the end, does it really matter if the phrase is about how many words Eskimos have for snow, or how many words Americans have for road, or how many words Germans have for bureaucracy? The phrase communicates the idea that people who have a great deal of exposure to something tend to develop a larger vocabulary to describe it. From my layman's perspective, that seems pretty obvious, and borne out by the evidence. The original version of the phrase is presumably a bit more romantic, unless you're actually an Eskimo, in which case it's probably just mystifying.

Pullum seems to rather miss the point, as specialists commonly do when interpreting a statement made in natural language, treating it as though it were a conjecture made in the jargon of their discipline. Such statements have a rich cultural and metaphorical context, which doesn't survive the translation into a more formal context.

Ultimately, the confusion comes down to the denotation of the word "Eskimo". The Eskimos of our collective cultural dreams have exactly 50 words for snow.

[WayOT] snowclones

I have heard/read that one of the problems with the claim is the agglutinative nature of Inuit languages. E.g., here. But ...

In the end, does it really matter if the phrase is about how many words Eskimos have for snow, or how many words Americans have for road, or how many words Germans have for bureaucracy?

Indeed, Pullum has been popularizing the term "snowclone" for a generalization of this idea. "If Eskimos have N words for snow, X surely have Y words for Z." -- the generalization being the idea of a common phrase framework, into which different values get plugged in. "On the Internet, no one knows you're a Z."

Barely related: I have a book of Hawaiian folk tales, which has a glossary listing about 75 different names they used for the different winds and rains.

Bonus: Chris Small and Keith Bostic's list includes "fritla -- fried snow". :-)

To try to thread this back into a PL-related topic: are agglutinative natural languages analogous to concatenative programming languages?


the term "Eskimo" is considered offensive by Inuit people. Much like other common terms for North American aboriginals, such as "squaw", etc.

I know this is completely off

I know this is completely off topic but as an expat Alaskan it always rubs me the wrong way when people say things like that.

Eskimo is not a racial slur, it refers to Yup'ic and Inuit tribes. There are also Aleuts, Tlingits, and Athabaskans.

Depending on where you're from (Alaska or Canada) the PC term is either Native Alaskan or Inuit.

[..], or how many words

[..], or how many words Germans have for bureaucracy?

Exactly one, it's Bürokratie.

I don't believe that people like to make up words for stuff they don't like.

I always thought Chinese was a bit like Forth...

...because of the way it frequently uses the reverse order to what I'm used to in English. It's 15 years since I last learnt any Mandarin but I seem to remember the word corresponding to English 'of', ('de' in Pinyin romanization I think), for example, working backwards so 'the X of Y' would translate as 'Y de X'. Though I suppose if it were truly Forth-like it would be 'X Y de'. Maybe it's German that's like Forth. But in Chinese there is a tendency for specifications for something to home in on an object as you move through the sentence whereas in English sentences start at the specific and work outwards (eg. we say 'The University of Cambridge in England', starting at the specific 'University' and working out to the country). The Chinese way seems more logical to me.

Talking of comparisons with computer languages I always thought of Latin and Russian as a little like Ada. In English word order is important, like the arguments to a function. But Ada allows you to vary that order by tagging arguments with an argument name just as Russian and and Latin allow flexible word order because nouns are tagged with case. Russian even has distinct verbs that effectively have the exactly the same meaning but take arguments that are tagged differently (like 'sow the field with corn', 'sow corn in the field' except in Russian these are two distinct words for 'sow').

Please correct me if I'm wrong if you're a native speaker of Russian or Chinese.

Sometimes english is special

Russian even has distinct verbs that effectively have the exactly the same meaning but take arguments that are tagged differently

Dutch has this too, so maybe English is special here.

Interestingly in Dutch those words have an extra "be" prefix:

  • zaaien: to sow (corn) - bezaaien: to sow (the field)
  • klimmen: to climb (no object) - beklimmen: to climb (a mountain)
  • een tegel: a tile - betegelen: to tile
  • veilig: secure - beveiligen: to secure

Sounds like the passive voice

Any English verb can be transformed into a passive verb which reverses the subject and object.

  • I saw him.
  • He was seen by me.

But isn't

The 'be' prefix in Dutch has nothing to do with the passive voice, however.

For verbs to which this construction apply the 'be'-less form indicates an activity that stands on its own, while the 'be'-full form indicates that the emphasis of the activity lies a little more on the object. But note that this does not mean that the 'be'-full form always requires an object; however, it is always allowed to attach an object to a construction with 'be'.


  • hij klimt - he climbs (emphasis is on the activity, climbing, itself)
  • hij beklimt - he climbs [something] (emphasis is a little more on the (absent) object)
  • hij beklimt een berg - he climbs a mountain (emphasis is a little more on the object, a mountain)

English retains this a bit in some words

like: bejewel, to be decked in many jewels; bedeck - to decorate, sometimes in a showy way. These are probably hold-overs from middle English, which I think is the nearest cousin to Dutch.


According to The Grimm Dictionary, the prefixes "be" and "zu" (dutch "toe") are the distinguishing difference between old Norse and old German.

computer languages not related to native ones

I actually think computer languages don't actually have much to do with native languages at all.

I am a native english speaker (and don't speak anything else) but I'm pretty sure that trying to express algorithms or abstractions that are typically expressed in computer languages very quickly becomes overly complicated in any native language.

Also the way this discussion is going where computer langugages are directly compared to native languages in such a linear sense implies that a lack of reflection in computer languages is a natural outcome, whereas in a fully reflective system anything would be morphable and new langauges would be invented all the time if it allowed for better abstractions.

Not so much whether they are alike

as whether or not issues that arise in natural languages have parallels in programming languages. For example, most of our resident linquists dismiss the Sapir-Whorf hypothesis, but I believe that it is applicable to PL. A PL that makes OO programming easy, will lead programmers to program and think in an OO style (same for imperative or functional or declarative).

In the current case, the question would be whether have a flexible and possibly terse syntax and/or semantics will lead to more concise and easily understood programs (or will it lead to an obtuse and obfuscated style).

The Economy of Chinese Representation mirrors APL

The proposition that "Thinking in Chinese is faster than that in English" is rather like claiming that "Thinking in APL is faster than that in language X because the large number of primitive operators in APL and their application to large values permits code to be expressed in fewer symbols which require less time to transmit."

The flaw in this reasoning is that it fails to take into account how long one has to spend encoding and decoding the content of those symbols.

LISP won a larger following than APL because it placed a lower demand on its users to memorize the behavior of a large lexicon of primitives whose symbolic representation further obscured their meaning. Thus while the expert can save a significant amount of time, it may take the casual APL coder a very long time to compose that perfect one line alternative to a page and a half of C, and because of absense of redundancy in the encoding, the slightest error is likely to map to a syntactically valid but logically incorrect translation of the desired intent. A situation not unlike that faced by a tone-deaf non-native speaker of Mandarin.

Indeed, this tonal dimension might also be analogized to analog v. digital data transmission. 1200 voices permit more compact encoding, but at the risk of great data loss over a noisy channel which is why digital communications dominate.

The key point to think about as this applies to programming languages is the question of how regular the language can be and how many primatives one needs to master to use it. A highly regular language that trades grammar for an enormous lexicon is not going to be a big win for the language learner unless the lexicon can be taken up in small chunks as the need arises.

Languages with minimal grammars but complex morphologies (i.e. a large number of declension and conjugation patterns) are probably harder to pick up than languages with more complex grammars and fewer morphological forms since they place a much greater demand on memory.

Thus one might hypothesize that it would be easier to become minimally proficient in say Japanese than Hindi because in the former a highly regular system of particles has been developed rather than the elaborate morphologies of the latter.

In any case, this is not to say that any language group is inherently superior, merely that they opted for different design trade-offs, just like in the world of programming languages!

Peter J. Wasilko, Esq.
Executive Director & Chief Technology Officer
The Institute for End User Computing, Inc.

These comments are not official IEUC positions unless otherwise noted.

But Chinese do NOT have a large number of primitives

Typically, a moderate Chinese dictionary only has about 6000 characters. As I know, a moderate English dictionary has 50000 - 250000 words. (Character is not primitive of English because it has no meaning)

For a more detailed example, in Chinese, there is only one character "chook" and Chinese use "male chook", "female chook", "little chook" (and "chook meat") (two-character word whose meaning is obvious)instead of "cock", "hen" and "chicken" (to understand English, you have to memorize such literally UNRELATED words).

Can you suggest a good book on Chinese?

I was thinking more of the tonal issues and ideographic written representation with respect to the number of primitives.

Can you suggest a good book that would explain how Chinese grammar works? Something in English with a linguistics bent rather than the usual traveler phrasebook would be ideal.

Thanks for the insight though!

Peter J. Wasilko, Esq.
Executive Director & Chief Technology Officer
The Institute for End User Computing, Inc.

These comments are not official IEUC positions unless otherwise noted.

Sorry that I am a native-speaker of Chinese

so I never read any book that explain Chinese in English. But I can tell you is that Chinese has nearly no grammar, only characters. Maybe others can suggest you a good book.

Last night, I also thought about your ideas. And finally, I conclude that languages differs, both natural and programming. Because different languages opted for different design trade-offs, some becames superior while some not.

Li and Thompson

My favorite Chinese reference grammar is Li and Thompson "Mandarin Chinese: A Functional Reference Grammar".

It has 673 pages of text; an awful lot if the "Chinese has no grammar" argument held.

I would humbly suggest to our native Chinese colleagues that the reason it seems to them that there is not much grammar in Chinese is that they "just know it"; that's what it means to be a native speaker.

Some of the compounds that are "obvious" to them have to be learned by a foreigner; there are often many "characters" that mean the same thing, and you can't just put them together willy-nilly. Only certain combinations are meaninful Chinese words.

One's own language always seems more "logical" than the alternatives because we don't have to think about the grammar to use it. (It also doesn't hurt to have millenia-old sense of cultural superiority to bolster your position.)

A good book on Chinese

If you don't wish to learn to speak it, "Speaking of Chinese" by Raymond Chang and Margaret Scrogin Chang, does a very nice job of describing the language, its constructs, and some of the culture behind it.

A Grammar of Spoken Chinese,

A Grammar of Spoken Chinese, by Y. R. Chao, is one of the earlier works on this topic.


i think your comparison is unfair, because characters in English indeed have meaning - they're a pronunciation guide. Going from spelling to pronunciation in English isn't necessarily trivial (it probably happens more at a syllabic level than character level), but it can be done without memorising a (relatively) great number of rules. I doubt that the same is true for Chinese. Besides which, Chinese has multi-character words too, so comparing the number of Chinese characters to the number of English words is meaningless.


I speak Cantonese and English and I'm not really seeing the analogy to 32-bit and 64-bit processors. What exactly is the idea here—that Chinese can express more in terms of less syllables, thus letting the speaker "think" faster? The thing is, do people explicitly voice their thoughts in their heads while they're thinking?

I'm no linguist, but you'd think it's economy of expression that makes the bigger difference....? Things like commanding a big vocabulary and having a good grasp of metaphors. And that's something that's much more dependent on the individual speaker than the language they're speaking....

Another thing to note is that yeah sure Chinese is old and still being used, but isn't this true of all natural languages except the constructed ones like Lojban and Esperanto? Maybe a special argument can be made for classical literary Chinese, but sadly I don't think you can really count that as current anymore.

English, The Most Natural Language

In fact, the English language (just like Lisp) lacks all but the most rudimentary grammar, and I have always found that expressing an idea in English requires less words/time/space than other languages. Indeed, thinking in English (as opposed to French or German, for example) is somewhat like using dual 64-bit CPUs rather than a single 8-bit one. I read something along these lines in an article (in English), which bore the title "How the Battle of Britain was Won: Thinking in English is Faster than in German".

Also, since the time needed to think one symbol is relatively constant, I now do all my mental arithmetic in base 64 instead of base 10, and not only do I finish mathematical calculations in a fraction of the time my colleagues require, but I rarely take up more than half a side of paper, and the answer is often merely one or two digits long.

In English you simply put words together in a way that seems natural, and that's it! No need for any of the baroque complications that other languages indulge in. Both English and lisp may be a little intimidating at first, but once you've learned a few trivial rules, using any other language will just feel awkward --especially given all the dictionaries and grammar books you need to carry around.

(I am referring to contemporary English, of course: Old English was far closer to German and Dutch, so it was less like Lisp and more like C++).

In fact, when I think in English I rarely need to use a computer at all (it's that fast!), unlike my other-language-speaking friends. I sometimes wonder how Computer Science would look like, if it had originated in Britain, with English as its dominant language ... Oh wait ;-)

+1 on thatenglish is light

+1 on that

english is light on rules, and a bit positional, you can say "greatest small black brittish chair" , in french you'd have to add conjunctions or follow other rules.

but if english is like lisp, should the analogy with chinese be about abstract combinators ? ^^

How about multilingualism?

I know Chinese as mother tongue, and I began learning English early on; I also worked hard to achieve what many English teachers suggest: you should be so good that you can think in English.

But over time I have found that I can also think in neither language. It is as though, by being forced to accomdate two different languages coherently, my brain develops an intermediate representation, an abstract language of semantics for its own, something that is more general than both Chinese and English and can be concretized to either on demand but otherwise processed directly. I have also heard that those who know only one language tend to think in that language explicitly.

So I am not sure whether a Chinese speaker thinks faster than an English speaker, but I am more certain that a multilingual speaker probably thinks fastest.


Does being multilinugal make one a better programmer? More to the point: do multilingual people learn programming languages (say to intermediate level) faster than non-multilinguals?

Did anyone come across research about these issues?

Multilingualism and learning PL


I grew up in Malaysia, and Malaysians get to learn quite a few languages due to the racial mix. Offering myself as a data point, I don't think it is significant.

I find that knowledge of maths is more helpful, since programming is all about concepts like iteration, arrays, symbolic representation and notation.


I've got plenty of anecdotal evidence. We really need someone to investigate this "scientifically" (i.e., do statistics).


Doesn't Drupal provide surveys or some other means for gathering feedback in a structured form?

Like, how many languages you knew before starting programming, did it help (compared to other people?), how many you learned after, did it help (compared to the previous experience?), etc.

Topic-Comment Structure

I think that it is mistaken to say that Lisp (or Chinese) lack syntax.

Chinese (and to a lesser extent Korean and Japanese) follow a topic-comment grammatical form, which can be seen as isomorphic to an s-expression.

The key is to stop reading it as (verb subject object ...), and instead read it as (topic comment comment ...).

(+ 1 2 3) becomes "with addition, use 1, 2 and 3".

(defun foo (x) ...) becomes "with definition of a function, use 'foo' '(x)' and ...".

Of course, on top of this basic topic-comment syntactic form you have more elaborate grammatical structures, which are altered, constrained or permitted by the current topic.

I don't speak Chinese though, so you should take the above with a grain of salt. (I do speak Korean, though).

Non-Verbal is Fastest

While it may be true that thinking in Chinese is faster than thinking in English, the difference is very small compared to the rates of visual vs. verbal thinking. Studies have shown that visual thinking is between 400 and 1000 times faster than verbal thinking! This may be why so many great thinkers (especially inventors) are dyslexic; they don’t have words slowing them down. Sir Issac Newton, Leonardo da Vinci, Thomas Edison, Albert Einstein, Henry Ford, and even Walt Disney were all dyslexic (reportedly). I wonder what implications this has for programming language design. (Spreadsheets are certainly much more productive than FORTRAN for many applications.)

interesting point, graphic languages?

This is something I've been curious about recently. What there was a language that had NO text representation (not text-named variables, if/else statements, function names...)? What would it look like? Now I've seen a few examples of 'graphic' or 'visual' languages but they just seem to move source code on to a fancy window which allows you to connect text-statements using visual arrows (can't remember where I saw it).

When I try to figure out what such a 'language' might look like, I invariably think in terms of trees, graphs, little icons, etc. I think we can be more imaginative. I suspect a visual language will require better ways of thinking about programming constructs (such as bananas, lenses, etc. paper). Another source of inspiration is Wolfram's New Kind of Science. In that book he seems to define 'algorithms' using a visual representation system (sorry, it has been a while since I scanned the book). Another idea is from 3D animation packages and how they allow 'key-framing.' In ther words, could we define insertion/deletion/update procedures on a B-Tree by 'drawing' the tree how it should be just after the application of a procedure, and let the computer figure out how to get there (obviuosly there has to be a limit to how much a computer can figure out). Any way, some quick thoughts regarding an interesting subject.

By the way, if there already ARE such system, I would love to have them pointed out. Thanks.

Wouter van Oortmerssen's languages.

Wouter's languages are definitely visual. Aardappel is especially interesting, it's based on concurrent tree rewriting.

The Juks


I personally think many of the so-called "graphical" languages are working at the wrong level of abstraction. At the lowest level, text really is the most economical form of communication. It's dense in a good way. Where graphical languages would be useful is at a slightly higher level. In fact, this is an area where I think that PL design can learn from DB design. Nobody writes a relationship diagram with pictures for tuple attributes. That would be just silly. At the lowest level of detail, it's all text. Where the graphics come in is to display the relationship between the different relations. And placing them spatially is more powerful than having to visualize them textually.

We can see hints of recognition in things like folding text editors. Folding allows us to hide the details that aren't relevant to the task at hand. Where graphics would be useful in a PL is at the level of types and functions. If we could see a view of potential call graphs, or visual subclassing/subtyping relations, that would actually be useful. That's why we have UML diagrams. But if a UML diagram were integrated into the language, where you could double-click on a type or a function to open its textual definition, and you could redefine subtyping relations by dragging arrows around a grid, then you would have something that's more than just a modelling tool. Perhaps you could have a button that shows you all the places that a given variable is referenced. Then you click on a variable, and lines are drawn to all the functions that refer to it.

We usually think in text when we think of details, and we prefer to think visually when looking at "the big picture". Note that our language itself gives us a hint of it, since we don't call it "the big paragraph". And when we talk about details, we talk about crossing our t's and dotting our i's, not closing our circles and straightening our lines. A language that recognized this fact and put it to good use, allowing us to visualize the code at higher levels would certainly capture my attention.

Too much speculation in this thread

This thread seems to be:

1) Only marginally on-topic to PLT. The study of natural languages and linguistics is occasionally informative and useful to PLT (think Chomsky), but often ridiculous (think Sapir-Whorf).

2) Full of urban legends, petty nationalistic claims, assorted bits of anecdotal evidence, and some outright disinformation (such as the suggestion that English has only 20 consonant sounds--there are indeed 20 consonants in the English alphabet, excluding Y, but blends and such increase the number of consonant sounds available to English speakers to a much higher number). While there may be some real science related to the topic somewhere, nobody has posted any references to it.

3) Has generated more than a few rude responses.

In the PLT world, maximizing the number of lexemes is not usually considered a good thing. Whether or not having more or fewer phonemes in a natural language is better or worse (or doesn't matter at all), I have no idea. One must be careful drawing analogies between progamming and natural languages.

LtU should stick to programming languages

For some reason many CS people and programmers like to speculate about lingustics, but, alas, all too often in a totally uninformed way. There could hardly be a more preposterous assertion than any natural language has no grammar.

Being a native speaker of some language doesn't mean one has the slightest clue of how this particular language (much less language in general) works.


Actually, almost no one in this thread made this claim, and many LtU regulars know quite a bit about linguistics.

Also: The book mentioned in this thread might be of interest.

almost no one in this thread made this claim

Almost no one are at least three posters:


I think it's not so much about the voices or the number of available syllables, but rather about the almost complete absence of grammar.

Zhu Chongkai:

But I can tell you is that Chinese has nearly no grammar, only characters.


In fact, the English language (just like Lisp) lacks all but the most rudimentary grammar

Sorry if my comment implied that absolutely everyone at LtU is clueless about linguistics, I'm sure that's nowhere near true. However my impression is that the amount of absurd claims made in this thread has been higher than in other threads not touching upon human language.

Well, all those people said t

Well, all those people said that Chinese have very litlle grammar, wich is far from saying that it has none.

Highly doubtful

That Chinese has significantly less grammar than other languages. Let's consider a classic problem of ambiguity:

man bites dog
dog bites man

In languages with fixed SVO order, the S and O are indicated by their position. In languages with rich case systems, the S and O are indicated by markers on the words themselves (such as Latin). Both are grammatical mechanisms. If a language has neither, then the above two sentences are equivalent, making it impossible to articulate the distinction. My wild guess is that it's possible to express both of the above sentences in Chinese, and that the semantics will be determined either by SVO order or case markers.

OT: Chinese grammar

Chinese, is an analytic language, much like English. In many ways more so; as Chinese pronouns do not distinguish between subject and object (dative/accusitive) forms; nor do Chinese verbs change form to match (agree) with the subject--no is/are/am, for example.

(Of course, as pointed out by someone else, Chinese is also primarily a topic/comment language rather than a subject/predicate language).

Occasionally, Chinese word order does get "reversed" (from the perspective of English linguistics), if the topic of the sentence is the object rather than the subject. When this is done, it is obvious from context what is meant. Chinese also has an equivalent to the passive voice, which is frequently used in such contexts.

Of course, my Chinese is quite rusty--mostly picked up from some self-study, as well as my wife. :)

However, to say that Chinese (or English) has no "grammar" is, as Anton pointed out, preposterous. (Likewise it is ridiculous to say Lisp has no syntax--it certainly does; just a rather simple one). Grammar is not a property which only the synthetic languages (like Latin and German) possess; nor is it a property which belongs only to programming languages with non-trivial parsers.

In my studies of Mandarin

In my studies of Mandarin, simple sentences like that are formaed exactly as they are in English - Subject Verb Object . In fact most of the sentence patterns I've learned seem to be rather dependedent on word order, unless you are employing a specific cultural idiom. But a large part of learning college level Chinese is learning such idoms, much like college level English students learn bigger more specific English words.

I think something else that should be pointed out is that formal written Chinese is fairly different from spoken Chinese, both in word choice and phrasing, due to the fact that Characters are dialect agnostic, and ideally written Chinese should be legible to an educated reader regardless of the dialect they speak.

now i'm curious

Is it just me, or does anyone else actually "thinks" in a certain language? Frankly, i don't. Most of the time, i just think about something visually. Right now, as to communicate with you people, i can certainly feel my verbal skills in use. But, most of the time, when just thinking to myself, or coding, for instance, there are no words flying through my brain.

I always found it rather disturbing when i see characters in a movie thinking aloud in full speach or in comics with big monologues in a balloon...

I think our brains are geared upon visual information and it's much more natural and faster than spelling out in full english, portuguese or mandarin words...

I don't think in words.

I wrote about symbol processing a few months ago on my blog.

For example, I tried to explain that "salad :: [Lettuce]" to someone making a salad.

The whole thing started on #haskell when I realized that I'd know John Goerzen for months, but it had never crossed my mind to wonder how to speak that name. When someone asked how to speak the name, I realized that I probably process IRC/email differently than that person.

In the end I discovered that only one other person on the channel doesn't 'speak' words in their head while reading emails or IRC.


symbol processing! Perhaps this is exactly the point of the poster: chinese people think faster because they think in terms of their imensely large collection of alphabetic symbols? Do they pronounce them when they think or just visually identify them? If the latter, than yes, it should be very fast. On the other hand, i guess it's kind of a feat to quickly recognize the meaning of each one, given context and all...

Audio Programming

I do think that languages tuned for a particular medium would be advantageous.

Spoken programming languages would be handy for programmers who are blind or have RSI. They'll also be handy when the entire computer fits into a single earbud.

Minority Report

My guess is that these modes of thinking are not exclusive -- they're combined in different ways in different people. For instance, the language hinted at in the film Minority Report combined kinesthetic input (Tom Cruise moving windows around with broad gestures) with visual feedback.

Musical language?

Hmm...what if an IDE associated sounds with pieces of code? Like, what if a debugger played a tone of a certain frequency whenever a certain function was called? Then you could literally tell whether a program was "humming along" or just "making noise". You probably wouldn't be able to distinguish normal musical tunes, but if you could associate certain functions with certain notes, perhaps you could tell when the function in question is getting called and you don't think it should be.

A musical editor could "play" functions in the source code using similar rules. The benefit would be that coding patterns would correspond to musical patterns, and by "listening" to a function, one might be able to tell whether certain canonical forms were used. Of course, then obfuscated code contests would be as much about producing certain songs as it would be producing nice visual layouts.

One could assign different patches to different types of code. Comparisons could be violins, arithmetic expressions could be piano, assignment could be percussion, etc. The code would sound like a cacophony, but I suspect it would add a powerful dimension of analysis. Normally we only run code at full speed or stepwise. We usually don't run it in slow-motion because that isn't useful. But if we could recognize the normal-sounding behavior of code, it might be useful to run it at a lower tempo, so we can literally listen for the bug.

musical realization of data / procedures

An interesting consequence of musicalizing programs with function calls being notes or phrases would be that loops with an odd number of steps would sound a bit "off", and the most pleasing data tonally speaking would be that data that was a better candidate for size compression. About the mapping, I am wondering would datastructure->pitch with a fixed instrument bank work better, or treating the data as a sequence of samples (given the latter, you could listen to a program at a faster execution speed, it would just be a bit noisy). As a composer of computer generated music I am having a huge "why didn't I think of this already" moment (well I kind of did think of it, but not quite... one current project is a program in assembler that will send it's own executable code to the sound card, while also rewriting certain parts of it's own code (the idea is from a program I heard about from back in the day, a guy could not afford a sound card or a computer fast enough to do audio, so he wrote a little piece of self modifying code that sent data to the printer port, the printer then being plugged into a mixer), but I had not thought of using audio output as a debugging tool). It may be fruitful to build gdb with the csound api built in, and maybe use some scheme or perl to turn stack frames and memory acesses into note lists and/or csound instruments. that sounds like it could be done as a weekend hack if you already had some familiarity with c/[scheme|perl]/csound.

listening to the Mac OS X thread scheduler

I needed to test an audio file API to make sure the locking worked correctly, so I had 16 threads each trying to write different pitch waveform to the same audio file. It is an interesting test, because different versions of the OS sound different.

Thought vs Language

Oy! this thread is too much fun.

I think Sapir-Worf is complete bunk and I thought that was the current thinking in Cognitive Science (not being a cognitive scientist). Language has to do with expression of thoughts not conceptualizing ideas.

I think personality type (as in myers-brigs) or perhaps a psychological astrology outlook (from which myers-brigs silently draws on) would be much a more interesting examination of adept programmers(referring to ehud's inquiry). I think the real work of programming happens in the design which can be independant of language. Language then of course becomes paramount because you must concretize that design or express it to programmers in your employ or share with collaborators.

Programming languages, concepts like Functional Programming or OO, patterns, representations like UML and use-cases, and application design frameworks obviously effect speed and quality of implementation. But ultimatly they are about communication not conceptualization (between developers or a compiler/interpreter). I admit that there is probably a fine line between the two and that there is continuum of abstraction and expression with words constituting quantifications along the spectrum.

I personaly think I am suited to programming due to having a plethora of planets in Libra (air-intelect, relationships-i.e. systems). This is bolstered by Jupiter (the expander, i.e. generalizations/abstractions) in a fire sign.

Why is astrology useful? Because it is a language or framework for examining the psyche. It assigns terms to abstract concepts and expresses relationships and interactions. I think it is a shame that modern psychology does not embrace astrology as a tool. Sure abandon the old programs written in the laguage, but keep writting new ones and develop the language; port it to a new platform... ;-)

If you think in a (natural) language, you are less of an abstract thinker. However you might be a better programmer who could write a better implementation than the designer who gives you a specification.

My experience with chinese is very limited. However, through studying chinese martial arts, I understand that chinese can be limited in the precision of expression. Context is all important and even native speakers can stumble in interpreation. No wonder fuzzy logic was embraced in the east. While faster, it may be a disadvantage in essentially mathematical verbal expression.

I think two things lead to computer science arising in the west as opposed to the east. Economics and mathematical development. While the taoists invented the first documented binary system over two millenia ago, I am not aware of significant mathematical contributions from the chinese. I don't mean to imply any racial or cultural disadvantage and would say that economic tragetory and education practices may be positioning China to be the center of the next mathematical golden age.

As an armchair philosopher, I am prepared to be lambasted for my generalizations and speculations, so bring it on, I'm listening.
sorry for the long post, as I said, too much fun...

Firstly, I've seen studies of

Firstly, I've seen studies of the various attributes of "good" programmers, which found no significant bias towards any Myers-Briggs type (this is a paper I read almost 3 years ago, so I forget the citation), which is as it should be, Myers-Briggs having no scientific basis.

Secondly, there is a mass of evidence that the programming language constructs in people's first language that they are taught tend to be the ones that they are most comfortable with. So, students who are taught imperative languages and iteration, then introduced to recursion (even in the same language), tend to find the latter more difficult, and tend to prefer the former. This is why people typically find it an effort to move to functional programming, not their ability to correctly form the syntactic elements used to encode such constructs. That looks to me like a conceptualisation issue.

Just because Sapir-Whorf is not the whole truth about the human capability to think, that does not mean that it does not have applicability to the way people think about and learn programming. That said, if there are new insights into the way people learn and think about problems, then the computing profession could do with all the help it can get in teaching people good practice.

Old is New

As I aluded, myers-briggs is rooted in Jung's work which was influenced by astrology and not strict science. But I only said myers-briggs-like, and the metric may not exist to examine the traits that make a good programmer (as if there were one type of programing...).

Your second statement seems obvious and irrelevant. Anything you learn first in a new domain is going to be stronger. But that does not mean that at some point in one's experience new patterns can overwrite earlier ones. The mind is great at working with incomplete information, ie it works with what it has.

At this point I am reminded of Lakoff and his "frames" which I beleive is standard cognitive science jargon. I think Design Patterns ala gang of four represent frames. The word that represents the pattern is inconsiquential and multiple names do exist for the same name. It is the context and details that form the pattern, not its name. One with a richer vocabulary and understanding of design patterns is going to be at an advantage over someone with more primitive patterns or frames. Is this the sort of applicability of Sapir-Worf that you refer to?

New is of course a subjective term. I beleive that studying music as a child, studying Tai Chi as an adult, and having a personality that associates examining complexity with emotional rewards gives me the tools to learn many new things. Practice practice practice practice. Secondly, instructive "etudes" or "forms". Learning must be accomplished in stages with mastery being acheived before advancement.
It is unfortunate that we don't have more universally known examples like "Hello World!".
What I'm trying to say is that I don't think we need any new insights, but to apply existing methodologies from other disciplines that have been proven over long periods of time. Along with identifying the order in which to best present concepts, ie how one builds upon another.

myers-briggs citation

oh, and I meant to include this link that I found.

It seems to be similar to the study you are talking about if not the very same.

Design vs. Programming?

I think the real work of programming happens in the design which can be independant of language. Language then of course becomes paramount because you must concretize that design or express it to programmers in your employ or share with collaborators.

I don't buy the design vs. implementation dichotomy, as it's more of a continuum than it is a discrete boolean function. Design can not take place in vacuum - it has to be cognizant of what is and is not feasible (i.e. it has to know something about implementation). And even the best design document ever made requires that implementors make a multitude of decisions at the micro level in the interpretation of that design document. Implementation can not be done by robots - and if it could, then the design document would really be a program, and you'd just be shifting where the programming actually gets done.

If we allow that designers are the elite, then we'd have to say that the language(s) that they use are far superior than the language(s) used by the implementer(s). Considering that most design documents are incapable of being objectively run on a computer, I'd have to question the veracity of that statement (no static type checking, no unit testing, etc).

I agree

You are absolutly correct.
But I would still postulate that given two people with the same level of skill and knowledge. One might be better at abstracting a solution to a problem, while the other is better able to do the work of executing the solution.

Isn't UML and things like it an attempt to move towards implementation robots? It may be centuries before we achieve the unification of design and implementation, but for now we need design documents.

Perhaps I worded my statement poorly. I did not mean to belittle the work of programming, I am a programmer more than a designer after all. There are any number of ways an application can fail at it's task. If it is hemroging errors due to sloppy implementation, the best design possible will not make it satisfactory to the end user.
"When you have a hammer, everything looks like a nail" is one of my favorite reminders to myself. So abstracting the problem is an important step in the devlopment process.


People think in different ways.

In Richard Feynman's book "The Pleasure of Finding Things Out", he relates a time when he discovered that he can count at a rhythmic pace while doing anything other then talking. (Read the book, I might have details a little wrong) When he told this to a friend he was amazed to discover that that friend could talk while counting at a rhythmic pace, but the friend could not look at other things. Turns out Feynman is a verbal thinking, and was saying numbers to himself, while the friend was counting by imagining a number line, and "looking" at each number as it went by.

I suspect there are other ways of thinking, but I don't know what it is - I speak the numbers to myself.

When I'm programing there are words flowing through my brain - the words of whichever language I'm working in. I cannot listen to music when I'm working because that is distracting. (Though I'm good at tuning it out)

Kinesthetic thinking ...

After I "taught my fingers" how to count in binary, the counting became somewhat automatic, a kind of kinesthetic thinking. See wikipedia's article on Howard Gardner for links to a few other ways of thinking (aka "dimensions of intelligence").


That is very interesting. I noticed many years ago that I almost subconsciously use my fingers and hands to recall the spelling of complicated words by making the finger motions I would do if I were to type the words on a keyboard. They are very subtle movements, I'm not doing any kind of crazy hands-in-mid-air maniac kinda thing. :)

I remember watching this video once which featured Alan Kay in which he spoke of the psychology of UI design. One thing that stuck out was his mention of the mathematician/physicist Hadamard's informal survey among his eminent mathematician and physicist friends. Many of them (I think something like 30%) reported that their problem solving had a very kinethestic quality to it. (I think Kay mentions that Einstein was reportedly in this group.) Another large group relied principally visualization, and only a very small segment used symbolic manipulation.

In the video Kay used this anecdote to make the point that the way problem solving in the sciences is taught is fundamentally broken; it bears no relationship with the way creative scientific workers solve problems. I think everyone involved in mathematics, computer science or physics recognizes this fact at some level but I thought the anecdote was a very good illustration

I actually visualise monads i

I actually visualise monads in Haskell as two... I guess spaces embedded in each other (return as one embedding, computations as haskell values as the other), with one space being 'ordinary haskell' and the other having some additional specific structure that amounts to >>=.

Part of me wants to say there's something weird about the semantics of a programming language being visualised as a space, but really, since when's that true? It's almost a phase space of programs...


Well, getting into the topic again as it was brought up by someone else. Olympic Games in Beijing? ;)

I find myself completely unable to speak as I play the piano. I either play or talk, whenever I talk I loose my grip on the notes and rhythm. Thankfully I'm a classical music player, not into songs... :P

like origami ...

When programming, I feel like I'm engaging in an activity like origami. This is actually a deep topic, which made me start a discussion about the role of cognitive models in the design of computer programming tools.

[edit: Context of message got lost. So I've reworded my post.]

Maybe, maybe not.

Let's take ancient Greek, for example: it is a quite verbose language, with a strict syntax and lots of grammatic rules: the actual opposite of Chinese. But that did not stop ancient Greeks from developing one of the most important civilizations across history.

I disagree

The speed of my brain is the limit, not the speed that I can turn thoughts into output.

If you give me English text to type into a computer, I can type it at some fast speed, but I won't comprehend what I'm typing. Things just flow from eyes to keyboard with little thought in between. English text is important, even though I don't understand what I'm typing, I need clues to keep me in the correct position on page, in short I read words but I don't try to understand any meaning.

If I have to write the English myself, I type much slower, because I'm limited by the speed of my thoughts. If I'm writing a program, my speed is much slower yet because I need much more thought before I can write anything. (Part of this is I tend to write complex programs, but simpler English)

Now if you suggest that I don't think at the same speed as everyone else I would agree. Though I have no idea if I'm faster or slower than others. I suspect that exact thoughts (math thoughts vs sports thoughts, and even in those you can get into divisions) matter though.

Chinese and Lisp terse?

Isn't lisp about abstraction rather than terseness? I don't know chinese, but I would agree on the similarity if it allows new constructs (macros) to be created.

By the way, what is chinese?

Is it Guoyu, Min, Cantonese, Wu, Hokkian, or some other languages?

the stuff of thought

First, I have studied Chinese and Japanese (native English though), and they both have as much grammar as any other language. Grammar is based more on the human brain than anything, and that is the source of all human language I know of (except for Esperanto and maybe Basic ; ).

A good overview on this very subject is 'The Stuff of Thought' by Stephen Pinker. Basically it describes the current state of research into 'thoughtese', the mental tools we use to think and how they are constrained across cultures. Language seems to be a small subset of that, and the actual thought stuff seems to be pretty universal. The actual language used, or the words chosen seem to make almost no measurable/testable difference in anything that matters. Yes, you need to read the book instead of my unscientific two sentence summary.

But stepping back, if one language was 64bit and another 32bit, it would either take take over or crash a lot -- the fact that no languages do either says all you need to know about this I think.

I've been working on a computer language (over the years that is) that attempts to be based on this kind of thing. So for example, events would be much more important and fine grained than most current languages (things that happen over time, in an instant, fade in/out, repeatedly, and what they can apply to -- think 'pour sand' or 'hammer a nail' in terms of events). I do feel (in my gut) there are huge advances that could be made if computer languages could line up better with how we think under the language level, but maybe the tasks are too different to do that in a meaningful way.

Chinese not like LISP

All this talk of voices in Chinese is well and good, but how many parentheses are there and has an EMACS auto-indenter been implemented?