From: "Everett L.(Rett) Williams" Date: 2000-10-16T12:18:35+09:00 Subject: [ruby-talk:5559] Re: Regexp#matches matz, > > Well, I personally use plain form of nouns for method names, for > > example `exist?' not 'exists?'. The standard names reflect this > > policy. Reason? a) my tongue Japanese does not have this syntax > > (third person, singular); b) Ruby is not English. You are free to > > define this by yourself, and I think it's possible that the standard > > library 'English' may provide these aliases. I occasionally read this list, but this is the first time that I have felt compelled to answer. I am a great proponent of learning many languages, both computer and human. Whatever language that I am using, I attempt as best I may to follow it's rules. Since English is not your native language, you might not know that "third person, singular" has nothing to do with the usage of "exists" rather than "exist". Rather, it stems from the necessity in English of having the noun and the verb agree whether we are using plural or singular. If your method normally refers to multiple items, then "they exist". If it normally refers to a single item, then "it exists". If it goes both ways, then either would be logical. Since we normally, philosophically refer to existence as a singular thing, even when referring to a group, "exists" might be more appropriate. Secondly, Ruby is a computer language that is expressed in English words. Every time that it departs from normal English grammatical rules, you introduce an extra source of uncertainty in the reader of the language as to what you may have meant when you coded that particular item. Your lack of recognition of that fact puts you in good company with any number of native English speaking programmers whose only purpose is to get their programs done. They neither document well nor easily explain their programs to other programmers, much less "civilians". I am not sure that that is your intention. If Ruby is not English as you say, then we might be expected to be treated with the romanized version of the proper Japanese words for these things. There is a romanized version of Japanese, however idiotic it may be, but it is what the rest of the world uses when it must know the Japanese word for anything. You have gone far beyond this. You use English nouns, verbs, and adverbs. You converse on this list in English. I know that there are lists for Ruby in Japanese, but if they were the only lists, your language would have very limited reach. Japanese and English are similar in difficulty at the spoken level. At the written level, Japanese is far more difficult and much more subject to interpretation than English. It has been proven by various brain researchers that the two languages even involve very different patterns of brain activity. Japanese appears to activate both hemispheres of the brain quite heavily while English is largely a left-brain language. It would be a mistake to cavalierly try to interpret these differences for any purpose, but it would also be a mistake to ignore the vast potential for misunderstanding. The universality of programming is in the fact that binary logic belongs to no native language. The basic logic of a program at the machine level doesn't read well in any language. So, when we choose a higher level language, we are attempting to bridge the gap between the machine and what is called "natural language". The bridge is usually more than a bit shaky. To make it more so, deliberately, is foolhardy and defeats the purpose of the exercise. My personal rule is to bring my programs as close to the syllogism of basic logic as I can. The dendritic nature of object orientation is not accompanied by a visual tree or network that makes obvious it's workings. Therefore, it will always be a somewhat forced abstraction, easily prone to error and misunderstanding until the visual presentation of such finds a matching visual paradigm. Every additional shift away from "natural language" makes your message that much more difficult to receive. So dispense with chauvinistic excuses and do your best to make your use of Ruby understandable in the language it appears to be providing a bridge to...English. Everett L.(Rett) Williams rett@gvtc.com