the Dominance of English in Programming Languages

644 views
Skip to first unread message

Chris Burkert

unread,
Apr 29, 2019, 1:36:37 AM4/29/19
to golang-nuts
I recently read an article (German) about the dominance of English in programming languages [1]. It is about the fact that keywords in a language typically are English words. Thus it would be hard for non English speakers to learn programming - argue the authors.

I wonder if there is really demand for that but of course it is weird to ask that on an English list.

I also wonder if it would be possible on a tooling level to support keywords in other languages e.g. via build tags: // +language german

Besides keywords we have a lot of names for functions, methods, structs, interfaces and so on. So there is definitely more to it.

While such a feature may be beneficial for new programmers, to me it comes with many downsides like: readability, ambiguous naming / clashes, global teams ...

I also believe the authors totally miss the point that learning Go is about to learn a language as it is because it is the language of the compiler.

However I find the topic interesting and want to hear about your opinions.

thanks - Chris

Reto

unread,
Apr 29, 2019, 2:08:58 AM4/29/19
to golang-nuts
In my view you don't necessarily need to speak English, although it helps a lot.
Go uses utf-8 for all identifiers, so assuming you treat the keywords as blobs and just remember when to use which you should be fine.

The issue being more that all existing packages worth using are written with English identifiers, it being the defacto universal language of the world.
Same goes for the corresponding docs.

Writing programs in multiple languages just fragments the ecosystem for no real benefit.

Sebastien Binet

unread,
Apr 29, 2019, 3:41:23 AM4/29/19
to golang-nuts
and imagine having to debug a program written in - say - russian, with all the variables, functions (and their abbreviations) and comments in russian.
(I am not picking on russian programs.
It just happens that during my PhD, I'd inherited a physics simulation program written by russian colleagues, and I had to maintain and develop it.
not something I want to do ever again :P)

cheers,
-s

yvan....@gmail.com

unread,
Apr 29, 2019, 4:58:50 AM4/29/19
to golang-nuts

just for fun
In France we have WINDEV where you can write code either in English or French ;-)  but no German :-(
unfortunately not free product

giving something like   
'''
// Le document sera enregistré en noir et blanc
SI TwainVersJPEG("C:\Temp\MaPhoto.JPEG", 0, Faux, TwainNoirBlanc) = Vrai ALORS
Info("Le document a été enregistré")
SINON
Erreur("Le document n'a pas été scanné")
FIN
'''
source here

Max

unread,
Apr 29, 2019, 5:10:28 AM4/29/19
to golang-nuts
I am Italian, and I learned to program quite early - before really knowing English.

In my experience, the fact that most programming languages use English keywords is not a big obstacle - for two reasons:
1) each programming language has very few reserved keywords - dozens at most, compared to thousands of words you need to know in a new foreign language.
2) a programming language is a **language** anyway, so the effort is mostly in learning the meaning of each keyword, its syntax, and how to use it.

Having said that, English speakers have great advantages when studying programs documentation, as most languages and libraries are **documented** and commented in English.
But in my opinion the fragmentation created by "everyone writes programs, comments and docs in its own language" would be **much** worse.

For reference, some years ago at work I had to integrate a program written in German - identifiers, function names, even comments were in German.
It was a nightmare, and it took months even with help from other (Italian) people that knew the program and the meaning of each identifier and function.

Regards,
cosmos72

Wojciech S. Czarnecki

unread,
Apr 29, 2019, 6:15:03 AM4/29/19
to golan...@googlegroups.com, burker...@gmail.com
On Mon, 29 Apr 2019 07:35:56 +0200
Chris Burkert <burker...@gmail.com> wrote:

> I recently read an article (German) about the dominance of English in
> programming languages [1]. It is about the fact that keywords in a language
> typically are English words. Thus it would be hard for non English speakers
> to learn programming - argue the authors.

Its an ever resurrecting topic in some science-impaired nationalist's circles.

At the dawn of the age of enlightenment they were lamenting that one
must know also Greek to fully participate in discourse and that Greek is
hard. Then they were lamenting that one need to know French due to
its "unfair" dominance. Then for over a century they lamented that all
worthy physical sciences and engineering manuals were printed
in German.

Ubiquoteness of some languages is just a byproduct.
In any given epoch sciences and art are lead by people of a country(ies)
that let their people flourish. In the middle-ages most new science was done
and described in Arabic. In the XXII century it could be Mandarin.

> the fact that keywords in a language typically are English words.
> Thus it would be hard for non English speakers to learn programming
> - argue the authors

