English binary logic operators

Craig Black cblack at ara.com
Mon Nov 27 07:34:40 PST 2006

"Don Clugston" <dac at nospam.com.au> wrote in message 
news:ek71e0$1ako$1 at digitaldaemon.com...
> antonio wrote:
>> Ary Manzana wrote:
>>> Bill Baxter escribió:
>>>> David Qualls wrote:
>>>>> I just compiled my first D function (adapted from C), and had to
>>>>> replace all my 'and' 'or' and 'not's with the arcane &&, ||, and !
>>>>> from prehistoric C to get it to compile.
>>>>> iso646.h has been a part of C for several years.  Perl, C++ and
>>>>> possibly other languages have all adopted 'and', 'or', and 'not'
>>>>> as part of their grammar.
>>>>> I write software that will be maintained by non-programmers
>>>>> (mathematicians, who would prefer that I use Fortran).  Lots of
>>>>> funny symbols in source code (like && || !) make it difficult to
>>>>> read for the non-immersed (ah, who am I kidding, I even have
>>>>> trouble reading it now and then).
>>>>> Is there any future to D incluing the logical operators in
>>>>> English, as opposed to &!|%'ish?  (I didn't mention it, but 'mod'
>>>>> might also be a good (easy for non-programmers to understand)
>>>>> substitute for '%'.)
>>>>> David
>>>> +1
>>>> After 20 years of C/C++ my use of && and || was pretty instinctual, but 
>>>> after just a few months of working with Python on the side I found I 
>>>> started typing 'and' and 'or' without thinking about it.  It makes 
>>>> complicated expressions more readable and would fit in great with D's 
>>>> more "modern" look.
>>>> As noted before, I'm also in favor of allowing 'in' to replace ';' in 
>>>> foreach statements.
>>>> --bb
>>> I guess the main reason to stick with symbols is some compatibility with 
>>> C/C++ source code.
>>> Anyway, I also like the idea of words instead of symbols. You benefit 
>>> from readability and it's also much more simpler to type (i.e. you don't 
>>> you shift or look in a new keyboar for them).
>> Well..
>> I'm an spanish programmer:
>>   My code is written using Spanish terms like "valor" vs "value", 
>> "irSiguiente()" vs "goNext()"...
>> the best of algebra symbology is the language independence:
>>     [x..y] vs "Between x and y"
>>     x < y  vs "x less than y"
>>     a.b    vs "the b of a"  (Director Lingo used this sintax)
>>     (a)b    vs "cast b to a"
>>     a = b  vs "set value of a to value of b"
>>     a == b vs "a equals to b"
>>     { stamens } vs "begin stamens end"
>>        I'm forced to use the basic english programming syntax: if/else, 
>> while, for, foreach, public, private, protected,.... PLEASE: STOP 
>> IMPOSING ENGLISH TO THE WORLD... you are not the only one programming 
>> here.
> I've got a lot of sympathy to this. I'm really surprised that I don't hear 
> this view more often.
> I'm currently maintaining some code that was written in Italian, modified 
> in German, and now there's some English. It's a pig's breakfast. But 
> still...
> My feeling is... do not program in a language which you are not fluent in. 
> I prefer to try to read Italian written by a native speaker, than a 
> garbled attempt at English -- it's horrible to read code that was written 
> by someone who was putting more energy into translation, than into 
> thinking about their programming problem.
> In the open-source Fast Fourier Transform project (www.fftw.org), there's 
> a file with code written in Latin.
> :->

I suppose Latin would be great if you want language neutrality.  Might be 
politically correct, but not very practical.  I hate to be the bigot here, 
but let's face it.  As far as international languages go, English is a 
standard.  Sorry, but it's not my fault.  It's just the way it is.

However, if I had it my way we would all be speaking a simpler language.  I 
hate English.  A written language should be completely phonetic and 
orthogonal.  There shouldn't be silent letters, myriads of exceptions to 
rules of thumb, and ridiculous non-phonetic pronunciations.

Back to the topic, adding "and" and "or" wouldn't replace the symbolic 
representation.  The symbolic representation would still be valid, so I see 
this as a benign addition to D.   It seems it would make a lot of people 
happy, and would be easy to do, so I am not opposed to it.


More information about the Digitalmars-d-learn mailing list