
Non-English-based programming languages - ducaale
https://en.wikipedia.org/wiki/Non-English-based_programming_languages
======
aasasd
Seeing a programming language in your native language after working with
English ones, you discover that it looks and sounds pretty ridiculous. My
belief is that the native language is ingrained on a low level in the brain,
so it's decoded ‘in the hardware’ and directly invokes meanings and
associations, whereas a second language goes through at least some level of
conscious processing. The very same way, I'm physically unable to shut off the
brain's frantic search for meaning when I hear some inane song lyrics or
advertisement in my native language—which causes suffering whenever I get near
television. Meanwhile, I'm completely comfortable reading or hearing total
drivel in English until I consciously try to interpret it. Similarly, I can't
skim in English as fast as I do in my language.

This all brings me to the thought that native-English speakers probably have a
rather different experience with programming languages, since the keywords
must constantly invoke deeply ingrained associations but that's in turn
modified by regularly seeing and thinking of them in the programming context.

КОНЕЦ ЕСЛИ

~~~
Iv
French here, that's my experience as well. I want to emphasize that the huge
majority of the non-english native programmers I know are pretty opposed to
translating programming languages.

However, my experience teaching Japaneses has been that what is crucial if you
want to make a programming language accessible to different nationalities is
to translate error messages correctly. Learning IF, FOR, RETURN is not hard.
There are 20 words max to learn. You could learn that many kanjis in one day
if you needed. However, when you are not good at English, understanding
"Access error: Array index is out of bounds" requires another level of
understanding and vocabulary.

~~~
buybackoff
Cannot agree on error messages, had opposite experience with them. I always
require all team members to install English versions of runtimes because it is
easy to search non-trivial errors on the internet. Many translations are
automatic or done by not very technical people and they sound weird in local
language, e.g. many terms in Russian, even such simple as "heap allocation",
are really weird. An English error that you see for the first time is usually
solved via quick search with the first result usually linking to StackOverflow
with the correct fix, but with the local language it's often difficult to
understand where to start. (But basic English knowledge is assumed)

~~~
Iv
> But basic English knowledge is assumed

Let's be clear: it is my opinion that today, basic english is a pre-requisite
to any programmer.

What I am saying is that people making "native" programming language seem to
want to change that and that they are misguided if they think the language is
the crucial part. The crucial part are the error messages, which indeed are
often very poorly translated.

Yes, heap/stack would look weird in french as well, but as weird as they look
in english the first time you encounter them. However if you translate the
error message correctly, a novice programmer will understand that it is a
memory problem and may try to hunt the error more efficiently.

~~~
bromuro
I learnt my basic English while programming. Definitely not a prerequisite !

------
tanin
I used to think about this when I was a student. I could totally make a
programming language in Thai.

Surprisingly, one of the main issues that I thought of was a cultural one.
Thais culturally don't use a single word to encapsulate complex meaning. We
use a combination of words to capture that kind of meaning.

Just to give an example: a taxi driver is 'human-drives-taxi' in Thai. A
barber is 'tradeperson-cuts-hair'. So, the programming language would be
really verbose.

Also, since programming originates from the western world, we never really
have Thai words for many concepts in programming. I've been programming for
years, and I have no idea how to say 'software', 'hardware', 'class',
'inheritance', 'encapsulation', 'abstraction', 'refactoring' in Thai.

~~~
WalterBright
Back in the 80's, when C++ first became a thing, we tried to find Japanese
words for the concepts. Destructors became "Death Tractors", which I always
thought was awesome.

~~~
tanin
From your 'death tractors' example, now I understand why people are debating
changing 'master-slaves' to 'leader-followers'.

Thais wouldn't want to call their machines (or anything or anyone) 'slave'
with serious tone. It sounds offensive.

Thinking about it, native English speakers might have internal struggle about
many programming words.

As a non-native english speaker, rude/strange/crude/offensive words don't
really cause me emotional impact.

~~~
Freak_NL
Explicitly translating master/slave to my native Dutch just makes me chuckle.
It's like reading a rather upfront ad in the classifieds for folk who are into
bondage and discipline.