Seriously? Are they really arguing that someone who can not memorize
meaning of 25 to 150 words written not in mother's tongue can cope with
all that math and logic she needs to understand to become a programmer?

Excuse me, but it is just nationalist's babble.

> I wonder if there is really demand for that

Ask MS Excel users whether they applaud translated math/statistical function
names. Is really 'FLOOR' less understandable to them than 'ZDCWD' acronym
for 'ZAOKRĄGLIJ DO CAŁKOWITEJ W DÓŁ' (or like, haven't seen it in years).

> Besides keywords we have a lot of names for functions, methods, structs,
> interfaces and so on. So there is definitely more to it.

Go ecostystem is unicode from the onset. You can use German, Georgian or
even Klingon for your identifiers. So you already have a way to produce source
code that only German speaking part of the world would care of. And a way to
cut pupils off all the dangers that non German-speaking world poses ;>.

> I also believe the authors totally miss the point that learning Go is about
> to learn a language as it is because it is the language of the compiler.
(Sigh of relief :)

> However I find the topic interesting and want to hear about your opinions.
> thanks - Chris

Your Welcome :)

--
Wojciech S. Czarnecki
<< ^oo^ >> OHIR-RIPE

amn...@gmail.com

unread,
Apr 29, 2019, 6:30:16 AM4/29/19
to golang-nuts
We would have even more fun if we had non-latin characters in keywords aliases,
and supported both left-to-right and right-to-left writing directions.
But I doubt that this will make programs more readable for everyone.

John McKown

unread,
Apr 29, 2019, 7:41:21 AM4/29/19
to golan...@googlegroups.com
The solution is simple. Just program in APL. Then _nobody_ can understand your program and so it is "fair" to all. It is a "write only" language.


Game of Life[edit]

The following function "life", written in Dyalog APL, takes a boolean matrix and calculates the new generation according to Conway's Game of Life. It demonstrates the power of APL to implement a complex algorithm in very little code, but it is also very hard to follow unless one has advanced knowledge of APL.

life{1 .3 4=+/,¯1 0 1∘.¯1 0 1∘.⌽⊂} 

--
This is clearly another case of too many mad scientists, and not enough hunchbacks.


Maranatha! <><
John McKown

Volker Dobler

unread,
Apr 29, 2019, 8:07:58 AM4/29/19
to golang-nuts
The number of keywords and their "origin language" does not matter
much, that is something we probably can all agree to, especially
with the very few kewords in Go.

But if you try to teach 9 or 10 year old kids to program you cannot
do this in the language alone, you need at least to import fmt.
And while the handful of keywords are not a problem at all the
packages used to do interesting things (for a 9 year old) are
in English only.

Of course I would never advocate to program in Bavarian, or
cuneiform, but if you are starting to learn a real programming
language than there _is_ a language barrier. And this barrier
is in addition to typing on a keyboard and the math and the
logic and everything else.

Because of this real problem I thought about some package basic
which could be an atypical collection of useful functions for
educational purpose: Very simple input and output functions,
graphic functions (like points, lines, ellipses, rectangles),
a bit of sound (like 12 different tones and two beeps) with exported
identifiers and the godoc in the child's first language so that a very
young student can explore what is possible in a more appealing
way than just println-based output.

V.

Wojciech S. Czarnecki

unread,
Apr 29, 2019, 9:01:50 AM4/29/19
to golan...@googlegroups.com, ma...@jasonrbriggs.com
On Mon, 29 Apr 2019 05:07:58 -0700 (PDT)
Volker Dobler <dr.volke...@gmail.com> wrote:

> But if you try to teach 9 or 10 year old kids to program you cannot
> do this in the language alone, you need at least to import fmt.
> And while the handful of keywords are not a problem at all the
> packages used to do interesting things (for a 9 year old) are
> in English only.

Sed or gofix can cope with that and it is a duty of the teacher to
make a basic packages translation. The more important though
are manuals suitable for self-teaching.

