Slashdot Mirror


Non-English Programming Languages?

jjohnson asks: "As a coder I've been exposed to a lot of programming languages, big and small, and they're all in (pseudo) English, reflecting their invention and development in English speaking countries (or to gain traction in English speaking countries, such as Ruby). Of course, there's no reason a programming language couldn't be developed in Russian, using a cyrillic character set; or Chinese, using kanji; or Japanese, using hiragana. All three of those nations have big/advanced enough developer communities to justify the development of native-tongue programming languages, which have the obvious benefit of not requiring their developers to learn/code in a foreign language. What non-English programming languages exist, and how do they compare?"

39 of 191 comments (clear)

  1. Google by marco0009 · · Score: 4, Informative

    Thank you google for your infinite wisdom:
    http://www.sciencedaily.com/encyclopedia/non_engli sh_based_programming_languages

    --
    Physics makes the world go 'round.
    1. Re:Google by Profane+MuthaFucka · · Score: 3, Informative
      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    2. Re:Google by sharkdba · · Score: 2, Insightful

      Thank you google for your infinite wisdom

      It's not wisdom, it's knowledge. Indexed and searchable, but still only knowledge. Wisdom is knowing which information is relevant to context at hand, AND what to do with this knowledge.

      --
      The purpose of life is to find the purpose of life.
  2. lots o' dupes today by Anonymous Coward · · Score: 2, Informative
  3. Many of them... by addaon · · Score: 3, Insightful

    Any language which doesn't define a core of keywords, but instead just has functions that can be overridden... and which supports unicode. Variants of lisp anf forth qualify, off the top of my head. Of course, languages with only a few keywords, like java, are amenable to trivial pre-processing of those keywords, and also support unicode right out of the box.

    --

    I've had this sig for three days.
  4. What do you want, universe? by Michael.Forman · · Score: 4, Interesting

    Klingon Var'aq.

    Example:
    Name: hello, world
    Dialect: English
    Version: 5 June 2000
    Comments: Not the canonical var'aq "hello, world"; actually prints "What do you want, universe?" in Klingon

    ~ nuqneH { ~ 'u' ~ nuqneH disp disp } name
    nuqneH

    Michael.
    --
    Linux : Mac :: VW : Mercedes
  5. brainfuck by kwoff · · Score: 2, Funny

    brainfuck though, granted, it's still in ASCII.

    1. Re:brainfuck by Frnknstn · · Score: 2, Funny

      If you prefer you language colourful, try f*ck f*ck.

      --
      If it's in you sig, it's in your post.
  6. Re:Swedish Chef BASIC - optimized! by Tumbleweed · · Score: 2, Interesting

    10 PRINT "BORK!"
    20 GOTO 10

    See - 1/3 reduction in code!

  7. Translated Visual Basic by Scarblac · · Score: 2, Informative

    Ah, apparently the submitter hasn't heard of the horror that is (was, I hope) translated VBA. If you had a Dutch version of Office, your Visual Basic was Dutch as well. That is, the language itself. A FOR..NEXT loop was something like a VAN..NAAR loop (I have only seen this stuff, not coded in it).

    I can't find the right Google keywords at the moment to find an example, but it was horrible, and of course totally incompatible with other versions...

    --
    I believe posters are recognized by their sig. So I made one.
    1. Re:Translated Visual Basic by Anonymous Coward · · Score: 3, Interesting

      and of course totally incompatible with other versions...

      That's not true - it's totally compatible, and in fact even translates itself. If you make your Excel document using a French version of Office, and then open the same document in an English version, all the code has miraculously become the standard VBA that we all know and (possibly) love.

  8. None English programming languages? by LWATCDR · · Score: 4, Informative

    As far as I know there are none.
    The reason is pretty simple. English is probably the most commonly spoken language for business and science on the earth today. Before someone says that there are x billion Chinese yes they are but there are many dialects of Chinese and also of Hindi. Also a very large percentage of the Computer industry is centered in the US. I just do not think that there is any other language that has so many educated speakers. If you want to be an Airline pilot in any country in the world you must speak english. Yes a Russian airline pilot landing in Germany will speak to the towner in english. Or back in the 1800s French was the language of Science. For now it is English that is more or less the universal language.

    --
    See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    1. Re:None English programming languages? by LocoBurger · · Score: 3, Funny

      Yup, French was pretty universal, at least in the west, hence the phrase 'lingua franca' which practically means 'the language that you can use everywhere' but literally means 'the French language,' (in Latin, no less..). I think..

      Anyway, speaking of French, I knew a guy in college who had programmed C in French. All you need to do is fiddle with where the keywords are defined in the compiler. So he was writing 'durant' and 'pour' loops, along with 'si' statements. Pretty whacky..

      In French, though, 'C++' is 'Ç++'. Cool huh? :)

    2. Re:None English programming languages? by Otter · · Score: 4, Insightful
      An interesting story someone once posted here -- he was living in a Central American country and asked a developer if he found it uncomfortable to code in a foreign language. The developer asked him if he could read music. He could. The developer asked him if he was bothered by the Italian used in the instructions (or whatever they're called). Never occurred to him to worry about it.

      Explained the developer: Well, just like an "allegro" or "pianissimo" is just the historical way music is annotated, "switch" and "if" are, for historical reasons, the way code is written.

    3. Re:None English programming languages? by Prior+Restraint · · Score: 2, Informative

      In French, though, 'C++' is 'Ç++'.

      Why would they do that? The letter "C" in French is pronounced much like the word "say" in English. The only point of the cedilla is to soften what would otherwise be a "hard c," such as in façade and François. "C" by itself already has a soft sound.

    4. Re:None English programming languages? by Glonoinha · · Score: 2, Interesting

      It also might have something to do with the origins of the technology, most of the original inventing engineers coming from English speaking backgrounds.

      Perhaps had Grace Hopper been German she would have coined the phrase 'Computerwanze' instead of 'Computer Bug'.

      --
      Glonoinha the MebiByte Slayer
    5. Re:None English programming languages? by Methuseus · · Score: 2, Funny

      I have to say that not everywhere has someone who speaks English. I was driving cross-half-country in the US and stopped for gas in a small town down south. All the signs were in English, but nobody seemed to speak it.......

      --
      Two things are infinite: the universe and human stupidity, though I'm not yet sure about the universe. - A Einstein
    6. Re:None English programming languages? by DNS-and-BIND · · Score: 2, Funny
      At least he didn't call Chinese characters "kanji".

      Fucking anime nerds. Diediedie.

      forgot the http in the link, fixed

      --
      Shutting down free speech with violence isn't fighting fascism. It IS fascism!
    7. Re:None English programming languages? by raju1kabir · · Score: 3, Funny
      Why would they do that? The letter "C" in French is pronounced much like the word "say" in English. The only point of the cedilla is to soften what would otherwise be a "hard c," such as in façade and François. "C" by itself already has a soft sound.

      Duh. Anyone knows that a C followed by a + in French takes on a hard sound unless mollified by a cedilla. Je suis sic+ et tired de votre nonsense.

      --
      "Patriotism is your conviction that this country is superior to all other countries because you were born in it." -- GBS
    8. Re:None English programming languages? by tverbeek · · Score: 2, Interesting
      there have been four "lingua francas" in history: Greek, Latin, French and English.

      As others have pointed out, Frankish (not to be confused with French) was a lingua franca. For several centuries, if you wanted to study the sciences or mathematics, you did it in Arabic (from whence came our numerals). Swahili has served a similar "common language" role in Africa, and I'm sure there are others from the pre-Columbian Americas, Asia, and other regions.

      --
      http://alternatives.rzero.com/
    9. Re:None English programming languages? by AndyElf · · Score: 2, Interesting

      One needs to remember that an imprtant property of English is that it is a lot more structured than many other, et least European, languages. There ar eno gender changes of verbs/adverbs/adjectives. Plurality is easily indicated by adding an 's'. Irregular verbs? But that's just a hash table, if you wish. There is really only one correct way of combining words in a sentence. Words are relatively short.

      Compare that to, say, Slavic languages -- you'd pretty much have to know all relevant "attributes" of each known word in a language to for sure use it correctly. Or even French or German -- you at least need to know gender of each word to use it correctly.

      None of that nonsens in English -- making it possible to write Perl programs that can almost be read (yeah, I know, it can also be written in Perl in such a way that one may need a crypoanalytic to decipher the meaning). Or come up with languages like AppleScript that look almost like proper English.

      That said, replacing tokens in a programming language grammar with word in a different language does not really constitute such a great achievement. What would have been a good example is the use of certain properties of some natural language that make it possible to use as a basis for an efficient programming language! I remember reading somewhere that there's been some hopw for Sanskrit to provide something like that -- yet my memory is to flaky to remember the details and reasons behind that... It was ling before the outsourcing plague, though (not that many Indians speak Sanskrit anyway).

      --

      --AP
  9. Not too difficult... by BobTheJanitor · · Score: 4, Funny

    With a bit of Lex and Yacc, it should be pretty simple to come up with a C++ variant in any given language. When I was in college, some friends of mine and I wrote a compiler in ebonics, called Eubonicode. Granted, I don't know how well lex/yacc cover non-ascii character sets, but it wouldn't be hard to whip up a compiler for a French, Spanish, or German version of C++.

    1. Re:Not too difficult... by Glonoinha · · Score: 2, Interesting

      Oh man that is hilarious.

      Actually as a side project in college I wrote a Pascal to C compiler (wrote it in Pascal) as a hack to get my way through all those pesky C coding homework problems in a hurry. I was a long time Pascal coder and fairly new to C, didn't particularly care for the syntax of C. I would do the C homework in Pascal, run it rhrough my pre-processor to convert the Pascal versions of the homework to C, compile the output in TurboC and Voila! I was done in half the time.

      I have hence learned to love C, for the record.

      I guess someone could do the same thing, take all the keywords and translate them, write your own 'language' using those, and write a YourLanguage to C compiler to pre-process the source code before compiling it as regular C in your C compiler.

      --
      Glonoinha the MebiByte Slayer
  10. Bad Idea by Captain+Rotundo · · Score: 3, Insightful

    I am sure there are or were some non-english programming languages (and even as a native english speaker I've thought about this problem myself). But, and its a big but, right now using english gets you access to the most diverse and largest audience (except maybe mandorin, but even there your talking basically the chinese (mandorin is not generally taught as a second language as widely as english).

    With the internet and the "global economy" it makes NO sence to have a localized language, unless your a proprietary developer that doesn't want you code to have the longest life it could :)

    You may think I am just saying this because I speak english so of course I think english should be the most used, but I honestly can tell you I would be quite happy to learn another language as best I could if english weren't the primary communication language for programming (and most anything really). I would obviously be severely inconvienenced, but no more so that maybe people whose software I use now.

    Maybe the best choice would be to have translatable keywords for a language, because the syntax really doesn't match english in all cases anyway. Of course translatable keywords would become a nightmare quickly due to the severe limitation on variable names etc, for instance how could you ever choose a word and be sure the language wouldn't end up need that for "if" in some language you never heard of?

    As far as different character sets, this becomes a non-issue as all software moves towards unicode and UTF-8 (or equivalent) encoding. Once that happens you can for get about worring about character sets (and its happening fast).

    1. Re:Bad Idea by Tux2000 · · Score: 2, Insightful
      Maybe the best choice would be to have translatable keywords for a language

      Have you ever seen Visual Basic for Applications in a localized version of MS Office? It really hurts the eye. If you have ever coded an advanced hello world programm in nearly any language, you know what a FOR loop looks like. If you look at VBA with translated keywords, you can't see anything but bla bla because of the translated keywords.

      English is very helpful for keywords because you can understand english sentences no matter what order the words are in ("to station go now I"). In other languages (like german and french), order of words is more important, so the pseudo-english grammar of many computer languages does not match the translated keywords. It is simply much harder to read german with a pseudo-english grammar than reading english with a pseudo-english grammar.

      I use to code completely in english (including comments and docs) for about 5 years now. It is just easier to read than mixing german comments and message strings with the english grammar of the language. And it has the nice side-effect that others can read my code without the babelfish.

      BTW: See also Scarblac's posting "Translated Visual Basic" for a nice comparison to music and its italian "keywords".

      Tux2000

      --
      Denken hilft.
  11. LOGO by agdv · · Score: 2, Insightful

    I used to program in LOGO in elementary school, and the version we used was in Spanish. Might have been translated to other languages as well.
    So what if it was interpreted rather than compiled, and it was a very limited program made for children, it was a programming language, so stop laughing, all of you.

  12. Perl ... by Tux2000 · · Score: 3, Funny

    ... completely without letters if you do it right! ;-)

    --
    Denken hilft.
    1. Re:Perl ... by babbage · · Score: 2, Interesting

      Completely without letters? Slacker. How about a method for removing all those unsightly printable characters?

      SYNOPSIS

      use Acme::Bleach;
      print "Hello world";

      DESCRIPTION

      The first time you run a program under use Acme::Bleach, the module removes all the unsightly printable characters from your source file. The code continues to work exactly as it did before, but now it looks like this:

      use Acme::Bleach;

      And if that's too much for you, and you just want to smoothe over all those confusing operators, you may want to have a look at Acme::DWIM, which just Does What I Mean:

      Acme::DWIM - Perl's confusing operators made easy

      SYNOPSIS

      use Acme::DWIM;
      my ($x) = +("Hullo " x 3 . "world" & "~" x 30) =~ /(.*)/;
      $x =~ tr/tnv/uow/;
      print $x;

      DESCRIPTION

      The first time you run a program under use Acme::DWIM, the module replaces all the unsightly operators et al. from your source file with the new DWIM operator: ... (pronounced "yadda yadda yadda").

      The code continues to work exactly as it did before, but now it looks like this:

      use Acme::DWIM;
      my ($x) ... ...("Hullo " ... 3 ... "world" ... "~" ... 30) ... /(...)/;
      $x ... tr/tnv/uow/;
      print $x;

      Share and Enjoy! If you thought these were fun, thank Damian Conway -- he's a veritable fountain of this kind of inspired Perl silliness.

  13. Translated Hebrew Basic by udif · · Score: 2, Interesting

    Back in the DOS days, an Israeli company called "248 software" created a translated BASIC interpreter, complete with Right-to-left line entry:
    5 TO 1 = X FOR 10
    "HELLO" PRINT 20
    NEXT 30
    (sorry for lack of right-alignment - I couldn't get this to work in the comment window. Just assume the lines above are right aligned).

    substitute the regular keywords with the equivalent hebrew words in a hebrew font, and you get the idea.

    Notice that unlike the keywords here which are left-to-right, the hebrew keywords are actually read right-to-left, so the only thing on the line read left-to-right are the numbers.

  14. In Russian by AndyElf · · Score: 2, Interesting

    There most certainly were quite a few, and not only programming languages, but also OSes. One of programming languages that comes to my mind is Rapira (). If you do a search you'll get quite a few references to it. I always had a problem with this sort of "localized versions" -- especially in Slavic lannguages: our average word length is longer than English (hence lots of abbreviations in these laguages), most of computer terminolgy is anyway borrowed...

    Just the same I am generally having big problems with localized Excel -- I once saw my mothers excel worksheet (Russian version) and could not figure out half of the formulas!

    --

    --AP
  15. C ? by noselasd · · Score: 5, Interesting

    "#define" is your friend.(enemy..)

    #define if hvis
    #define do gjør
    #define while sålenge
    #define return returner
    #define void ingenting
    #define char karakter
    #define const konstant
    typedef int tall;

    tall lengde(konstant karakter *p){
    tall i = 0;
    sålenge(*p){
    i++;
    p++;
    }
    returner i;
    }

    1. Re:C ? by sweet+cunny+muffin · · Score: 2

      You might want to learn to program in English before you try another language. All your #defines have the two parameters the wrong way round.

  16. Re:When you mention lisp by notfancy · · Score: 3, Informative

    CAR (Contents of Address Register) and CDR (Contents of Decrement Register) are effectively mnemonics for what we call nowadays (in ML or Haskell) the hd (head) and the tl (tail) of a list.

    But, since in Latin head is caput and tail is cauda, you could say that CAR stands for CApite Regesta (literally, "what's written at the head") and CDR for CauDa Regesta ("what is written at the tail")! The Classicist purists among you will probably find that a better non-etymology would be "CApitis Recensio" and "CauDae Recensio", but who's worrying anyway. Then of course, you have that CONS is also Latin for "CONStruo".

  17. Re:Swedish Chef BASIC - optimized! by RevAaron · · Score: 3, Funny

    Except, that illustrates the problem precisely. If it truly were Swedish chef, the words "PRINT" and "GOTO" would be in their Swedish equvalents. And since I don't speak Swedish, I'll approximate:

    10 DRUCKENJORGESPORGE "BORK!"
    20 GEHENJASUREj00BECHA 10

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  18. English: de facto standard by StarWynd · · Score: 2, Insightful

    Whether you like it or not, English is the de facto standard of computer languages. While it would make sense to write programs in your native language, eventually you will reach the point where you need to work with others around the world.

    While in college, I had to work with graduate students from India and China. We couldn't understand each other all the time, but we could read each other's code. I'm now in industry, but my company does work all over the world. It's pretty normal in my industry to have distributed project teams. With the advent of the internet, distributed projects have become more and more common. And we will probably see a rise in distributed companies, such as MySQL AB. A company like this couldn't exist if there weren't some sort of language standard.

    Personally, I don't care what spoken language is decided on, but consider that the majority of developers in the world can speak English. Given that, it just makes sense to keep things in English as it will require the fewest number of people to have to learn a language.

  19. Programming in a Mother Tongue by Mike+Wilson · · Score: 3, Informative

    If I remember correctly, Mitarou Namiki wrote a paper exploring this. The reference seems to be:

    T.Souya, E.Hayakawa, M.Honma, H.Fukushima, M.Namiki, N.Takahashi and M.Nakagawa, "Programming in a Mother Tongue: Philosophy, Implementation, Practice and Effect", The 15th Annual International Computer Software & Application Conference, pp.705-721, 1991.9

    See his 1991 papers listing and his lab's website.

    I talked with him about it ten years ago. I have a copy of the paper or maybe a similar one somewhere, but it's in japanese and I never allocated the hours I need to read it.

  20. Perligata by babbage · · Score: 3, Interesting

    How does Latin Perl sound to you?

    The Sieve of Eratosthenes is one of oldest well-known algorithms. As the better part of Roman culture was ``borrowed'' from the Greeks, it is perhaps fitting that the first ever Perligata program should be as well:

    #! /usr/local/bin/perl -w
    use Lingua::Romana::Perligata;
    maximum inquementum tum biguttam egresso scribe.
    meo maximo vestibulo perlegamentum da.
    da duo tum maximum conscribementa meis listis.
    dum listis decapitamentum damentum nexto
    fac sic
    nextum tum novumversum scribe egresso.
    lista sic hoc recidementum nextum cis vannementa da listis.
    cis.

    The use Lingua::Romana::Perligata statement causes the remainder of the program to be translated into the following Perl:

    print STDOUT 'maximum:';
    my $maxim = <STDIN>;
    my (@list) = (2..$maxim);
    while ($next = shift @list)
    {
    print STDOUT $next, "\n";
    @list = grep {$_ % $next} @list;
    }

    Note in the very last Perligata statement (lista sic hoc...da listis) that the use of inflexion distinguishes the @list that is grep'ed (lista) from the @list that is assigned to (listis), even though each is at the "wrong'' end of the statement, compared with the Perl version.

    And you too can do this !

    Actually, Perligata is more serious than it may seem.

    On one level, it uses Latin -- which packs much of the meaning of sentences into word endings rather than word order -- as a case study for a programming language that doesn't enforce a particular mandatory word order on language statements. That is, in English, "boy chases dog" has a much different meaning than "dog chases boy", but in Latin you could write it either way because the inflection on the words controls the meaning. Likewise, in most programming languages, x = y has a different meaning than y = x, but if you had a language that was agnostic about "sentence order" then you could write it either way. Using Latin allowed him to demonstrate this in practice.

    Why would anyone care? Well, when Perligata was written, Perl6 was just starting to be considered, and Damian was wondering what core concepts had to be maintained and which were open to revision. Among the assumptions he wanted to consider was word order, and Perligata is a case study in how you can throw it out the window without breaking anything.

    Coming down to Earth, this technique could have other applications as well. For example, the techniques used in Perligata could be applied in a source filter to convert VBScript to Perl at run time. There are issues to consider, of course, but it could work, if you wanted it badly enough. To cite a real example, one of the core plans for Perl6 is that it should be able to run existing Perl5 code, and the techniques demonstrated in Perligata will probably be used to make that possible.

    Likewise, the object framework for Perl 6 is very flexible, allowing people to hand-roll almost any style of OO programming they are comfortable with. If you pair this with things like the built in Unicode support (and, allegedly, no obstacles to using Unicode symbols directly in Perl6 code for things like variables, functions, overridden operators, etc), there's no reason why people couldn't prepare "localized" versions of Perl6. It'll be interesting to see if this ends up happening, but I wouldn't be surprised at all if

  21. Plenty of 'em by GCP · · Score: 2, Interesting

    Written Chinese served the same role in Asia that Latin was serving in Europe. Pasar Melayu ("market Malay") is a language I learned to get by in places from Thailand to Papua New Guinea.

    There have been, and continue to be, lots of linguae francae.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  22. Unnecessary by GCP · · Score: 2, Interesting

    I've done a lot of work with Japanese developers. They have no more interest in a "Japanese" programming language than they have in a pocket calculator that used kanji digits instead of Western digits.

    The 52 letters, 10 digits, and handful of special characters in ASCII are easy for them to both read and type on local keyboards, and keywords like "if" and "while" are already familiar to most Japanese older than about 10 or so.

    I'm not saying they speak English well. In general, they don't. I'm saying that writing code in symbols composed of ASCII characters is so much easier than English and so much like other things they do in school that it just isn't a problem.

    The same is true for Chinese and Koreans, and if it's barely a challenge for them, it's nothing for most other cultures.

    By the way, I *have* seen a Japanese BASIC that used katakana keywords. It was apparently intended for 12 yr olds, but even they rejected it as no easier than ordinary BASIC.

    Though there is a much stronger argument for local-language identifier names, the programming language itself doesn't need translated keywords.

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."