------
jnurmine
The Wikipedia list does not mention Tampio, an OO language where programs are
written in proper Finnish:
[https://github.com/fergusq/tampio](https://github.com/fergusq/tampio)

As an example, here is kertoma.itp (an example routine to calculate a
factorial):

    
    
      Pienen luvun kertoma on
          riippuen siitä, onko se pienempi tai yhtä suuri kuin yksi,
          joko yksi
          tai pieni luku kerrottuna pienen luvun edeltäjän kertomalla.
      
      Luvun edeltäjä on se vähennettynä yhdellä.
      
      Olkoon pieni muuttuja uusi muuttuja, jonka arvo on nolla.
      
      Kun nykyinen sivu avautuu,
          pieneen muuttujaan luetaan luku
          ja nykyinen sivu näyttää pienen muuttujan arvon kertoman.
      

It sounds basically like a small part of a mathematics lecture.

~~~
nikeee
The article also does not mention that not only Excel Formulas are localized,
but VBA was localized in Office 95 as well [1].

This is German VBA:

    
    
        Funktion VorherigerGeschaeftstag(dt Als Datum) Als Datum
            Dim wd Als Integer
            wd = Wochentag(dt) ' Wochentag liefert 1 für Sonntag, 2 für Montag usw.
    
            Prüfe Fall wd
                Fall 1
                    ' Auf Sonntag wird Datum vom letzten Freitag zurückgegeben
                    VorherigerGeschaeftstag = dt - 2
                Fall 2
                    ' Auf Montag wird Datum vom letzten Freitag zurückgegeben
                    VorherigerGeschaeftstag = dt - 3
                Fall Sonst
                    ' Andere Tage: vorheriges Datum wird zurückgegeben
                    VorherigerGeschaeftstag = dt - 1
            Ende Prüfe
        Ende Funktion
    

[1]
[https://de.wikipedia.org/wiki/Visual_Basic_for_Applications#...](https://de.wikipedia.org/wiki/Visual_Basic_for_Applications#VBA_unter_Office_95)

~~~
Freak_NL
The localisation of Excel goes even further. If I send a normal CSV file (that
is, one containing values separated with actual commas and newlines) to an
American, their Excel can open it.

If I send the same file to a fellow Dutchman, their Excel can't.

Excel, for some obscure reason lost in time, decreed that the Dutch do not, in
fact, separate their comma-separated values with commas. We use semicolons. No
one seems to know why Microsoft thinks we apparently do this. That means that
a normal bog-standard CSV file won't work by just double-clicking it or
opening it in Excel.

That's right: a Dutch comma-separated values file _must_ have semi-colons
according to Excel.

LibreOffice meanwhile works with anything you throw at it, in any language, of
course. It'll just ask you about the separators, defaulting to commas.

------
kevsim
One of my favorite online April Fools' gags from recent years was when it was
announced Scala would become Skala and all of the keywords would switch to
German [0]. `val` `var` and `def` would all keep their uniform length by
becoming `unveränderliche`, `opportunistisch` and `verfahrensweise` :-)

[0] [https://www.scala-lang.org/blog/2017/04/01/announcing-
skala....](https://www.scala-lang.org/blog/2017/04/01/announcing-skala.html)

~~~
maxxxxx
I worked with a German version of VBA for a little while. MS soon gave up on
this but it was a really weird experience.

~~~
cm2187
I thought VBA was always in english (syntax & APIs). Only excel formulas are
displayed translated in the regular Excel UI.

~~~
kalleboo
So I just so happen to have a PowerBook 540c here with a Swedish install of
Office 4.2.1, and had to check my memory, since I remember it being localized.

VBA on this machine has English keywords (Sub/Dim/If/While), but Swedish
application APIs (search in Word is Sök for instance). Screenshot of one of
the sample macros:
[https://i.imgur.com/vDWQcWk.png](https://i.imgur.com/vDWQcWk.png)

------
ivanhoe
One really annoying thing about using an English-based UTF8-capable
programming language with some types of non-English content (e.g. if it's in
Serbian) is that you have to switch between keyboard layouts constantly.
Sooner or later you end up forgetting to switch back and you start writing
your code in say, Cyrillic. And let me tell you, Cyrillic letter A looks
exactly the same as Latin alphabet letter A, but will happily break your
javascript in the craziest possible ways, like 2 vars not being the same even
though they look exactly the same.

~~~
geocar
Consider configuring your editor to highlight characters above 127.

------
qznc
It is a fun exercise to take a non-english language, look at its
idiosyncrasies, and design a programming language with that.

My native language is German. Some ideas:

* We can take nouns and combine them to longer nouns. A "list of objects" is "Objektliste". Parsing will be a challenge but it makes the language more terse and auto-completion is faster.

* We also have gender specific articles. It is "das Objekt" and "die Liste". We could use this to have three possible namespaces, so "der Foo", "die Foo", and "das Foo" would refer to three different things.

* All nouns start with an uppercase letter, so your loop index must be "I" or "J". We could have user-defined qualifiers (like const) which are distinct from variables because they start lowercase. So where you have to use @ in Python, we just use lowercase.

~~~
c3534l
> All nouns start with an uppercase letter, so your loop index must be "I" or
> "J". We could have user-defined qualifiers (like const) which are distinct
> from variables because they start lowercase. So where you have to use @ in
> Python, we just use lowercase.

Yeah, but i and j come from math. I've never seen a math paper where people
summed a variable using a capital subscript.

I think it might be more interesting to think about how you write a German
version of a language that is meant to be English-like. Something like SQL or
Cobol.

~~~
masswerk
Also, a loop index is a placeholder for a numeral, like "eins", "zwei",
"drei", hence

    
    
      Für i = 1 bis 2 ...
    

However, using articles,

    
    
      Für das I = 1 bis 2 ...
    

And we may want to use a "Doppelpunkt" and an exclamation mark, since this is
still a command:

    
    
      Für i: 1 bis 2!

~~~
masswerk
Extending on the importance of commands in the German language (and culture) –
these are a serious matter and not to be fuzzed with –, a computer featuring
an explicit fast-mode, like the Sinclair ZX81, may lend itself particlarly
well to a German language implementation:

    
    
      Für i: 1 bis 10, aber schnell!
    

;-)

------
Phemist
A somewhat related thing I've had on my mind:

I remember at my Dutch university we would get intro to programming courses in
Java. We would often discuss things in Dutch, but found it awkward to talk
about `null` (the "pointer") and `0` (the integer, which in Dutch is "nul").

In fact, I remember a distinct bug that happened from informal communication
of an API. The conversation went (in Dutch):

    
    
        Student 1 - "What does Function A return if the input is invalid?"
        Student 2 - "Nul"
        Student 1 - "Null?"
        Student 2 - "Yes".
    

And the program went on to crash on a divide-by-zero exception, because it
ended up only checking the return value for Null, rather than 0.

We ended up saying "null" as "naL", with heavy emphasis on the L and kept 0 as
"nul", to somewhat mitigate these problems. The awkwardness never really went
away.

I wonder if Guido van Rossum when designing Python intentionally bypassed this
issue by naming the null pointer "None". This is the only language I know of
that uses None, some use "nil" AFAIK, but the language issue (in Dutch) is not
avoided in these cases.

I also wonder if other non-native English speakers who wrote English-based
programming languages have applied similar considerations to avoid possible
confusion between the native language of the speaker and English.

~~~
aasasd
Ackchually, the proper pronunciation for English ‘null’ is supposedly /nʌl/:
[https://en.wiktionary.org/wiki/null](https://en.wiktionary.org/wiki/null)

~~~
Phemist
Interesting, that we gravitated towards a similar pronunciation due to a
conflict in the beforementioned terms. It's unfortunate that proper English
pronunciation does not always cross the North Sea :P. There are actually
plenty of words in English that I have only written and read, and have never
heard or spoken out loud... and I consider myself a decent speaker of English.

~~~
Symbiote
> There are actually plenty of words in English that I have only written and
> read, and have never heard or spoken out loud

… and I'm a well-educated native speaker.

English proudly possesses a prodigious panoply¹ of… um… phrase particles.

¹ I have never heard this word spoken.

~~~
Phemist
Hah, even simple words can be confusing. My English friends seem to end the
word `idea` with a, to my ears, clearly audible `r`, but look at me funny when
I mention it to them. Whereas my American friends seem to pronounce it in a
more straightforward way..

I also love listening to people speak the "pronunciation poem" out loud. It's
very interesting to hear how the pronunciation of each second word is changed,
just to make it rhyme with the first (mispronounced) word.

[https://www.learnenglish.de/pronunciation/pronunciationpoem....](https://www.learnenglish.de/pronunciation/pronunciationpoem.html)

------
dang
From 2016:
[https://news.ycombinator.com/item?id=11961223](https://news.ycombinator.com/item?id=11961223)

2013:
[https://news.ycombinator.com/item?id=6315913](https://news.ycombinator.com/item?id=6315913)

2009:
[https://news.ycombinator.com/item?id=524758](https://news.ycombinator.com/item?id=524758)

~~~
zeristor
So the posting is right on time

------
xeeeeeeeeeeenu
Perl in Latin:
[https://metacpan.org/pod/Lingua::Romana::Perligata](https://metacpan.org/pod/Lingua::Romana::Perligata)

~~~
totalperspectiv
Perl is so cool from a linguistic standpoint. I wish there were more written
about that aspect of it. Also Conway is amazing.

~~~
aasasd
I mean:

> _While in graduate school at the University of California, Berkeley, Larry
> Wall and his wife were studying linguistics with the intention of finding an
> unwritten language, perhaps in Africa, and creating a writing system for it.
> They would then use this new writing system to translate various texts into
> the language, among them the Bible._

And Perl was explicitly designed with a slant towards natural-language traits.
Wall has said that he didn't know as much about creating _programming_
languages, and that this likely affected Perl. So he might've written about
the linguistic aspects instead.

> _Wall 's training as a linguist is apparent in his books, interviews, and
> lectures. He often compares Perl to a natural language and explains his
> decisions in Perl's design with linguistic rationale. He also often uses
> linguistic terms for Perl language constructs, so instead of traditional
> terms such as "variable", "function", and "accessor" he sometimes says
> "noun", "verb", and "topicalizer"._

~~~
empath75
For a linguist, he made a horrifically unreadable language.

------
Doctor_Fegg
There was, of course, PHP's notorious Hebrew error message
T_PAAMAYIM_NEKUDOTAYIM:

[https://yvoloshin.github.io/php/2018/01/20/why-does-php-
spea...](https://yvoloshin.github.io/php/2018/01/20/why-does-php-speak-
hebrew/)

------
curtis
Programming languages and human languages are really not the same thing at
all, unless maybe you consider some extreme outliers like AppleScript[1]. It
seems like the choice of character set would make a bigger difference. Most of
the today's popular languages would seem to be strongly impacted by making
them compatible with code that is entirely in 7-bit ASCII. I don't know enough
about other character encodings to try to imagine how they might make for a
very different programming language design. What would a Chinese-influenced
programming language look like if its designer(s) had never had any exposure
to alphabetic or syllabic writing systems?

[1]
[https://en.wikipedia.org/wiki/AppleScript](https://en.wikipedia.org/wiki/AppleScript)

~~~
curtis
> _What would a Chinese-influenced programming language look like if its
> designer(s) had never had any exposure to alphabetic or syllabic writing
> systems?_

The first thought that came to mind as I was writing this was: some kind of
logographic APL. I don't actually know what such a thing would like, but I'm
sure I wouldn't be able to read it.

------
l8again
I was a skeptic, but Asad Memon's "UrduScript", although it could just as
easily be called "HindiScript" due to its usage of the Roman alphabet, made me
realize that this would have been a game changer in my freshman year or anyone
from the Indian subcontinent just starting to program. For Hindi/Urdu
speakers, the "why (kyun?)" section here -
[https://asadmemon.com/urduscript/](https://asadmemon.com/urduscript/) \- is a
fun read. Although I have always studied in an English medium school, I
distinctly remember being confused by the simple term "invoke". It was just
not a part of my regular vocabulary, and I felt it was something more
complicated than what it seemed. Turns out if I had something like UrduScript
I would have been more confident in my early days. Having said that, I think
such languages are most useful as a teaching aid rather than a serious
production language.

------
nullwasamistake
Many languages these days support Unicode, so you could technically write them
in whatever you want. I think it's great that the world has settled on a
popular, relatively easy to learn language. It helps immensely with sharing
open source libraries worldwide. However it would be nice if doc formats ala
Javadoc had provisions for translation.

------
interfixus
Having something like a global standard, inter-intelligibility between
languages etc. is an unmitigated Good Thing, and may it never change.
Apparently, my English-as-a-second-language compatriots Bjarne Stroustrup,
Anders Hejlsberg, and Rasmus Lerdorf agree with me.

~~~
zzzcpan
And it's not even about English, but about a subset of ASCII on a QWERTY
layout - symbols that are inputtable and explicitly marked on pretty much any
keyboard. Whether most keywords in a programming language are in English or
not is not even relevant. I mean if all keyboards had Greek symbols on them we
would have an article about non-Greek-based programming languages.

It's a good thing, I agree. There is no reason to worry either, as uncommon
hard to input unicode symbols in the core language is such a huge usability
failure, that those languages simply have no chance of gaining any significant
mind share.

~~~
planteen
Totally agree. Using non-Latin characters would be a non- starter for most of
the world.

------
lordgrenville
Possibly relevant here: a story about Donald Davies' inventing the work
"packet" (in the networking sense) from Katie Hafner's book _Where Wizards
Stay Up Late_ :

 __Davies ' choice of the word "packet" was very deliberate. "I thought it was
important to have a new word for one of the short pieces of data which
traveled separately," he explained. "This would make it easier to talk about
them." There were plenty of other possibilities — block, unit, section,
segment, frame. "I hit on the word packet," he said, "in the sense of small
package." Before settling on the word, he asked two linguists from a research
team in his lab to confirm that there were cognates in other languages. When
they reported back that it was a good choice, he fixed on it. Packet-
switching. It was precise, economic, and very British. And it was far easier
on the ear than Baran's "distributed adaptive message block switching." __

I wish that much thought went into other technical naming. (Looking at you,
grep.)

------
lurquer
I have a friend with a German shorthair pointer. Whenever I hear him refer to
the dog as a pointer, I briefly wonder if he’s referring to his dog, or if his
dog actually represents the location of another dog.

------
disqard
Since we're discussing this, I'd like to share my work with this community: a
programming by demonstration system, which doesn't use text [1]. One of its
advantages is that people of different non-English backgrounds can be part of
(say) the same introductory programming workshop, as long as one person can
learn and orally convey how to use it [2]. [1] www.blockstudio.app [2]
[https://dl.acm.org/citation.cfm?id=3174196](https://dl.acm.org/citation.cfm?id=3174196)

------
ocschwar
English's largely non-inflected, positional syntax makes it a good fit for
programming languages. Chinese would be better if not for the writing system.

------
amelius
I'd rather see a language with more math-like operator symbols (e.g. for-all,
element-of, union, is-proper-subset, etc) and an accompanying keyboard.

~~~
jodrellblank
Dyalog will sell you a keyboard to go with their APL:
[https://www.dyalog.com/uploads/images/Business/products/dk_r...](https://www.dyalog.com/uploads/images/Business/products/dk_rc.jpg)

∪ - dyadic downshoe is union (
[https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%u22...](https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%u222A%20%27a%27%20%27ab%27&run)
)

proper-subset isn't builtin; this might do it, but there are probably neater
ways

    
    
        'ab' 'cde' 'fg' {((≢⊆⍺)>≢⊆⍵)∧(≢⊆⍵)=+/⍺∊⊆⍵} 'cde' 'ab'
    

"If the count of items of the left vector is greater than the count of the
right vector (right side is smaller, it is proper), and the count of the right
vector is equal to the number of elements in the right vector which are in the
left vector (i.e. all of them are found, it is a subset)".
[https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%7B%...](https://tryapl.org/?a=%27ab%27%20%27cde%27%20%27fg%27%20%7B%28%28%u2262%u2286%u237A%29%3E%u2262%u2286%u2375%29%u2227%28%u2262%u2286%u2375%29%3D+/%u237A%u220A%u2286%u2375%7D%20%27cde%27%20%27ab%27&run)

Not sure it needs "for-all" because functions work on all elements by default.
It can have for: loops, but they aren't math-like.

------
Kiro
I don't get all the explanation going on in "Prevalence of English-based
programming languages". English is the lingua franca of programming so origin
is almost irrelevant. I'm Swedish but if I would develop a programming
language I would do it in English, even if it was only for myself so I don't
believe the "used English to appeal to an international audience" argument.

~~~
maxheadroom
> _...I would do it in English..._

Men du hade inte säga _varför_ du skulle skriver detta på engelska. Till
exampel, är engelska mycket bättre än svenska för som programmerarspråk?

------
ajuc
I've seen version of LOGO with all instructions translated into Polish used
for education in 80s/90s. It was pretty OK but it wasn't really based on
Polish, it wasn't using any features of Polish language, just translated the
English commands to make it slightly easier for the kids.

To make a programming language based on Polish that captures the core of the
language would be pretty strange - variable names would need to change
depending on the role of the variable in the expression, and the order of the
subexpressions in an expression shouldn't matter.

Function names should change too depending on which subject they are called,
and most of the time subject name should be skipped :)

~~~
umanwizard
Similarly though, I don't think any programming language is really "based on
English" or "captures the core of the [English] language", in any meaningful
way. So isn't the situation basically the same between English and Polish?

Just like Polish noun cases, I don't see how any of the interesting
distinctive features of English are captured by programming languages.

~~~
ajuc
Well English is analytic language, so the syntax of if, while, and positional
arguments of functions reflect that.

~~~
umanwizard
Good point.

------
vinayms
Until we program in natural language, I don't see why we must even bother with
this. Its fun but useless. For programming as it is today, its just a bunch of
English words that we have to learn. We can always comment and document in out
native languages if need be. I say this as an Indian, so obviously not English
native speaker. (To preempt the "colonial benefit of English" retort, I would
say I would say the same thing had USSR won the cold war and everything had to
programmed in Russian in Cyrillic. We just had to learn a few words even then,
assuming Soviet tech hadn't made NL based programming a reality.)

------
Groxx
[https://metacpan.org/pod/Lingua::tlhInganHol::yIghun](https://metacpan.org/pod/Lingua::tlhInganHol::yIghun)

    
    
        use Lingua::tlhInganHol::yIghun;
     
        <<'u' nuqneH!\n>> tIghItlh!
      
        {
            wa' yIQong!
            Dotlh 'oH yIHoH yInob 
                    qoj <mIw Sambe'> 'oH yIHegh jay'!
            <Qapla'!\n> yIghItlh!
        } jaghmey tIqel!
    

Perl makes me smile more than any other language I've poked at. There's an
absurd amount of flexibility available.

------
WalterBright
D has support for Unicode characters in identifiers, pretty much the same as C
does. But now I think that was probably a mistake. Some people use it, but
nobody who wants their code to be editable by the larger community.

~~~
robocat
JavaScript has virtually always supported Unicode variable names (well, the
basic multilingual plane).

[https://mathiasbynens.be/notes/javascript-
identifiers](https://mathiasbynens.be/notes/javascript-identifiers)

~~~
WalterBright
Sure, but do people in general use them?

~~~
robocat
If you don't know English (a lot of people) and you are writing a script for a
web page, you would use your own language.

Although compression tools replace the majority of symbols with short Ascii
symbols, so it may not show in the final packed code.

It looks like the closure compiler emits Ascii only, using escapes for Unicode
symbols that are not transformed.

------
zzo38computer
In computer programming I will use American language, even if the
documentation is Canadian (I am Canadian, so I write Canadian documentation
even though the commands in the program itself will be American).

However, you can also have programming languages with abbreviated keywords or
no keywords, which is also sometimes suitable. If there are keywords, I will
always do it in American.

(And when writing music, I will write all of the notation in Italian, even
though I do not speak Italian. If I don't know the Italian word for something,
I will ask someone who does know, and write that.)

------
gizmoduck
I didn't know about Enkelt[0,1] but I guess this changes things:

```

Enkelt >> var första = "Nej! Jag ville inte att skriver detta!"

Enkelt >> skriv($första)

Nej! Jag ville inte att skriver detta!

```

Pro-tip: You can use LLVM for non-ASCII naming, if you don't want to stick to
Enlish-only letters.

[0] - [https://enkelt.ml/index.html](https://enkelt.ml/index.html)

[1] -
[https://trinket.io/embed/python/10bb0ea708?outputOnly=true&r...](https://trinket.io/embed/python/10bb0ea708?outputOnly=true&runOption=run&start=result)

------
DonaldFisk
There are only a few reserved (English) words, most of which are shared among
different programming languages. Why is this any more of an issue than all the
Italian words used in musical notation?

~~~
ajross
It's not, it's just fun to think about. Likewise french dominance of culinary
terms, etc..

What I find more interesting is actually how _removed_ from spoken English
most programming language reserved words are.

Taking C and derivatives: "if" is pretty close, and "while" captures the
meaning of the word but not its typical usage. The meaning of "return" is
correct, but jargon (yes, you're "going back" to where you were called from,
but that's not what people mean when they use the word normally). But from
there it gets weird fast: "else" reflects a somewhat odd sense of the word
that sounds archaic and stilted in human communication; "for" and "break" have
little to no connection to spoken language at all.

As far as type names: "int" makes sense if you took high school math, and
"char" abbreviates a real word that no one uses ("letter" is the one we get
taught in school). But no amount of literacy is going to tell you what
"short", "long", "double" or (weirdest of all) "float" mean, those are all
terms of art you need to learn from scratch regardless of what language you
speak.

~~~
umanwizard
"int" doesn't really make sense from a mathematical perspective, since ints in
e.g. C are a finite set that is not closed under addition or multiplication.

So I think it's actually a good example of your broader point, that the
meaning of English words as programming keywords is often very different from
their meaning in other contexts.

~~~
ajross
> finite set that is not closed under

The discussion was about programming languages and English. What on earth is
this about?

You're actually compounding the issue here, by invoking jargon from a
different field. That's true of the definition of integers you'll find in
college level math textbooks, but the _word_ "integer" as understood by normal
people (even computer programmers) means "whole number", which is why the type
is named that way.

~~~
umanwizard
My point was that 10^1000000000 is a valid integer according to the high
school (or college) definition, but not in most implementations of c++.

------
nsonha
(non-native speaker, learned programming before English) I think this is a bad
idea for a few reasons:

\- More languages = more barriers. Gosh we have enough problems with silos
within the software dev community as well as languages in real life being one
of the main hindrance to mobility. \- Learning how to program is a great
opportunity to refresh your mind and adopt a new way of thinking, why carrying
along the burden of your flawed human language?

------
basementcat
Today is a good day to code.

[https://esolangs.org/wiki/Var%27aq](https://esolangs.org/wiki/Var%27aq)

------
gabordemooij
Shameless plug here, but I am creating a programming language that tries to
let everyone code in their native language and also 'translates':
[https://citrine-lang.org/](https://citrine-lang.org/) Might be interesting
for people reading this topic. Nobody uses it of course but I like to work on
it. ;-)

------
Tepix
I vaguely remember reading about a fuckup where the translation department of
a company (I believe it was Microsoft) accidentally translated the entire
programming language (I believe it was PostScript) into German. Of course you
were no longer able to print using the german version of PostScript.

Does anyone else know what I'm referring to? It was probably in the late 90s.

------
k__
Wasn't it possible to programm in different languages in VB/A? At least some
co-workers told me so.

Something about VB in German.

~~~
BrendanCoughlan
Yep, VBA had localized keywords. The standard functions still were named in
English though, so the weirdness didn't even buy significant localization.

Almost 20 years ago I wrote some Excel macros on an even then ancient Windows
3.1 computer with German Excel. I tried for Hungarian notation (as I said,
almost 20 years ago) and used d for date. So the end date of some range was
dEnde. D is also the first letter of Datei, which is German for file. So when
I brought the Document to the boss's newer computer the program got translated
but all the variables still had German names except for dEnde, which turned
into EOF.

------
iso-8859-1
Lamdu supports switching human language on-the-fly now, good luck doing that
with a text-based programming language!

[https://www.youtube.com/watch?v=viF1bVTOO6k](https://www.youtube.com/watch?v=viF1bVTOO6k)

------
Newtonip
In my elementary school, we used a French version of Logo Writer along with a
French language special purpose library called Caméléon to learn robotics
programming.

------
zeristor
It says non-English but more specifically the spellings are American for the
most part.

At least the one’s I’ve used, apart from BBC BASIC, and ZX BASIC

------
zeristor
What features in a human language would make it the optimal basis for a
computer language?

~~~
ocschwar
The degree to which words are inflected by context. In English, it's almost
nil. In Chinese, it's nil. Lingua Romana Perligata is an amusing example of
how to use a heavily inflected language for programming, but it shows why you
don't really want to do that.

~~~
b2gills
I've heard that Perligata has actually been used in production. (It was
similar to their native language.)