The [Python for Kids](https://jasonrbriggs.com/python-for-kids/)
book has been translated to nine languages. (I hope Jason Briggs
will love Go too, and soon come with a new book for kids ;).

> Of course I would never advocate to program in Bavarian, or
> cuneiform, but if you are starting to learn a real programming
> language than there _is_ a language barrier. And this barrier
> is in addition to typing on a keyboard and the math and the
> logic and everything else.

Or it can be a strong impulse to learn English -- like
music lyrics is to the less techie kids.


> Because of this real problem I thought about some package basic
> which could be an atypical collection of useful functions for
> educational purpose: Very simple input and output functions,
> graphic functions (like points, lines, ellipses, rectangles),
> a bit of sound (like 12 different tones and two beeps) with exported
> identifiers and the godoc in the child's first language so that a very
> young student can explore what is possible in a more appealing
> way than just println-based output.

Good idea. Ready to be picked up by some Khan Academy contractor.

> V.

fbaube

unread,
Apr 29, 2019, 9:37:45 AM4/29/19
to golang-nuts
It's interesting to see this!

Back in the early 1970s I wondered what the programming languages in other countries (not-USA) looked like - what were the keywords, etc.

Well, it turns out that (AFAIK) they were using the same compilers and the same interpreters, and languages with the same English keywords, because (also AFAIK) nobody was writing non-English-keyword compilers in Europe and nobody was patching existing binaries (like BASIC.EXE) to change the keywords contained in executables.

cheers - fred

On Monday, April 29, 2019 at 11:58:50 AM UTC+3, yvan...@gmail.com wrote:

In France we have WINDEV 
giving something like   

ffm...@web.de

unread,
Apr 30, 2019, 4:10:08 AM4/30/19
to golang-nuts
"They" were also developing languages of their own, also in countries not of English language, such as Pascal, Modula, Scala (Switzerland), Kotlin (Russia) and using English words as key words. It is understood by everyone in the world who already knows some other language ;-).

HaWe

unread,
Apr 30, 2019, 10:08:28 AM4/30/19
to golang-nuts
As others mentioned already, the 25 keywords in Go, which were taken from the english language are not a problem for (adult) programmers. And if they were, some kind of localized precompiler could handle them easily.

More of a stumbling block for non-english-native readers are names and comments in the code. I don't see a viable path to internationalization here. Technically yes, you could use 'gofmt -w'. But programming is internationally organized after all - you need a lingua franca. (Choosing names carefully can help a bit.)

But there is also the broad area of documentation to consider, especially API docs, namely the API docs of the Go Standard Library. I can imagine some kind of tooling, maybe an extension to 'go doc', that extracts localized text from supplemental files when they are available ... just an idea.
But, I already hear people say, programmers understand English - they have to. Yes, I agree ... partly. But you are much quicker to understand, to grok the Zen, when you read your own mother tongue. I can tell because on several occasions, for better to understand them, I underwent the effort to translate english written documents into German.
(BTW there is still a german version of The Go Programing Language waiting for a publisher: https://bitloeffel.de/index.php?lang=en)

But back to the topic of non-english programming languages. Time will tell. Programmers think about milliseconds, linguists think in centuries. If there is at some time a real need for, say, a Chinese based programming language then there will be one. You could even use Go to build the compiler.

my 2¢

jucie....@zanthus.com.br

unread,
Apr 30, 2019, 3:46:08 PM4/30/19
to golang-nuts
Here in Brazil we usually code in Brazil's native language: Portuguese. Yes, there are some companies that mandate the use of English, albeit the additional costs of doing so, but that is very exceptional. The vast majority of brazilian software houses use Portuguese everywhere.

The only English words are the programming language keywords and library function calls, for obvious reasons. This scheme has the advantage that it differentiates code created in house from foreign code.

We pick words from the problem domain. So, if we are coding retail software for a chain store, we don't even think about using the word "INVOICE" ( are you kidding? ) Our clients don't say "invoice", they say "nota fiscal", so we code using the name notaFiscal.

That is not nationalism, it's a practical matter and, generally speaking, it works great.

Louki Sumirniy

unread,
May 3, 2019, 10:27:51 AM5/3/19
to golang-nuts
It would be incredibly computationally costly to add a natural language translator to the compilation process. I'm not sure, but I think also identifiers in Go can only be plain ASCII, ie pure latin script (and initial character must be a letter)

These days in most countries where foreign scripts are used there is some (usually fairly standardised) latinisation rules.

The thing is, Go, speaking in terms of idiom, has the opinion that names should be chosen carefully and follow rules about stutter and so forth. I find myself reaching for a thesaurus a lot when writing code. If I came across code that had words like 'benutzer' or 'nachalnik' I'd know what I'm looking at but I know a lot of vocab from latinic and germanic continental european languages.

It's unfortunate, but I don't think it's really a problem. Language learning is quite peculiar - most polyglots, who speak 4 or more significantly different languages, will tell you the more languages you learn the easier each next one gets. Computer programming is about language also. I can express a simple algorithm in about 5 major computer languages, as can most programmers who are much over the age of 40.

The thing is, with the exception of maybe German and Russian, almost every paper written on any computer science subject is in english. You can't even hardly understand the principles without english, but let's say you want to get into distributed systems or language processing... ha!. Plus, english conveniently has such a rabble of different syntax and semantics that resembles the variations in programming languages, left branch, right branch, prefix, suffix, infix, compound words and modifiers, etc. Just to contrast, Georgian is 100% left branch syntax. Go's function syntax is an example of right branch syntax (C's is a jumble of both).

Louki Sumirniy

unread,
May 3, 2019, 10:29:23 AM5/3/19
to golang-nuts
I'd also go further and point out that the Go language has a somewhat peculiar and unique feature that code reusability is not considered a holy grail. If I really needed a library that was written in portuguese, it would not be hard to figure out how to rename everything for my easier readability.

Ian Lance Taylor

unread,
May 3, 2019, 10:43:09 AM5/3/19
to Louki Sumirniy, golang-nuts
On Fri, May 3, 2019 at 7:28 AM Louki Sumirniy
<louki.sumir...@gmail.com> wrote:
>
> It would be incredibly computationally costly to add a natural language translator to the compilation process. I'm not sure, but I think also identifiers in Go can only be plain ASCII, ie pure latin script (and initial character must be a letter)

That turns out not to be the case. The rules for identifiers are at
https://golang.org/ref/spec#Identifiers, where the definition of
"letter" is at https://golang.org/ref/spec#Characters .

Ian

JuciÊ Andrade

unread,
May 3, 2019, 10:57:55 AM5/3/19
to golang-nuts
I think my poor choice of words induced a misunderstanding. When I said "we code in Portuguese" I meant "we prefer to pick words from Portuguese for identifiers". Sorry.

Louki Sumirniy

unread,
May 3, 2019, 11:11:55 AM5/3/19
to golang-nuts
Oh, I *can* use UTF-8 in identifiers?? nooo:

Identifiers name program entities such as variables and types. An identifier is a sequence of one or more letters and digits. The first character in an identifier must be a letter.

identifier = letter { letter | unicode_digit } .
 
...
 
Letters and digits
The underscore character _ (U+005F) is considered a letter.

letter        = unicode_letter | "_" .
decimal_digit = "0" … "9" .
octal_digit   = "0" … "7" .
hex_digit     = "0" … "9" | "A" … "F" | "a" … "f" .

but `unicode_letter` - what is that? Does that include such as æ ? If so then I guess it would also allow ⻄ too.

I have seen source code from chinese authors that has comments in cn traditional. So does this mean, in theory, I can use any valid unicode letter from alphabet (or even pictograpic) language scripts??

Louki Sumirniy

unread,
May 3, 2019, 11:14:31 AM5/3/19
to golang-nuts
If the 'letter' classification is the same as used in .NET's unicode implementation, this info lists the categories of symbols that unicode classifies as letters:

https://docs.microsoft.com/en-us/dotnet/api/system.char.isletter?view=netframework-4.8

Jan Mercl

unread,
May 3, 2019, 11:17:56 AM5/3/19
to Louki Sumirniy, golang-nuts
On Fri, May 3, 2019 at 5:14 PM Louki Sumirniy
<louki.sumir...@gmail.com> wrote:

> If the 'letter' classification is the same as used in .NET's unicode implementation, this info lists the categories of symbols that unicode classifies as letters:

https://golang.org/ref/spec#Characters

""""
In The Unicode Standard 8.0, Section 4.5 "General Category" defines a
set of character categories.
Go treats all characters in any of the Letter categories Lu, Ll, Lt,
Lm, or Lo as Unicode letters, and
those in the Number category Nd as Unicode digits.
""""

Louki Sumirniy

unread,
May 3, 2019, 11:25:26 AM5/3/19
to golang-nuts
https://en.wikipedia.org/wiki/Unicode#General_Category_property 

This section in the wp entry lists these categories.

So, in Go, actually, all identifiers can be in practically any language. Even many of those funny african scripts and west asian languages!

Ian Lance Taylor

unread,
May 3, 2019, 1:30:33 PM5/3/19
to Louki Sumirniy, golang-nuts
On Fri, May 3, 2019 at 8:25 AM Louki Sumirniy
<louki.sumir...@gmail.com> wrote:
>
> https://en.wikipedia.org/wiki/Unicode#General_Category_property
>
> This section in the wp entry lists these categories.
>
> So, in Go, actually, all identifiers can be in practically any language. Even many of those funny african scripts and west asian languages!

Yes. Note that those scripts are not funny for the people who use
them every day, they are just normal writing.

It gets a little more complicated when discussing which identifiers
are visible in other packages. See https://golang.org/issue/5763 and
https://golang.org/issue/22188. Separately, but related to this
general topic, see also https://golang.org/issue/20706 and
https://golang.org/issue/27896.

Ian

Louki Sumirniy

unread,
May 4, 2019, 4:52:46 PM5/4/19
to golang-nuts
Oh, I don't mean 'funny' in a derogatory way. Some of them are beautiful and I find the languages that use them, fascinating grammar and etymology and differences in grammar. For me language is a general category of much interest, and programming very specific and use-targeted, but for sure, many computer languages are affected by the languages of its designers and some even are named to signify that, such as the syntax RPN, which is closely related to Lisp's syntax.

The issue about capitalisation and equivalence of symbols would make the use of languages without capitalisation difficult for sure. It's great to see that someone is actually caring enough about it to facilitate it. Go idiom prescribes certain policies with naming - I'd guess that if those rules were tightened up a bit more, and tools built to lint them, that fully translating into another script (even potentially rtl) would be a lot easier than the good old days when the compiler only recognised ascii.

Chris Burkert

unread,
May 4, 2019, 6:15:00 PM5/4/19
to golang-nuts
Some background why I was asking this: I have a history with Squeak/Smalltalk and how Alan Kay worked with children. At work I also teach 14/15 year old pupils during their 2 weeks internship and that is simply too short to show them something about programming especially when this is just one topic out of many. We usually convert numbers between decimal, octal, binary and hexadecimal on the whiteboard. And because they just knew 0-9 so far it becomes a sudden insight to some of them. These few kids usually want to learn more (convert numbers programmatically) but because they are intrinsically motivated the English language is not a hurdle for them. That’s why I was wondering about the article.

Thanks for all your comments. Reading the different perspectives about the topic fascinates me a lot.

lgo...@gmail.com

unread,
May 6, 2019, 10:46:10 AM5/6/19
to golang-nuts
this issue involves much more than Go code For example , we for whom English is not our native language use 'Google translate' to translate our golang-nuts questions into English and the golang-nuts responses back to our native language.  The second translation often produces produces very-strange (and often laughable) native language translations. So I think it is safe to conclude the first translation produces similar things in English because many of the golang-nuts responses indicate  gross misunderstanding of original question.

Some golang-nuts members are native Americans who have very little tolerance for non-American English  

Mirko Friedenhagen

unread,
May 7, 2019, 6:06:05 AM5/7/19
to golang-nuts
Well, back in the 90s the Microsoft Office Basic dialects were internationalized so you could write something like "Für Alle Zellen In DieseArbeitsMappe.ArbeitsBlätter[5]" instead of "for all cells in ThisWorkmap.WorkSheets[5]".
But you could open/run this only with a German version of Excel 4.0. To make this available for other languages you had to save it as English version. 
I remember this was quite horrible, as all (advanced) documentation was in English anyways and you sometimes had to guess the correct translations.

Regards
Mirko

skinne...@gmail.com

unread,
May 7, 2019, 12:33:46 PM5/7/19
to golang-nuts
When I first used IBM's UniComal the manual was Danish but the keywords were English. Sometimes the function names in the examples were Danish. I un derstand your problem.

However, I do think that language is irrellevent. The keywords are tokens that can be replaced programmatically with SED or AWK. You can display all programs in your native language and write code in your native language, when you save your code, it then translates that language source to English language source and then when to edit the English language source you translate it back to your native language source.

I once wrote a process in Comal that would read a legal contract defining a database program, it would parse the file, convert it to C++ code, that would then compile into a working program. If the program did not perform as needed, I sometimes had to write new C++ code but more often the sale person would have to do a change order on the contract for the software.

I do think that all programmers are multi-lingual, they have their native language and one or more computer languages. Sometimes it is easier to learn a new language than to build the tools needed to remain in ones current comfort zone.

My final comment is a bit off topic, I do not consider English to be a language, it has over 120,000 words. If you have a vocabulary of 500 words of Latin you can read most any ancient history. ESL speakers typically have a subset of only 3k words. Most native English speakers use only 10k-20k words depending on their training and locale. Native English speakers can sometimes be incomprehensible to ESL or other English dialects. Vocabulary can be vastly different depending upon class, heritage, region, training. 

K.S. Bhaskar

unread,
May 8, 2019, 9:40:43 AM5/8/19
to golang-nuts
For historical reasons, languages and activities tend to be associated. Is the need for programmers to know relevant English technical terms any different from opera singers needing to know relevant Italian technical terms or fencers needing to know relevant French technical terms?

Regards
– Bhaskar

ma...@madra.net

unread,
May 17, 2019, 12:41:13 PM5/17/19
to golang-nuts
Spare a thought for those of us who actually speak and write 'proper' English and not that American version used in all programming languages.

We get to write in our own language but have to remember to spell half the words wrong!


Michael Jones

unread,
May 17, 2019, 4:27:05 PM5/17/19
to ma...@madra.net, golang-nuts
I know that you joke here, but I had an interesting dinner conversation in London last year with erudite, scholarly friends who shared with me that recent research supports a different view of the "barbaric Americanised false English" that is the prevailing sentiment you share. 

According to the scholars they mentioned, "American English" is indeed a true, pure, "real" English; just one from a time-capsule, an English from 1776 that did not advance significantly since American independence. This view suggests that were a BBC presenter and an American to travel back to meet with King George, it would be the American who sounded "right" and not the other way around.

This time-capsule argument is not an argument against modern evolved English, but it is an interesting notion of a living language in the homeland might become a historical artifact through cargo culting in the breakaway colony. Insightful as to human psychology and something to remember amongst the lessons of wisdom.

Michael
(a barbaric American-English 1776 throwback ;-)

On Fri, May 17, 2019 at 9:41 AM <ma...@madra.net> wrote:
Spare a thought for those of us who actually speak and write 'proper' English and not that American version used in all programming languages.

We get to write in our own language but have to remember to spell half the words wrong!


--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/1e22042e-9ac0-404f-be30-eaa495ae11dd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


--
Michael T. Jones
michae...@gmail.com

Andy Balholm

unread,
May 17, 2019, 4:51:18 PM5/17/19
to Michael Jones, ma...@madra.net, golang-nuts
That’s probably true of the spoken language; American spelling, on the other hand, has changed more than British spelling. This is mostly a result of Noah Webster’s attempts to simplify it.

King James Version Bibles generally follow the spelling of the 1769 Oxford printing, and the spelling is definitely closer to current British English than to American.

Andy

Jan Mercl

unread,
May 17, 2019, 4:57:21 PM5/17/19
to Andy Balholm, Michael Jones, ma...@madra.net, golang-nuts
On Fri, May 17, 2019 at 10:51 PM Andy Balholm <andyb...@gmail.com> wrote:

> That’s probably true of the spoken language; American spelling, on the other hand, has changed more than British spelling. This is mostly a result of Noah Webster’s attempts to simplify it.
>
> King James Version Bibles generally follow the spelling of the 1769 Oxford printing, and the spelling is definitely closer to current British English than to American.

That's what you get when the language is specified by the implementation.

stíobhart matulevicz

unread,
May 17, 2019, 5:08:04 PM5/17/19
to Michael Jones, golang-nuts

I know that a lot of what we think of as "American English"  words are actually archaic forms of early 'English English'. Words like "gotten" instead of "got", for example. But there's also a lot of blame or credit (depending on your point of view) for the differences to be laid at the door of a certain Mr. Noah Webster:


I was kind of half-joking in my original post.  But, as someone who considers himself highly literate,  I do actually find it does grate a bit,  having to (from my point of view) deliberately spell words wrong, when I'm coding. 

I get my revenge in the code comments though,  where I resolutely stick to "colour", "centre", "programme", etc.

I wonder if I'm am isolated case,  or whether any other native English speakers are slightly irked by having to code in "bad spelling" too?

Michael Jones

unread,
May 17, 2019, 6:09:02 PM5/17/19
to stíobhart matulevicz, golang-nuts
In addition to being a daily Go programmer, I'm also a corporate executive in the US and a venture investment partner in the UK. This has me constantly surrounded by "proper" English and has made me very aware of the linguistic habits of my American upbringing. It seems that I've become an amalgam of the two, I say that "I was in hospital" for example, but name variables 'color' -- the result earning awkward glances on both sides of the Atlantic. My ear now prefers English English, in part from my love of the character of English people.

Rob Pike

unread,
May 17, 2019, 7:44:33 PM5/17/19
to Michael Jones, stíobhart matulevicz, golang-nuts
It is of course more complicated than most people believe. The right is often wrong; the wrong often has long precedence. The British -ise ending is an early 20th century misguided respelling based on invalid theories of etymology. Programme is just something that came out of the blue, from Scotland I believe, replacing the older program again relatively recently (the occasional American pronunciation that rhymes with pogrom is a catastrophe of its own). And so on and so on. What is perceived as British and correct is often felt worthy through its Britishness but is in fact more recently constructed than, for instance theater replacing theatre.

Webster did indeed drop the colourful u's, with good reason (we are not French), and jail is a clear improvement over the ludicrous gaol, with similar favorable positions taken on draft/draught etc., but most of his adjustments never caught on as canon, thru being the closest to making it. Most of his attempts died on his tung (sic).

Canada mostly follows the American (-ize, jail, tire, etc.) but keeps the French u's and re's. Australia is closer to Britain but sticks with jail and tire. I'm sure every English speaking country has its own set, and each is valid in place.

Language is rich, English orthography perhaps richest of all. Don't cast aspersions, just be consistent. Most of all, don't believe that the Brits are always "proper".

The Go team's spelling standard honors the modern American style. It needs to pick something to be consistent, but you are of course free to do as you will in your own world, and you should.

-rob




Dan Kortschak

unread,
May 17, 2019, 8:04:31 PM5/17/19
to golang-nuts
:)

In Gonum source/text, we have a policy of ASE in user-facing
documentation, but all my internal comments and commit messages are
written in BE (though read by me in AuE). We also avoid usages that are
ambigiguous when read in BE/AuE or grammatically incorrect when read in
those dialects (the best example of this is alternate/alternate for
alternate/alternative where this is a reduction in the semantic space
in ASE).

Dan Kortschak

unread,
May 17, 2019, 8:09:18 PM5/17/19
to Rob Pike, Michael Jones, stíobhart matulevicz, golang-nuts
On Sat, 2019-05-18 at 09:43 +1000, Rob Pike wrote:
> Australia is closer to Britain but sticks with jail
> and tire.

I don't think this is true Australia wide - in Melbourne and Adelaide
(my home cities), I have always seen gaol and tyre.

> I'm sure every English speaking country has its own set, and each
> is valid in place.

And also at a finer resolution.

Rob Pike

unread,
May 17, 2019, 8:43:17 PM5/17/19
to Dan Kortschak, Michael Jones, stíobhart matulevicz, golang-nuts
According to my Macquarie dictionary, the word in local use is jail but the established institutions still use the old spelling on their edifices.

MacQ backs you on 'tyre', but I have seen 'tire' a lot as well.

It continues to evolve.

-rob



K.S. Bhaskar

unread,
May 17, 2019, 10:32:42 PM5/17/19
to golang-nuts
And let's not forget Indian English - between the countries in the Indian Sub-continent (India, Pakistan, Nepal, Bangladesh), that should add up to another couple hundred million at least, with its own peculiarities like "Horn OK Tata" on the back of every truck (sorry, lorry). Interestingly, those dialects have not made their mark on any programming language, despite the large number of people of Indian ancestry in the software business.

Regards
- Bhaskar
To unsubscribe from this group and stop receiving emails from it, send an email to golan...@googlegroups.com.


--
Michael T. Jones
michae...@gmail.com


--
Michael T. Jones
michae...@gmail.com

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golan...@googlegroups.com.

ma...@madra.net

unread,
May 18, 2019, 5:59:48 AM5/18/19
to golang-nuts
On Saturday, 18 May 2019 00:44:33 UTC+1, Rob 'Commander' Pike wrote:
jail is a clear improvement over the ludicrous gaol...

I hadn't actually realised that GAOL vs JAIL was a British vs. US English distinction. I thought 'Gaol' was just an archaic spelling of 'Jail', as I've only ever come across it in C19th and earlier literature. Even over this side of the pond, 'Jail' is used pretty exclusively. Although we mostly call it 'Prison' :-)

 
...with similar favorable positions taken on draft/draught etc.. 
...Australia is closer to Britain but sticks with jail and tire...

I don't see why the American reforms are necessarily "Favo[u]rable".  In a lot of cases, the US spelling actually causes conflict with an existing English word, where in British English there is no ambiguity.  You've mentioned two already.  TIRE/TYRE and DRAFT/DRAFT. Just think how much potential for confusion is avoided by retaining the British English spellings in the following:

1: My car was tired so I had it retyred.
2: A sudden draught blew away my draft 

Programme is just something that came out of the blue, from Scotland I believe, replacing the older program again relatively recently

PROGRAM[ME] is another interesting one. As we [sort of!] have both versions in British English. Likewise with DISC/DISK

On television we have PROGRAMMES. At the opera or a football [not Soccer!] match, you might buy a PROGRAMME but it's generally considered the norm to run a PROGRAM on a computer.

In the same vein, you might admire the DISC of the moon or buy the tax DISC for your car or play your music on a compact DISC. But you'll have a DISK drive in your computer.  

[Though thankfully the abolition of the Tax Disc, the obsolescence of the DC and the advent of the SSD is gradually removing this discrepancy]

On Saturday, 18 May 2019 03:32:42 UTC+1, K.S. Bhaskar wrote:
And let's not forget Indian English - between the countries in the Indian Sub-continent (India, Pakistan, Nepal, Bangladesh)...

As far as I'm aware the Indian sub-continent officially retains the British English spellings. I think you're referring more to regional differences in dialect there. That's a whole other can of worms!

Even within the tiny British Isles, there are huge differences in dialects of English spoken in different regions. I think people in the US who've never visited the British Isles and are only used to hearing that slightly artificial and bland-sounding, carefully enunciated "British Accent" that most actors from this part of the world seem to adopt when starring in US made television and films would probably be shocked to find themselves suddenly dumped in the middle of Belfast, Glasgow, Liverpool, Birmingham, Dublin, London's East End, etc and trying to follow a conversation amongst the locals.

Another thing that I hadn't realised, until I read that article I linked to on Noah Webster was that the existing reforms in US spelling were actually a much-watered down version of what he had originally intended.  This probably explains why they're an odd mixture of [he grudgingly admitted] logical changes, such transposing the RE to ER on the end of CENTRE with illogical ones such as retaining the C at the beginning, rather than replacing it with an S.  

Apparently, if Noah had got his way, it would  have been SENTER but he watered down his suggested reforms in the face of public ridicule. Thus leaving you Americans with a job only half-done.  Which, I suppose, in a way, is why from a British English point of view the differences in American English can often seem a bit random and arbitrary.

Tune in same time next week when the topic for discussion will be "Why is the American date format so illogical?"  Although I suspect that, on a mailing list comprised of coders, that one will be less controversial.

Jakub Labath

unread,
May 18, 2019, 8:26:09 AM5/18/19
to golang-nuts

Back in the 90ies someone at Microsoft had the brilliant idea to translate Visual Basic that came with the Czech version of Excel into Czech.

So e.g. IF became KDYZ (well it's not Z it's Z with caron - which also was a problem if character encoding was not set properly)

The results were that no one was able to re-use any code or documentation to learn it. It created numerous problems for IT support as any macros written in English were broken.

So in the end rather than creating an army of Czech visual basic programmers we were specifically requesting English version of the software to replace the Czech ones.

Let's not do that ever again I say.

Andy Balholm

unread,
May 18, 2019, 11:26:15 AM5/18/19
to ma...@madra.net, golang-nuts
Just be glad that the American date format caters to (or for!) those Americans who say “January two”, not those who (like me) say “January second.” Imagine what date-formatting code would look like if ordinal suffixes were required! (Jan 1st, Jan 2nd, etc.)

Andy

David Riley

unread,
May 18, 2019, 12:43:41 PM5/18/19
to ma...@madra.net, golang-nuts
On May 18, 2019, at 05:59, ma...@madra.net wrote:

On Saturday, 18 May 2019 00:44:33 UTC+1, Rob 'Commander' Pike wrote:
jail is a clear improvement over the ludicrous gaol...

I hadn't actually realised that GAOL vs JAIL was a British vs. US English distinction. I thought 'Gaol' was just an archaic spelling of 'Jail', as I've only ever come across it in C19th and earlier literature. Even over this side of the pond, 'Jail' is used pretty exclusively. Although we mostly call it 'Prison' :-)

This is OT for the list, but: I think it’s more the latter (an archaism rather than a regional distinction; jail is basically universal here because we started later).

We do, however, tend to distinguish somewhat between “jail” and “prison”; the short version is that jail is temporary holding while awaiting trial, while prison is more permanent punitive containment post-sentencing. I’m not sure if that distinction exists as much overseas, and in colloquial US English, saying that someone is “in jail” is often used for both situations (I, myself, enjoy our more colorful slang such as “in the pokey” or “up the river”).


- Dave

Michael Jones

unread,
May 18, 2019, 12:59:46 PM5/18/19
to David Riley, stíobhart matulevicz, golang-nuts
'carcer' is the word. jail/gaol are just johnny-come-lately.

--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/A89B99F0-1753-4D8F-81FE-9A6C26A2FDC9%40gmail.com.

For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages