SamBam 6 years ago

I was interested in hearing what using Arabic as a scripting language might do to change how code might be written -- not just a translation of words, but are there features of a language that are distinct from English that it would actually change our assumptions about a scripting language?

The video mentioned how the ligatures of Arabic can stretch, to allow fixed-width justification, which was neat, although it doesn't actually change our notions of scripting.

Consider, for instance, if English didn't have any imperative form, and instead everything were a request. Would declarative languages like Prolog have been the default?

Perhaps the most interesting thought experiments along this vein could be for conlangs. Can we write a conlang that is more elegant, meaningful, even beautiful for scripting?

Here's an quote from a New Yorker article on conlangs:

> Ithkuil has two seemingly incompatible ambitions: to be maximally precise but also maximally concise, capable of capturing nearly every thought that a human being could have while doing so in as few sounds as possible. Ideas that could be expressed only as a clunky circumlocution in English can be collapsed into a single word in Ithkuil. A sentence like “On the contrary, I think it may turn out that this rugged mountain range trails off at some point” becomes simply “Tram-mļöi hhâsmařpţuktôx.”

https://www.newyorker.com/magazine/2012/12/24/utopian-for-be...

  • gambler 6 years ago

    >Consider, for instance, if English didn't have any imperative form, and instead everything were a request. Would declarative languages like Prolog have been the default?

    You realize that this is the foundation of classic OOP, right?

    http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-...

    Alan Kay: "The big idea is "messaging" -- that is what the kernal of Smalltalk/Squeak is all about (and it's something that was never quite completed in our Xerox PARC phase). The Japanese have a small word -- ma -- for "that which is in between" -- perhaps the nearest English equivalent is "interstitial". The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be."

  • fanf2 6 years ago

    > if English didn't have any imperative form, and instead everything were a request

    INTERCAL statements all start with a "statement identifier"; in INTERCAL-72, this can be DO, PLEASE, or PLEASE DO, all of which mean the same to the program, but using one of these too heavily causes the program to be rejected

fxj 6 years ago

Visual Basic for Applications has localized Versions. Here is an Example in german, so why not in arabic?

  Funktion VorherigerGeschaeftstag(dt Als Datum) Als Datum
    Dim wd as 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

https://de.wikipedia.org/wiki/Visual_Basic_for_Applications

  • VMG 6 years ago

    > Dim wd as integer

    Ausgelöst

    • jannes 6 years ago

      Triggered?

      • VMG 6 years ago

        well I expected `Dim wt als GanzeZahl`

  • runxel 6 years ago

    Thanks, I hate it!

    It's like how every function in Excel is translated as well. `=SUMMEWENNS(…`

    Complete nonsense, it makes my eyes bleed.

    • alexis_fr 6 years ago

      Keyword translation poses MAJOR problems when you open the Excel file on another computer, indeed.

      Unfortunately, Excel files were more often opened on other computers than Java files...

      To be inclusive is hard. Even if we imagine one Excel version per continent, all Latin-based people would be ok, it would also suit countries that can be globalized under the Chinese or Arabic areas. But the offshore situations with 2 different continents wouldn’t work well.

      And sooner or later you end up with one Excel version per alphabet. Russian, Tamil, Farsi, etc.

    • dunkelheit 6 years ago

      For some reason I've always found programming language keywords translated to my native language extremely cringeworthy. I wonder if native English speakers get the same experience for mainstream programming languages or it is just a consequence of novelty.

      • munmaek 6 years ago

        The words aren’t cringeworthy but having to decide them leads to arguments over what precisely to name something.

  • Tepix 6 years ago

    Seems extra weird to use German VBA yet not use umlauts.

  • microtherion 6 years ago

    German manuals can be weird enough. I still remember one that explains the DEC(x) function as "erniedrigt eine Variable" (It's true that "erniedrigen" can sort of mean "decrement", but it mainly means "degrade").

    • f1refly 6 years ago

      It's the correct mathematical term for that operation in german though

  • bdcravens 6 years ago

    Feels close enough that I was able to read it. By context, I think I could learn a few German words this way.

Animats 6 years ago

Oh, it's just an art project.

We haven't yet seen a serious non-English programming language. One would have expected one in Chinese or Japanese by now. There was COBOL in French, once, with French words and word order, but it never caught on, even in Francophone countries.

  • JusticeJuice 6 years ago

    > Oh, it's just an art project.

    Little dismissive don't you think. I get your point, but don't undervalue this project.

    • etaioinshrdlu 6 years ago

      Well, it was done for an art collective and displayed in a museum... it is at least an art project.

      • darkwater 6 years ago

        I think parent was referring to that "just"

  • Santosh83 6 years ago

    A translator that takes say C code written in a non-English language and spits out ASCII C (except for variable/function names) ought to be simple.

    • est31 6 years ago

      Providing a mapping from utf-8 to ASCII is easy, e.g. punycode. The problems arise when it comes to things like checking equality of two identifiers, as it becomes non-trivial in general Unicode: https://unicode.org/reports/tr10/

    • JBorrow 6 years ago

      Well, yeah. That already exists if you go to any non-english speaking country and look at the coursework of people doing introductory C classes...

      #define pour for #define ent int etc...

      I think these don't really capture the whole idea around creating a programming language in another language, though...

  • drran 6 years ago

    1C is popular programming language in Russian.

  • black_puppydog 6 years ago

    My SO works on a project with leeeeeegacy software that still uses an RDBMS/OS combination (yes, it's one product. don't remember the name) in French.

    `SELECTIONNER * DE clients TRIER PAR ...`

    • usrusr 6 years ago

      So, an SMBDR/SO? ;)

      (sorry for the bad joke, I'm just kind of fond of French acronym mangling. The vocabulary is similar enough to English to to keep the letters the same in many cases, only the order is off. It's bit like verlan for the rest of the world)

  • jansan 6 years ago

    There were localized versions of Visual Basic for Applications in Office 95, at least there was a German one. I had the "pleasure" to use it once, and I can tell you it was no pleasure at all. The first problem was that for some keywords there is no obvious translation (for example "if" can be translated to "falls" or "wenn"), so I had to look up the keywords again and again. Then of course it wasn't easily possible to transfer code snippets from English VBA projects, so everything had to be converted (by hand at that time). And for some reason certain keywords were not localized at all (for example 'DIM'). Turned out the whole localization was a horrible idea.

    Here is a piece of code in German VBA for Excel 95: https://de.wikipedia.org/wiki/Visual_Basic_for_Applications?...

    • ahje 6 years ago

      Yeah, the translated VB functions in Excel are a nightmare, especially when one works in a multi-lingual workplace. If you haven't heard finns complain about things being in Swedish before, then I can recommend handing them an excel-sheet with the VB code in Swedish and watch the chaos unfold. :D

      • C1sc0cat 6 years ago

        Not function related but I work in a very international org and when excel traverses international boundaries you get strange effects.

        Changing some accented characters in a well known brand name into strange ones used in "obscure Serb Croat religious documents

    • probably_wrong 6 years ago

      This is the bane of my existence when working with Excel. I'm spending too much time figuring out that "RAND" (which is what you'd find in search) is "ZUFALLSZAHL" in German Excel (which I use at work) and "ALEATORIO" in Spanish (which I use at home).

      • rovr138 6 years ago

        Is this on VBA or for formulas too?

        • jaclaz 6 years ago

          It is for spreadsheet functions, VBA is English only, but there are anyway some quirks, as an example inside VBA the decimal point (separator) is actually a point whilst /as an example in Italian) the decimal separator is a comma, and this creates often the need to convert back and forth the numbers.

      • jaclaz 6 years ago

        JFYI, what I often do for those functions I am not already familiar with both in Italian and English (it doesn't work for really all functions) is to use the English original I find in (the English version of) Spread32 (an extremely small Excel compatible program):

        http://www.byedesign.co.uk/

        then save the worksheet and re-open it with the Italian Excel, since the functions are actually saved internally as an "ordinal" (or whatever) and interpreted by Excel in its "local" language.

    • al_form2000 6 years ago

      As I remember, they had also localised symbolic "constants" so a format spec fed to (some date function) was 'dd/mm/yyyy' for english locale, but 'gg/mm/aaaa' for the italian one . God help you if you had (I did) some combination of - say - English Excel and italian OS (as I remember you got english function names but italian 'constants' as in DATEFORMAT('gg/mm/aaaa'...) with nonsens errors if you used 'dd/mm/yyyy').

      An asinine idea indeed.

  • wruza 6 years ago

    We have 1C here in Russia. It is not very advanced language-wise, but if you list COBOL as serious, well, it is.

  • boudin 6 years ago

    There's also wlanguage that supports french, english and chinese https://fr.wikipedia.org/wiki/WLangage (in french)

    It's part of the dev environment windev which is totally closed and (at least last time i had to use it) doesn't allow to use any tools like git (sources are encrypted). This and the fact that the whole environment was extremelly bugy (and even the language itself) makes it a real nightmare to work with. That's the only other example of non english programing language I can think of though

    Edit: just found this article on wikipedia after writing this. There's quite a few languages:

    https://en.m.wikipedia.org/wiki/Non-English-based_programmin...

    • detuur 6 years ago

      > binary source format

      Easily the single most diabolical thing I've heard all week.

      • lloeki 6 years ago

        Not even sure it's actually encrypted as much as it's a memory dump, old skool .doc style.

        > diabolical

        You have no idea.

        I've worked with devs using it (and had to debug their code more often than not): the thing is hell, through and through, from the stdlib itself (buggy as fsck[0], terribly leaky abstractions[1], ridiculously contrived[2]) to the IDE to the concepts (worse than VB, you store procedures in windows so changing the UI ever so slightly has dramatic effect on your whole codebase and since it's half static half dynamic you catch that only at runtime) to the source control (worse than VSS, and that's telling[3]) to the database (worse than your random toy-weekend-project database[4]) to the devious marketing ploys[5].

        (some links in FR but you can toggle to English)

        [0]: JSON parsing and generation is non-conformant, e.g translates null to empty strings. There is basically no memory management and the thing leaks like a sieve. This one can only do GET and POST "automatically", adds a topmost "Accept: * ", and actually only sends credentials on non-HTTPS: on HTTPS they're outright dropped because of a bug, so you have to implement HTTP basic yourself with the hack below! https://doc.pcsoft.fr/fr-FR/?3043007&name=HTTPRequete

        [1]: Same proc as above, the overall thing and additional header field is actually a string concat, so if you want multiple ones you pass a string with those separated by \r\n, but god forbid you omit the last CRLF as the headers and body won't have the required CRLF and be right next to each other.

        [2]: dict-like stuff (mem leaks included): https://doc.pcsoft.fr/fr-FR/?1514057&name=Tableaux_dynamique...

        [3]: http://www.highprogrammer.com/alan/windev/sourcesafe.html

        [4]: For network access they actually recommended you share a database via SMB shares before they had a "server mode", and still do for "small loads". The indexes get borked once in a while for random reasons so you have to rebuild them regularly. Their main API is something resembling low-level ISAM but with shared global state, and while they introduced a SQL implementation atop of that, it's downright terrible, severely lacking, and has zero query optimisation plan, throw in a HAVING and you can lock a 10000 records table for minutes.

        [5]: Car seller tactics like "Buy a license, get a top of the line iphone/ipad for 1€", goodies strategy dialled to 11, heavily sexualised material (down to the IDE splash screen), with scantily clothed women in luscious poses, high heels, leather, you name it, full of bullet-point buzzwords, actual tagline is "develop 10 times faster" and literally "1000+ new features" for each version, dev conventions are cult-like, Stockholm syndrome is pervasive. License for a given version is lifetime (controlled by a hardware dongle labeled with legal threats) but any support is dropped the minute the next release is out (which is every year). Not that it matters, as bugs stay largely unfixed. Wikipedia page is heavily edited by their marketing team (from their own IPs to boot), forums are heavily moderated against any critical post, who get censored, to the point that one of the devs I mentioned was threatened (on the phone, they called him) of legal action for libel because he publicly reported and discussed a bug.

        It's so bad that to fix bugs I implemented drop-in replacements for part of that stdlib and software code in C# (they have a .Net bridge which, quite surprisingly, works well, even dynamically generating WinDev proxy stubs from the C# classes) in well under half a day of work (which also had the benefit of moving some things to git and have actual unit testing), and had plans to port wlanguage to the CLR to help people get out of this hole. Guess what, the plan was rejected (even for bug fixing) because of purely irrational cultish reasons and I had to put intricate workarounds in my Ruby code to massage my way out of the endless brokenness, costing me overall months of work and terrible customer impact.

        If it feels like I was on some sort of mission, then it's partly true, as the people I worked with were really nice folks I had real bonds with, and witnessing the brainwashing they were victim of, destroying the very real potential they had, was truly disheartening.

        • boudin 6 years ago

          So much memory... My first dev experience was with windev, I never mentioned it on my resume. Like you said, everything was really bad, from their aggressive sexist marketing to every single part of their product.

        • detuur 6 years ago

          This reminds me of a friend of mine, who used to work at a company that supplied financial analytics software.

          The "software" was MS Excel workbooks. C-level execs love Excel, and they love interactive worksheets even more. The workbooks my friend made were huge, and had immense amounts of functionality. And this was all done without using VBA. It all had to be done in pure Excel functions. This guy had obvious programming talent as he rose through the ranks very quickly, but he never was allowed to program in anything outside of Excel, anything that resembled an actual programming language. He eventually left that career (and the very good money he made in it) for an entirely different calling. He's now finally experimenting with more normal languages, like Java, in his free time.

          More on-topic, I feel so sorry for the French developer scene that you've got a monster like windev holding down an entire generation of what could be promising devs.

  • sqrt17 6 years ago

    The Amstrad CPC (under CP/M I guess) had a French LOGO, where it wouldn't be "forward 10" but "avance 10".

    I think what mostly kills the appeal is 1) The actual keywords in the language are not that many (<50) and have a technical meaning where knowing English is only of limited help. 2) Much of what we do today uses library of code from others, where either you limit your audience by using non-English function (and/or class) names or you use English function names and hope that everyone will understand them to the necessary degree.

  • bestouff 6 years ago

    There were other French programming languages, e.g. Logo in French which was used in schools along a physical turtle (see http://gautard.pierre.free.fr/la_tortue_jeulin_t2.htm for a picture) that you could pilot to draw on big sheet of papers, or WLangage from WinDev. But AFAIK all these were just translations of English programming languages, not original creations. And didn't really caught on.

  • probably_wrong 6 years ago

    > it never caught on, even in Francophone countries

    I started programming at least 4 years before I started learning English. In my experience, not knowing what "if" means doesn't change anything because I never thought of code as prose. Whether it's called "if", "si", or "wenn", all that changes in my head is "what's the magic word that I have to insert before I can branch my code?".

    This, I believe, it's why localized programming languages never catch on: because it solves a problem I don't have while bringing a new problem I do have, namely, not being able to find support for my niche programming language.

    Variable names and comments? Sure, those are definitely prose. But I doubt anyone suffered too much when Python chose "elif" instead of "else if" (other than developers trying to remember whether a particular script should use "else if", "elsif", "elif", or "|").

    • babuskov 6 years ago

      Agreed. I started to program in BASIC some 7 years before I started to learn English. I had no idea what PRINT or LET meant and was able to program without any problems.

      Hm, even today, I have not idea why "for" is used for loops (?) and I'm using it without any problems.

      • jdnenej 6 years ago

        Native English speaker and I also don't really get what "for" was meant to mean. At this point it's probably just something that everyone has memorised and part of history.

        • yodsanklai 6 years ago

          I'm not a native speaker, but "perform this task, for i in {1,2,3}" seems to make sense as a prose. At least it does in French, when translated literally.

          • krzrak 6 years ago

            The same in Polish.

          • ozzmotik 6 years ago

            personally as a native speaker it has alwaus made sense to me in the sense of saying "for these given constraints, loop while they are maintained" for the arithmetic style for loop, and "for each of these elements" for the more iterator based style.

          • jdnenej 6 years ago

            In python it makes sense but when you have `for(let i=0; I<length; I++)` it makes less sense

            • wongarsu 6 years ago

              "for all i smaller than length, starting at 0". It doesn't really map perfectly because in math you usually don't care about the order, so a for loop actually contains more information than the statement it's trying to mimic.

        • Izkata 6 years ago

          Also native English: For me it's always made sense only with the loop body, as "for these do that"

          Or more straightforwardly, in a way that can be applied to other English constructs, "do that for this group"

          It's the same "for" in my head in both those versions.

        • trophycase 6 years ago

          Huh? It's pretty common even in basic college math courses to use language like "for every p in Q". It's not like programming invented this usage.

      • nindalf 6 years ago

        My high school teacher had a very legit explanation for the meaning of “for” in that context. But I can’t remember it now. Nowadays I write it because it’s expected, not because there’s a hidden deeper meaning.

      • tempguy9999 6 years ago

        Hmm, never thought about it either. I'd guess a contraction of "for each value..."

        • tuesdayrain 6 years ago

          Could it really be anything else? I always assumed that was the obvious intention there. Never crossed my mind that it could mean anything too different.

      • Fordec 6 years ago

        Originally it was a Anglicization of "für" in German first used in a programming language called Superplan which was then picked up upon by FORTRAN and then it just stuck

        • eru 6 years ago

          Well, that doesn't really solve the mystery. The German "für" doesn't have any closer connection with loops than English "for".

          • kuschku 6 years ago

            e.g. in Sums or Products, with

            $$ Σ_(i=0)^(20) x² $$

            you'd actually pronounce that as "summe für i = 0 bis 20 von x²", which is a good argument for where it might be from.

            • eru 6 years ago

              Yes, though isn't that the same when pronouncing math in English? (So it's a good explanation, but doing the detour via German doesn't give us any extra enlightenment?)

              • kuschku 6 years ago

                Well I don't know how it's pronounced in English, so I didn't know that, good to know though:)

        • dukoid 6 years ago

          https://en.wikipedia.org/wiki/Heinz_Rutishauser

          I don't think it's much more intuitive in German than in English, probably goes back to the "for each" quantor.

          • bhaak 6 years ago

            The for loop is the most unintuitive variant of the possible looping constructs. The others (while do/do while/endless loop) are much more straightforward. We could easily have ended up with another version.

            I always read it as inspired by "for values of" which at least in German is a common phrase heard in mathematical courses.

        • pletnes 6 years ago

          Fortran has «do» loops, no «for» loops (to my knowledge). do i = 1, N ...

      • dkersten 6 years ago

        I always translate “for” in my head to: for each item x in...

        In python is pretty direct: “for x in a” translates for for every x in the collection a, do this code...

        In C it’s a bit more abstract: “for (i=0; i<10; ++i)” for every i in the range starting at i=0, while it’s less than 10, incrementing... Basically the body establishes a set or collection and the for loop executed the loop body “for” every item in the collection.

        Modern languages often use foreach or some other slightly more descriptive name.

      • jhiesey 6 years ago

        I would guess it comes from calling the universal quantifier ”for all” in logic

      • Scarblac 6 years ago

        When I was 10, the Dutch language manual for the Commodore 64 explained the pronunciation of "input#", but not that of just "input". So I (unfamiliar with foreign languages) thought that "input" was pronounced as we would in Dutch, while "input#" sounded like what I now know is English.

        A class mate said his father said they were both pronounced as in English.

        We had a fight over this in the playground, and I beat him. So I was right. "input" on the Commodore 64 is pronounced like in Dutch.

        • 317070 6 years ago

          My brain is parsing how a Dutch input would sound different in Dutch? "in de put" vs "input" sounds the same, no? What is different?

          • ward 6 years ago

            There is definitely a difference. If you don't hear it, you might be saying one of them incorrectly? Wiktionary has audio files for input (English) and put (Dutch) if you need a comparison. In IPA the difference is ʊ vs ʏ. In terms of describing it to a Dutch person I would say the English u is somewhere between the Dutch u and the Dutch oe sounds.

          • Vinnl 6 years ago

            In-poot vs in-puht, roughly.

    • ewoodrich 6 years ago

      A long time ago I did some VBA work without any real understanding of the underlying language and even though I had no idea that "Sub" or "Dim" was supposed mean "Subroutine" or "Dimension" my brain just approximately mapped it to "function" and "var" without ever needing to spend time trying to decode the "English" meaning.

      • mafro 6 years ago

        Oh so that's what Dim meant :D

    • WalterBright 6 years ago

      Yes, it's only like 20 keywords to learn.

      I wish people who come up with all these inscrutable icons would realize that.

      • eru 6 years ago

        Why is learning 20 inscrutable icons harder?

        • jdironman 6 years ago

          You're wording is interesting and has me thinking. Why think of these words individually, with their individual characters, as a burden of the English lexicon, and instead think of the words as an image in their entirety. So thats it's almost programming by picture.

        • darkwater 6 years ago

          Because they are tiny and can be unreadable at perfectly normal font sizes.

        • babuskov 6 years ago

          It's hard to reason and talk about something until you name it. With named keywords, you already have a name for it, even if you say it different than the English pronunciation.

          Unless the script is so foreign to you (ex. Latin vs Arabic) that the keywords look like inscrutable symbols anyway.

        • WalterBright 6 years ago

          1. cannot look up an icon in a dictionary

          2. cannot google an icon

          3. icons are not standardized - companies copyright their icons and sue anyone else who uses them

          4. icons do not have a sort order

          5. cannot type an icon into a text editor /word processor

          6. fonts don't support icons

      • ultraism 6 years ago

        Could a localization be implemented in a header file with #defines to turn the localized keyword to the real one?

    • jamil7 6 years ago

      Very good point. While non-english programming languages haven't caught on I have experienced German documentation, comments and variable names in a codebase.

      • azernik 6 years ago

        One of the more well-known examples, and one that made me double-take when I saw it - from PHP 3 onwards, when a pair of Israelis rewrote the parser, a common and confusing syntax error was "unexpected T_PAAMAYIM_NEKUDOTAYIM". Which is Hebrew for T_DOUBLE_COLON.

        In PHP 5.4, they helped the situation somewhat by changing the error message to "unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)" - I suspect national pride was involved in their refusal to completely remove the internal token name from the error message.

        • pyrale 6 years ago

          This choice is also good for search optimization.

    • pradn 6 years ago

      This rings true, but I imagine the difference is higher if you can't read the Latin script or if your keyboard doesn't have Latin characters.

  • robjan 6 years ago

    I have seen schemas written in Japanese but yet to see anything in Chinese (apart from comments) despite living in a Chinese speaking region.

  • tanilama 6 years ago

    Never understand why non English programming language would exist except for identity politics reason, nowadays.

    It is not like using non English languages would change paradigm programming itself.

    • simion314 6 years ago

      For education and compatibility ? I have no idea if the latin alphabet is learned everywhere.

  • dgellow 6 years ago

    I had to work with WinDEV for some time, in a French speaking environment, with every single keyword and library API translated. That was a terrible experience (I’m native French speaker).

  • dgellow 6 years ago

    Now that I think about it, Excel has regional translations for functions. In my experience that makes it difficult to search for documentation, but I’ve seen business people really enjoying it.

  • Iv 6 years ago

    Honestly I am pretty sure there must be Japanese ones. Seeing how little of English Japanese programmers speak, there must surely be one.

    EDIT: Of course there is!

    https://en.wikipedia.org/wiki/Dolittle_(programming_language...

  • globuous 6 years ago

    There’s open office calc (and ms excel i guess) !! Its a huge pain for me actually. Once my grandpa needed help with an OOo calc sheet because his bank csv exports were super dumb and listed price columns as strings with the unit symbol as opposed to just the number. So i split the string and casted to number on my ooo calc (in english), but the casting didnt work on his french ooo calc. I spend the next 40 minutes trying to find the god damn function in french. It was surprisingly hard !! But eventually we figured it out (was and i forgot the casting function both in french and english as i never use calc/excel).

    So ooo calc vba equivalent is translated in various languages ;p

    • Moru 6 years ago

      Yes, that has been a constant confusion for me since they started translating office. Why would you translate commands to another language?

      • jobigoud 6 years ago

        I think it's supposed to be more like a DSL, aimed at non-programmers. So it may make sense to translate something like "Average", if you don't expect your target users to know english.

        Not as stupid as translating low level error messages.

        • magicalhippo 6 years ago

          But it should be a presentation thing. The formulas stored in the file should be the same regardless of language. There's no good reason not to.

    • Al-Khwarizmi 6 years ago

      Yep, same in Excel. And as a Spanish Excel user, I can attest it's a pain. If you find a solution for a nontrivial Excel problem online, chances are it will be in English. Then, you need to manually translate function names to Spanish to make it work in Spanish Excel. Translations are often non-obvious (average is PROMEDIO, not MEDIA? really?).

      While I understand localization can be useful for a subset of users, at least they could have made the English function names also work, or have a suggestion mechanism to suggest the Spanish translation if you type an English function name. I don't understand why they don't do this.

      Anyway, the problems of name localization are nothing compared to the problems of using commas as decimal separator. People from English-speaking countries will never know how many extra hours of life they have from not fiddling with decimal separators, text encoding programming issues, etc.

      • phkahler 6 years ago

        I would hope Excel could convert all the built in functions by changing a language setting somewhere. The problem you describe should have been the first thing to come up when they decided to localize it.

    • usrusr 6 years ago

      One of the early sins of office file formats, translating formula symbols not just in presentation but right down in the persistent form.

      If memory serves me right, back when MS Office macro viruses were the threat du jour, there was already a bit of a remedy in place for those formats that would translate the formulas and macros of incoming files from a different language version of the same software. This caused secondary waves of "mutated" viruses that had crossed multiple language barriers and came back slightly different but still working, foiling the efforts of checksum based virus scanners.

  • ithinkso 6 years ago

    People are mentioning MS Excel and the only other example I can think of is Logo (turtle graphics). It was quite popular in Poland when I was a kid to teach children programming and I vividly remember it was fully in polish (which even at that age I found a bit weird).

  • skissane 6 years ago

    > There was COBOL in French, once, with French words and word order, but it never caught on, even in Francophone countries.

    LSE [1] was more-or-less BASIC with French keywords. From what I've heard (I'm not French so have no first-hand experience with this), for a time (primarily in the 1980s) it was actually heavily used in the French education system, due to the backing the French government gave to it. Over time, the French government lost interest in the project, and use of the language has declined as a result. (The decline in interest in BASIC dialects in general has probably contributed.)

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

  • malikolivier 6 years ago

    I have heard from some people that used to work in some major Japanese companies (famous worldwide) that they had a version of COBOL developed in-house that was entirely in Japanese. It seems it was widely used within the company and used to power some banking infrastructure. I wonder if such system still exists in production nowadays.

  • WalterBright 6 years ago

    Back in the 1980s, I thought it would be great to add German, French, and Japanese error messages to the compiler. I hired native speakers to do the translations.

    But nobody cared. Programmers program in English.

    I once traveled to Finland to visit a customer. Everyone in the office spoke in English. I asked if they were just being polite because I was there. They said nope, their staff was from all over Europe and the only language they had in common was English.

    • pgeorgi 6 years ago

      As discussed elsewhere in the thread, the few dozen keywords are a different matter (and are just memorized to mean "make the computer do ..."), but having useful error messages from your compiler helps get stuff sorted out more quickly.

      There are, to this day, people who get in trouble when their computers reply to them in English, including coding folks. I bet they were (and are) thankful for initiatives like yours, but they won't have the vocabulary to tell you.

      • Archit3ch 6 years ago

        The tech community greatly benefits from settling on a lingua franca. Imagine if everyone posted on StackExchange using their native tongue.

        • pgeorgi 6 years ago

          > The tech community greatly benefits from settling on a lingua franca

          Maybe we see that in a few years, with everything moving to Chinese.

          > Imagine if everyone posted on StackExchange using their native tongue.

          Imagine users going to forums in their own language. People actually do that.

          • astura 6 years ago

            People have been talking about "everything will be moving to Chinese in the next few years" for the last ~20 years.

            • pgeorgi 6 years ago

              I'm well aware. But China is also the only country (or even bloc) in the world that's aiming for a fully internal supply chain for high tech. Not sure you can transform basic materials into a laptop (to pick one simple example) at scale without China anymore, but China is on a pretty successful track to do that without anybody else.

              Once they get there, I'm not sure they have a lot of motivation left to do high-tech on foreigners' terms and in foreign languages.

              While it doesn't follow that "we" need to learn Chinese then, whatever they'll use instead of StackExchange will simply outnumber the English version.

              • ripdog 6 years ago

                For hardware, perhaps, but the Chinese have no realistic way to replace the rest of the world for software. If they want to sell their hardware to the rest of the world, English is the only realistic language to use for that. I see no evidence of mass learning of Chinese anywhere.

              • Animats 6 years ago

                The replacement for StackExchange already exists, on WeChat. More for hardware than for software.

          • marcoseliziario 6 years ago

            Probably the Chinese will embrace and extend the English language, the way the US did.

            • pyrale 6 years ago

              The US did not embrace english, the US were a set of english colonists who managed to absorb lots of foreigners with the clear contract that not adapting to their culture/language would result in bad outcomes.

      • cowsandmilk 6 years ago

        > having useful error messages from your compiler helps get stuff sorted out more quickly.

        The definition of useful varies though. Many people starting out don't have the ability to understand some error messages, so being able to search for the error message is most useful. If everyone in the world has the same error message, finding an explanation for the error is a lot easier.

        • pgeorgi 6 years ago

          > finding an explanation for the error is a lot easier.

          Two options:

          1. LC_ALL=C $command to get the universal version of the error to search/report

          2. Add a numerical error code that remains stable across locales

          • gggmaster 6 years ago

            LC_ALL=C changes all the locale-related behaviors. I would try LC_MESSAGES first.

      • skummetmaelk 6 years ago

        Localized error messages are detrimental to solving the problem as googling the error message in a different language will prevent you from finding a solution in the main language.

        • wongarsu 6 years ago

          In compilers it's not uncommon to output an error code in addition to the human readable message. That allows you to google independent of language.

          Of course if you turn on localized error messages you might actually prefer results in your own language.

          • skummetmaelk 6 years ago

            This sounds like it's coming from someone who has never had to help relatives fix their broken Windows PCs localized in a language spoken by only a few million people.

      • big_chungus 6 years ago

        > having useful error messages from your compiler helps get stuff sorted out more quickly.

        We're still struggling with this in english. Think about how often the default reaction still is to google a compiler error, unless it's one of a handful of common ones you see often. Compiler errors are often opaque, even to the best programmers that speak english natively. A significant base of software emits error numbers with thin descriptions at best, which then have to be looked up in a manual anyway.

    • azernik 6 years ago

      Europe is to some extent a special case - even outside of software, English is the pan-European lingua franca; lots of college-educated people know a lot of it even before getting into tech. In places like China, or Central Asia, or the Middle East, this is not as much the case, and so picking up English skills add a further barrier to entry to the field.

      (Europe is only a special case "to some extent" because English also competes for lingua franca status with Hindi in India; in Japan it's taught (badly) as a result of connections with the US; and in countries as varied as Israel and Singapore it has a foothold.)

      If you're starting from first principles, and are willing to go with that common-second-language threshold instead of insisting on people's first languages, English is still definitely a clear first choice - it barely edges out Chinese for total L1 + L2 speakers, and those speakers are concentrated in the centers of software development.

      After that you have Chinese and Hindi (both fairly restricted in geographical reach, but involving lots of people), then Spanish (most of Latin America) and French (spoken in a dizzying array of cultures as L2, because of colonial history in Africa and the Middle East).

      And then you finally get to Arabic :-P

    • bjourne 6 years ago

      I'd love to code in an all Swedish environment. But when the I18n is incomplete or poorly done, all English wins out. Better if 100% of the compiler messages are in English than a 50/50 mix of Swedish and English messages because then you have to context switch between the languages all the time.

  • bctnry 6 years ago

    > One would have expected one in Chinese or Japanese by now.

    We do have one in Mainland China, popular in the last decade: https://en.wikipedia.org/wiki/Easy_Programming_Language

    It's somewhat of a disaster, though: its author probably caught up with the idea of "Language = IDE" & "selling the language for profit" so it's really not that suitable for "real" serious uses.

  • romwell 6 years ago

    >We haven't yet seen a serious non-English programming language

    Who is "we"?

    1C is a Russian-based domain-specific language that dominates accounting in Russia and neighboring ex-USSR countries[1]. It competes with SAP, and made its founder a billionaire[2].

    [1]https://ru.wikipedia.org/wiki/1С:Предприятие

    [2]https://www.bloomberg.com/news/articles/2017-06-15/a-russian...

  • thro1232213 6 years ago

    > One would have expected one in Chinese or Japanese by now.

    I don't know... is it even meaningful to call a Programming language as being in some other language ? The "language" in the CS sense remains essentially the same, and all you end up doing is substituting the alphabet.

    This situates the problem in an entirely modest light, and makes it obvious as to why any new "nativist" programming language is not worth the trouble - the alphabet, in this case the terms, is rarely ever the hardest part of learning a language. Indeed, if you're a lisper, the triviality of the change would become instantly obvious to you.

  • mhd 6 years ago

    As many other said, with the usual amount of keywords it's really not worth it. It's a bit like Italian words for musical theory. International communication beats the slight learning curve by far.

    Now, if the natural language has some influence on the semantics of the programming language, it might be useful enough. Doubt it, as most natural languages' grammar is way harder than either English or your average programming language. The only attempt that comes to mind right now would be Lingua::Romana::Perligata[1] and that's just an esolang layer.

    Now, for political or philosophical reasons an artificial language might be considered. Like Esperanto or Lojban, but I haven't seen something like this, either (I'm not counting Klingon).

    [1]: http://users.monash.edu/~damian/papers/HTML/Perligata.html

    • merlincorey 6 years ago

      Speaking of Klingon and natural language influencing programming language semantics, I believe var'aq[0] is said to be structured the way it is to better follow the Klingon grammar. It also supports both English and Klingon keywords, which I think is an important compromise.

      We already know that powerful programming languages can be built with non-ASCII characters in mind -- see APL, for example.

      However, we also know that the difficulties of typing these languages without special keyboard support have led to a variety of more English in ASCII language successors such as J/K/L.

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

      • throwaway87378 6 years ago

        > However, we also know that the difficulties of typing these languages without special keyboard support have led to a variety of more English in ASCII language successors such as J/K/L.

        The input language has nothing to do with the keyboard. How do you think people type foreign natural languages? This comes up again and again in programming-related online discussions - why is it so hard for people who program software every day to imagine that keyboard input is also mapped by software?

        The real reason Iverson used ASCII for J is that in the early 1980s, you had to get an APL character video ROM (code page 907) for your terminal or PC (exactly the same case as for foreign languages). Obviously not a problem at the time for Macs or other computers that use bit-mapped fonts, and has not been a problem for PCs for the past 30 years.

  • makapuf 6 years ago

    maybe not serious, but excel functions are translated I think ?

  • dvfjsdhgfv 6 years ago

    IDK if Excel functions can be called a "serious programming language", but their local names are driving me nuts.

  • whym 6 years ago

    For Japanese, I hear about Nadeshiko (なでしこ) a lot. It has a thriving user base, apparently. [1]

    [1] https://nadesi.com/top/

  • ComodoHacker 6 years ago

    >We haven't yet seen a serious non-English programming language

    There are such languages. Mostly DSLs, but here[0] is a general language from a Russian ERP system. Every keyword has both English and Russian equivalents. There are tons of maintained code written entirely in Russian, including business-critical.

    [0] https://1c-dn.com/1c_enterprise/1c_enterprise_script

  • bayesian_horse 6 years ago

    Wikipedia has a list of similar projects: https://en.wikipedia.org/wiki/Non-English-based_programming_...

    It's really not easy to create a programming language that "catches" on, as readers of hackernews are probably aware. There are a lot of brilliant languages, based on English, wich didn't.

    I suspect those international programming languages are not failing because of the language barrier, but rather because they don't add enough value and/or fail to attract a community.

    • SiempreViernes 6 years ago

      Most importantly, anyone that only speaks english will be unlikely to ever hear about a non-english language.

  • dirkt 6 years ago

    There were French and German versions of LOGO, for example.

    No idea if this counts as "serious", but it was used in schools back then.

  • thbr99 6 years ago

    If given an opportunity, the French language police of Québec would have adopted and enforced it in Québec.

    • hypacrosaurus 6 years ago

      « the French language police of Québec » = the institution who defines the institutionnal use of the official language in the state, like all countries in the world do. France have almost the same laws as Law 101.

  • goatinaboat 6 years ago

    OCaml is French but mysteriously it is neither in French nor particularly popular in France. France could be a global powerhouse of programming if only they could see what’s right under their noses.

    • jackjeff 6 years ago

      Frenchman expat here. I do recall OCaml being somewhat popular among teachers and professors some 20 years ago. All the coding I learned in high school and then the first years of college was in either Basic, Pascal, OCaml or Matlab. I did not touch C or Java which were a lot more popular in the late 1990s until I started a my Softare Engineering degree.

      As for French not being used in keywords, I found that state of affair somewhat liberating. I learned some LOGO with French keywords in primary school, then moved on to BASIC with English keywords long before I learned English. The fact that the keywords are in a foreign language somehow helped. I was not randomly trying French words hoping that it would do something. Either I knew the "computer" word (aka English) or I did not.

      I find programming using French keywords somewhat distasteful. French does feel ill suited for this kind of endeavor with its complex grammar rules and conjugation. It's also very verbose. When I was in college my friends used to name things in a mixture of French and English. Yes, even native speakers that wanted to use French for variables would invariably use English keywords.

      For example, an accessor would be named `getUtilisateur()` instead of `getUser()`, simply because all the equivalents for `get` and `set` are super long and fastidious to type. Also everyone would be super confused if a different convention than `get` or `set` was being used in this context. But often enough the reason was that the English word was so much shorter, and as easily understood.

      • cesarb 6 years ago

        > For example, an accessor would be named `getUtilisateur()` instead of `getUser()`, simply because all the equivalents for `get` and `set` are super long and fastidious to type.

        If that's Java, there's more to it than simply being "short". Since Java (unlike C#) doesn't have native properties, methods following that JavaBeans naming convention are treated as property getters and setters (often using reflection). That is, the methods "String getUtilisateur()" and "void setUtilisateur(String value)" are treated as if the object had a property named "utilisateur". Any other naming convention won't work, since everything that wants to access an object's "properties" will be looking for them only with the JavaBeans naming convention.

  • hechang1997 6 years ago

    With the power of c preprocessor, you can program in any natural languages. /s

  • hechang1997 6 years ago

    There's a “易(Easy)语言(Language)” in China which advertised itself as epitome of "Chinese Programming". It is basically a re-skinned C with a visual programming tookit, which does has its merit as visual programming tools were rare during that time. However, it only catched on in the "domain" of cheat engines and trainers, and eventually died out.

    • Animats 6 years ago

      The support forum page for it links to a parked domain, so it probably isn't very active.

coldtea 6 years ago

>Code is written entirely in Arabic, highlighting cultural biases of computer science and challenging the assumptions we make about programming.

There are lots of "cultural biases in computer science" -- in UI, neural network training, encodings, terms of service, etc.

Of all of them, this is the least helpful, and the least important.

It's like doing math in local notation, or translating latin/greek terms doctors all over the world are trained and understand, with regional varieties.

There's a reason why e.g. air traffic control speaks english no matter the ethnicity (as per the ICAO standard).

(And I don't mean programming language terminology / modifiers has to be english for any special reason. It could just as well have been French or whatever. But it has to be a single one, and english is already used for that purpose).

And I'm no native english speaker, so I don't say this as one.

  • danpalmer 6 years ago

    > There's a reason why e.g. air traffic control speaks english no matter the ethnicity (as per the ICAO standard).

    Yes. The reason is that air traffic control inherently requires people from different regions and languages to communicate quickly in life or death situations. Ease of being an air-traffic controller is not a primary motivating factor, and getting more diverse input isn't really a useful feature.

    On the other hand, ease of being a developer should be something we strive for. We don't generally deal with fast paced life or death communication, we instead want programming to be accessible, to get a range of people (and their input, experience, opinions) involved, and to break down unnecessary barriers. Programming in a foreign language is a pretty significant barrier.

    • johnisgood 6 years ago

      What do you mean exactly by "programming in a foreign language is a pretty significant barrier", and why is reducing this barrier to strive for? I believe English as a common language is a good thing for communication, for understanding each other. It could have been any other languages I suppose, but today it is English. It may change. I cannot even talk about programming in my first language because I would not have gotten any use out of it. It would not have been beneficial to me to learn the terminology in my first language. English, however, was pretty much beneficial. I am not sure that division here would be beneficial to the field, but this is just my opinion. Yes, it is a barrier for people who, for some reasons, are not willing to learn the common language which, today, is English. Is it a bad thing? In my opinion, it is not. It could be a way of expressing your dedication and willingness in some cases. I wanted to understand, and I wanted to be understood, and knew that learning English was the way to do it, so I learnt it. Having many different languages would defeat the purpose of what having a common language gives us, which binds us together.

    • DeusExMachina 6 years ago

      > Programming in a foreign language is a pretty significant barrier.

      Not really. I learned programming when I was 14, far before learning English.

      How many English constructs do you have in a programming language? Func, var, for, if, else, import, etc. You can memorize those in no time, especially if you do that as you learn programming.

      Documentation and textbooks are a different thing, of course. But I learned programming in high school, from teachers speaking my language and with textbook in my language.

      • fermuch 6 years ago

        I started programming at age 10, with game maker. I cannot stress how useful having icons for each operation is. I remember not knowing what a loop was (I didn't even understand what a variable was), but having the "steps" icon made it clear to me that it was run on every step the player makes (which is approximate, but IIRC it was simply a while loop)

      • Mirioron 6 years ago

        >How many English constructs do you have in a programming language? Func, var, for, if, else, import, etc.

        Func and var aren't even English words. Even an English speaker would have to at least get confirmation that their guess is right. You could replace them with arbitrary symbols and it wouldn't rally really change anything.

        • big_chungus 6 years ago

          See APL, equally horrendous for everyone: https://en.wikipedia.org/wiki/APL_(programming_language)

          • hhas01 6 years ago

            Not for those who professionally speak Mathematics; which is the audience APL was made to serve, after all.

            Amusing so many programmers will complain how they feel horribly excluded by APL, but see no issue with every other programming language in existence speaking exclusively ASCII English. At least Math is a true lingua franca, unlike our awful Saxon bodge. I know which I'd be safer speaking when Aliens come to visit. https://youtu.be/t2TDf9XU09k?t=120

            • Mirioron 6 years ago

              But math is also very difficult to understand. The information density on all of the symbols is too high and it's easy to misunderstand (or not understand) as a result. I've met very few people who were comfortable with reading math, even fairly simple things that they otherwise understand.

              • hhas01 6 years ago

                “But math is also very difficult to understand.”

                Sure it is, if you’re not a professional mathematician. For those who are, it is a fabulously precise concise system of communication. The same can be said for “legalese”, “medicalese”, or any other specialist language that provides its specialist users with unrivaled efficiency and power of expression.

                Whereas laypeople require lay language; which is why the best communicators are fluent in both, able to communicate complex ideas to both peers and public at a level and in a language that fits each audience.

                That so many programmers resist – even belittle – attempts to understand and close the accessibility gap in their own constructed languages speaks volumes of what piss-awful communicators they really are; and how – rather than break that shortcoming down and work to improve it – they weaponize it to keep all those who are not like them out and so maintain their exclusive control at the expense of everyone else.

                ..

                Remember, the point of software is not to encapsulate programming knowledge, it is to encapsulate business (or other expert domain) knowledge. That is where the program’s actual value is, and all that classes and types and conditionals and loops and whatnot crap is just a lot of bureaucratic bullshit that must be waded through when encoding that expert knowledge in unspecialized languages of poor expressive power.

                Making programming languages accessible and useful to users operating in other domains will take far more than just some l10n sugar. Still, anything that can improve access for the 5Bn humans who don’t speak English, never mind “ASCIInerdese”, is a positive move.

      • AimHere 6 years ago

        So if it's not such a huge barrier for a foreign programmer to program in an English-centric computer programming language, surely the same can be said about non-Arabic speakers who might want, or have to deal with this language?

        • edouard-harris 6 years ago

          While this is true as far as it goes, there's a difference in cost/reward tradeoff in having to understand the Latin alphabet to be able to read materially all programming languages, and having to understand many different alphabets to do so.

        • rtkwe 6 years ago

          As an English speaker with a US keyboard I would have a very hard time with قلب because I'd have to learn how to at least read Arabic and how to type it. In any other language, using say Spanish, using Latin script I at least only have to learn that importar in this Spanish language means include the library. In an Arabic language it'd maybe be استيراد which I'd have to memorize the whole word AND how to type it, which on my keyboard would be changing the layout and buying a sticker set. [1]

          [0] Disclaimer all the Spanish/Arabic/etc words were pulled directly from google translate.

          [1] Though Arabic is particularly rough because the shape of the letters change based on the letters around it so you have to learn that too! See: http://www.arabion.net/lesson2.html

          • rtkwe 6 years ago

            I understand as an native English speaker I'm in a fortunate position that by a combination of history and random chance computer development happened largely in my language. But given about 70% of the world uses Latin script keeping languages largely based in the English language the majority of the world is able to use their native script at least which is one less hurdle to learning to program.

            What I think may be more useful for bringing more people into programming in their native language would be thinking about providing transliterations where, for example, the Python keywords are translated into Arabic. Doing that Arabic speakers could write in their own language and English speakers could run a utility that maps from the Arabic keywords to the current standard English keywords. Stuff like variable names gets a little tricky there I'll admit, not sure how to handle them, maybe Romanize them too?

        • yorwba 6 years ago

          The problem is not so much non-Arabic speakers having difficulty dealing with the language, since they're not really the target audience. But if an Arabic speaker tries to use this language to write a program for some specific use case they have, they'll have to work around the complete lack of ecosystem that comes with a novel language in a tiny niche.

          It's the same reason why Chinese developers haven't banded together to create a Chinese-based language. They still code in Chinese, but the languages and libraries they use are mainstream: C++, Java, Python, ... All of these languages support arbitrary Unicode in comments and Java and Python also support Unicode identifiers. As a result, Chinese documentation is available even for software that's otherwise in English. However, if you tried to convince Chinese developers to abandon their battle-tested languages with a rich ecosystem for some other language just so they can use different keywords, you'd get laughed out of the room. It's not solving a problem they have.

          That doesn't mean that localized programming languages can't be useful e.g. in education. But translating documentation and libraries is useful for many more people than translating the syntax of a language.

          • timerol 6 years ago

            As mentioned in the top comment on this article, this is why the software community avoids fractures by programming entirely in FORTRAN. /s

            Your comment is an argument against any new programming language.

            • yorwba 6 years ago

              Yes. Any new programming language needs to offer something more than just different syntax if it wants to be used by more than just a handful of people.

      • progval 6 years ago

        It's much harder to understand an existing source code if you don't understand its function and variable names.

      • saalweachter 6 years ago

        This language is slightly more interesting for being Arabic than (say) German or Greek.

        You're got three barriers between the learner and the language: unknown keywords, unfamiliar letters, and the wrong LTR/RTL order.

        It all adds up to where, boy, it would be intimidating for me to learn this language, as someone who already knows how to program. Doesn't that imply it would be equally intimidating for someone who only speaks Arabic to learn C?

        • bradhe 6 years ago

          Perhaps we should try asking someone who actually speaks, reads, and writes Arabic how big of a barrier this is before we jump to conclusions...

          • ufmace 6 years ago

            Would be good, trouble is, where would we ask such a thing? Nobody would be on HN unless they were fluent enough in English to find it interesting to browse English comments and discussions. Presumably there are some Arabic-only tech forums out there somewhere for people who want to talk about technical things but don't feel comfortable enough with English. But then I suppose there's probably a few of those, all with different cultures, and the result would depend on the culture of that board.

            • saalweachter 6 years ago

              I mean, the existence of the article implies that at least one person who speaks, reads and writes Arabic thought there was a problem (even if they also knew both English and English-based programming languages).

              But again, while I can't speak from the Arabic speaker -> "English" PL direction, I'm perfectly capable of speaking for the English speaker -> "Arabic" PL direction.

    • missosoup 6 years ago

      > On the other hand, ease of being a developer should be something we strive for.

      Yeah, no.

      I want to strive for a field of professionals who know what they're doing instead of every second 'engineer' being a script kiddie with a MOOC or two of Python under their belt and nothing else. The barriers need to come way up from where they are today, not be lowered even further.

      • rfhjt 6 years ago

        Should we introduce a license to publish math papers? This should supposedly raise the overall level of mathematicians.

        • missosoup 6 years ago

          There is a license if you want to hit a nonzero audience. It's called peer review. It's merit based. You might have heard about it.

      • danpalmer 6 years ago

        I'm not talking about lowering standards, I'm talking about lowering barriers. The difference is that barriers are things that aren't necessary.

        It is not necessary to be male, white, or English speaking, to be an excellent engineer, and yet those groups are significantly over represented.

        • missosoup 6 years ago

          > I'm not talking about lowering standards, I'm talking about lowering barriers.

          One and the same. Making it easier to join a group necessarily lowers the barrier for joining said group which necessarily lowers the standard of said group. There are entire books written about this problem which leads to it being impossible to build large above-average skilled teams.

          No need to bring identity politics into engineering practice. They have as much place here as they do in getting a pilot license.

          There is a minimum bar to pass, and part of that bar is speaking a common parlance with members of your professional body from the rest of the world. I'm sorry you feel upset that English happened to be the language of choice for that, I personally just invested the time to learn it. I get paid more than doctors or pilots with the same amount of experience as me, so I'm not going to start complaining about satisfying the same language requirements that they deal with.

          • yorwba 6 years ago

            Sure, you can require someone to be fluent in English before you're willing to hire them for your team of programmers (a standard). That doesn't mean people who don't want to work for you should be required to learn English before they can start to learn programming (a barrier).

    • konstmonst 6 years ago

      I think if you are programming in a native language programming language, there is a problem, that you can not find enough help and you don't have things like stackoverflow. You don't immediately see useful patterns and answers to questions and the effectiveness of the language and of your understanding is reduced. Unless you have a personal teacher, I think, learning a native programming language is not a good idea, because you will be limiting yourself, you will learn wrong patterns. You will not be standing on the shoulders of (many)others before you and the quality of your understanding will be not as good. I also think a lot of skill comes from cross language disciplines, and limiting yourself to one native langue is not a good idea. Better to invest time and learn english subset used in programming. Then you can read interesting code of others, which was reviewed by more eyes than your native programming language.

    • trevordixon 6 years ago

      > Programming in a foreign language is a pretty significant barrier.

      There are only a handful of English words you have to memorize. Music students have to memorize a handful of Italian words to follow written music. It hasn't been a problem.

      • UncleMeat 6 years ago

        Standard libraries are large and named in English. It's a lot more than a few English words.

    • rtkwe 6 years ago

      You don't really have to learn the language to program in it though you can just know "import" means include this library, that's a harder task than just being able to read for sure. I think the biggest issue is when you have to use a different script than your native language (and keyboard). To code in Arabic, Chinese, or Russian I'd have to completely relearn how to type.

  • blauditore 6 years ago

    > There's a reason why e.g. air traffic control speaks english no matter the ethnicity (as per the ICAO standard).

    ...which is not respected at many smaller airports/airfields. If you plan to land your machine at a local French airport, you better be prepared to speak French !

  • Tepix 6 years ago

    Others have already commented that air traffic controllers use the same languages for reasons not applicable to programming.

    > I'm no native english speaker

    Does your native language use the latin alphabet? Are you familiar with the arabic alphabet? If not, why do you think you are qualified to judge that "this is the least helpful, and the least important"?

  • lallysingh 6 years ago

    The value of this language is as a tool to expose those biases. Some of them may be stupid and holding us all back.

    As for the ATC analogy, software normally works by interfacing with systems written in other languages. Python to C-based glibc to the asm trampolines in the kernel.

  • currymj 6 years ago

    I am a native English speaker in the US and to me it seems palpably unfair. People much smarter than me have to spend a lot of time struggling with a foreign language, and are still unfairly perceived as less intelligent than native speakers.

    I could imagine it might be less unfair in a situation, like in much of Europe, where nobody is a native English speaker but many speak it (sort of like Latin at one time). And there are of course huge benefits from a standard language. But it still bugs me.

    • mar77i 6 years ago

      Well the question is why you'd want to allow it to become your problem, too, though. Having to debug libraries written in Elder Futhark or, case in point, Arabic, seems much more impossible than it may already seem sometimes, and that's why I'm not going to write a programming language in Swiss German, and keep my comments in English too, for that matter.

      • microcolonel 6 years ago

        I think it comes from a good place in the heart, but people really shouldn't look for ways to drag themselves into other people's problems out of "fairness". Many societies have a nominal interest in teaching English to their people, but fail in practice. Fixing English education (or really language teaching in general) is a far more useful thing than torturing yourself with a language not suited to typewriter keyboards, such as APL or Arabic.

  • msla 6 years ago

    > Code is written entirely in Arabic, highlighting cultural biases of computer science and challenging the assumptions we make about programming.

    And using the Imperial system of units is highlighting the cultural imperialism of the metric system, the so-called SI ("International" System) and its Modernist desire to fit man to the unit, as opposed to fitting the unit to man. As long as humans walk on feet, and not meters, or metres, we shall persist! Ich kann nicht anders! (... primarily because I lost my metric socket wrenches)

  • Geimfari 6 years ago

    Air traffic control at domestic airports in many regions do communicate with pilots in the local language (even if they're are all able to switch to English at a moment's notice).

    It's all just jargon, for those of us working in the field it's really not difficult to both know the international Latin medical terms and the local terms to use with patients or colleagues.

  • gkfasdfasdf 6 years ago

    This language has the potential to attract native Arabic speakers to programming who may not otherwise take any interest. And who knows what insights or new paradigms they could bring. Lowering the barrier to entry to programming is a good thing.

    • egdod 6 years ago

      Many of them might well have wound up programming anyway. And so this language has the potential to shunt them off into a likely dead-end language.

      Although, yes, it might be a “gateway drug” kind of thing where they wind up learning more mainstream languages as well. I’m just saying it’s not an obvious and unalloyed win.

      • gkfasdfasdf 6 years ago

        Is scratch a dead-end language? It's not used for anything production grade, and it can't be modified in vi because it requires a gui of all things!

        Yet millions of children (and adults) learn about programming through scratch and create amazing things. It is not a dead-end language.

  • cicero 6 years ago

    Since air traffic can be global, it makes sense to have global air traffic control conventions. However, not every technology has to be global. If a region wants to develop a technology that is optimized for their region, they trade global access for local optimization. There are cases where this may make sense.

  • knolax 6 years ago

    > or translating latin/greek terms doctors all over the world are trained and understand

    A cursory glance at a glossary of Japanese medical terms suggests otherwise[0]. The thing about biases is that usually you don't notice them.

    Language is completely othogonal to most tasks. If you live in Japan you would probably prefer your GP focus on studying medicine in school instead of Greek/Latin on the off hand chance a foreigner asks them "why his primaris longus hurts". The same with programming, I'm pretty sure most programmers are interested in computers first and foremost, not learning about English subject verb agreement so they can read documentation.

    [0] https://www.mlcjapanese.co.jp/n5_04_10.html

  • khaled 6 years ago

    > It's like doing math in local notation

    Math is taught in Arabic, using Arabic notation and written from right to left in many Arabic countries. That is basically the only form of math I’m personally familiar with.

namelosw 6 years ago

I'm so surprised so many people think localized programming languages are useless.

Let's not forget there are still a lot of people don't speak English. I live in China, and I have seen a lot of kids with great talent in mathematical thinking -- needless to say, they have a great chance to have great computational thinking if they have proper environment. However, there are a lot of kids either having no multilinguistic talent or living in average developed zones that they can't access good English education[0], can miss the opportunity of being great programmers. As a comparison, mathematics symbols are decoupled with specific languages (like APL[1]), and the textbooks are well translated. English should not be a hard dependency to programming.

A lot of people believe in the future everyone should code more or less. I suppose if that's true, there must be nice localized programming languages to achieve that goal, which helps people scripting their day to day life, instead of just being pure GUI users. Or programming languages would still be only designed for minorities as least for non-English-speaking countries.

[0] For Chinese people, English could be not extremely hard (as English people learn Chinese) but still very hard to learn, it takes years of systematic training, just because the two languages are way too different.

[1] PS: I have some trouble for a very long time to understand what does Alan Perlis was referring to in his famous quote: "Though the Chinese should adore APL, it's FORTRAN they put their money on.", I guess it might refer to the symbols decoupled to natural languages.

  • Ensorceled 6 years ago

    I think you are expressing the actual disconnect: "Everybody should program" means we need localized languages, "Programming is a Difficult Profession" means programmers really want to learn English to have access to StackOverflow and many other English only resources anyway so localized languages are not necessary.

jameshart 6 years ago

It is, of course, a persistent myth among programmers that the majority of language keywords we use are in English.

I will grant that some of the words share a spelling with English words that have different meanings, but most of the core words we use are not ever used with the same meaning in non-programming contexts. I would submit that the following keywords common to a number of languages are not meaningfully ‘English’ (indeed, one of them is Greek):

String, float, double, long, byte, void, lambda, var, func...

I’ll grant that for, if, public, private, import, extends, let, etc are real English words and there is definitely a hidden privilege native English speakers have when learning to code, but when considering how hard a programming language must be for a non-English speaker to learn because it has English keywords, consider how hard it was for you to learn a new and unfamiliar meaning for the word ‘string’ and recognize that it’s maybe not that insurmountable barrier.

This project is interesting though because it particularly deals with a different script, which is much more dissonant with conventional keywords.

  • mar77i 6 years ago

    Also, the more barriers you overcome to get to the basics (that one's Greek too, btw), the less you'll struggle moving on, getting used to a certain confusion towards foreign concepts.

    I really liked your angle, not over-ascribing meaningfulness, yet making an effort not to step too many toes by focusing on context, questioning the stereotypical basis.

  • UncleMeat 6 years ago

    If you only consider keywords then sure.

    But think about standard libs. All of those functions and types are named with English words.

oaiey 6 years ago

First: That is culturally a very important project I really like. As a German, English was a barrier for me as well (imagine a 15 yo with little English proficiency). But it was just the language, not the letters and symbols.

I think the interesting question would be if you could build an IDE replacing keywords, interpunctation, writing order etc on the fly while emitting in the end "standardized" output (aka. English).

If we do not like English for whatever reasons (let us say: bias to the western world), I think the only real deal are Emojis. Replacing all keywords with Emojis is pretty universal (until it comes to color ... red/green has very different meaning around the world) and using some standardized/auto-translatable naming of variables and functions. Could be tons of IDE support.

Anyway. Nice inspiration.

  • vanderZwan 6 years ago

    I think what you want is something similar to Scratch or Snap!, but with keyboard input support[0][1]. Because the programming structure of these languages is not based on text input, that makes it independent of the language it is presented in.The result is that can change the language it is presented in on the fly:

    > Scratch, albeit visual, is still a language built around sentence fragments. Instead of using punctuation and assorted ascii art to enchant text into code, the structure and action of a Scratch program is almost as clear as prose. By using natural language fragments instead of magic identifiers in text, Scratch is unique in another aspect — Internationalization — Scratch programs can be built up out of German, French, Chinese, Japanese fragments too.[2]

    The main downside to Scratch as a language is having to drag our mouse for many kilometers for complex programs. It is a... well, drag (also more complex data types and such, but Snap! addresses that fairly well).

    [0] https://scratch.mit.edu/

    [1] https://snap.berkeley.edu/

    [2] https://programmingisterrible.com/post/76953953784/programmi...

  • qubex 6 years ago

    I did what you mention 22 years ago when I was 16, to create an “Italian version” of BASIC. I just chose suitable analogues in Italian for all the various keywords and fed it through a glorified Find/Replace script before handing off to the QBASIC interpreter. Of course Italian’s pretty strict word order helped a bit.

lifthrasiir 6 years ago

Retrofitting an existing language with flexible syntax (in this case, LISP) to non-English languages is relatively easy. They are not necessarily bad and can be useful for learners and casual users, but deviating from ASCII alone doesn't remove a cultural bias as the OP states. Programming languages have to be developed from scratch to fit to other spoken languages and cultures in my opinion. I'm aware of multiple (non-esoteric [1]) languages in this direction, none satisfactory enough though.

[1] If we allow esolangs I would proudly present Aheui (https://esolangs.org/wiki/Aheui) as a good example.

  • filleokus 6 years ago

    > Programming languages have to be developed from scratch to fit to other spoken languages and cultures in my opinion.

    This is really interesting. I wonder if there are some human language with properties that would allow for programming language constructs that we don't really use today.

    My linguistic skills are not good enough to really suggest an example, but considering there is a language[0] (almost) without relative directions (left and right), which is mind blowing to me, it feels like there should be something interesting out there.

    [0]: https://en.wikipedia.org/wiki/Guugu_Yimithirr_language

    • lifthrasiir 6 years ago

      As a very superficial example, Korean is agglutinative and you can't easily take affixes apart from a word. For example, you can't easily recognize that the following sentence has a noun "언어" and a verb stem "배우-" without a substantial knowledge about Korean:

          언어를 배운다.
          [topic omitted] Language-(object marker "를") learn-(verb conjugation "ㄴ다").
          (One) learns a language.
      

      Many syntaxes are based on easily segmented tokens, or words, so they are not a good fit for Korean and other agglutinative languages. My friend has made a programming language, Yaksok [1], specially made for Korean and solving this problem by making all invocations as a pattern, somewhat similarly to AppleScript:

          # - "약속" is a keyword for procedure declarations.
          # - Unquoted words are formal parameters.
          # - Anything quoted should occur literally, except for slashed alternations
          #   used for affixes varying by the preceding word.
          약속 대상"을/를 배운다"
              ...
      

      Of course this results in a very unconventional parser.

      [1] http://yaksok.org/

    • gwd 6 years ago

      > This is really interesting. I wonder if there are some human language with properties that would allow for programming language constructs that we don't really use today.

      Ooh, just thought of something interesting: I lived in Turkey for 4 months, and in Turkish, rather than using location to indicate which words modify each other, you use suffixes. (At least, as much as I could figure out in that time.) Then you can order your words for clarity and emphasis, rather than for meaning.

      You could imagine doing the same thing with functions or expressions; rather than being stuck with "infix" operators, which need precedence and parentheses, or "prefix" operators forcing you to use RPN, you could order them the way you want.

      So perhaps the following three expressions could all evaluate to the same thing ("a / b" in most C-based languages):

          /' a' b"
          /' b" a'
          b" /' a'
          a' /' b"
          a' b" /'
      

      The idea would be that `/` is the verb, and `'` is the suffix indicating that its two "arguments" are `'` and `"`.

      That sounds like an interesting concept to explore anyway.

      • azernik 6 years ago

        There are a lot of languages like this - this is the much-studied spectrum of analytic vs. synthetic.

        English is one of the most strongly analytic languages (Chinese being even more extreme) - it determines word relationships and function with word order and helper words.

        Whereas Standard Arabic, Ancient Latin, and Finnish are very synthetic, changing words to indicate their function and relationship to other words in the sentence. If your language has the concept of "declensions", it's probably on the synthetic end of the spectrum.

        Interestingly, after observing an increase in analyticity over time in European languages, some linguists have hypothesized that analytic languages are easier for foreign speakers to learn as adults, and that this causes languages with lots of geographic spread and inter-language contact to become more and more analytic. With creole languages being of course the most striking example.

        • gwd 6 years ago

          > some linguists have hypothesized that analytic languages are easier for foreign speakers to learn as adults, and that this causes languages with lots of geographic spread and inter-language contact to become more and more analytic.

          That's an interesting theory, and certainly fits with Mandarin (aka "Common Speech"); but how well does it fit with the prevalence of Greek in the ancient world, Latin during the Middle Ages, and Arabic in the Middle East and North Africa now? Those are all towards the "synthetic" scale, aren't they? Did/have those languages drift/ed to become more "analytic"?

          • housecarpenter 6 years ago

            Yeah, Latin and Greek became somewhat more analytic during the time periods where a lot of foreign speakers were adopting them as their main languages. (That was during the Roman period, not the Middle Ages, for Latin; Latin in the Middle Ages was a dead language used only by learned people in non-everyday contexts, so its grammar was mostly preserved.) I don't know about Arabic.

            • azernik 6 years ago

              Standard Arabic is similar to Latin in Medieval Europe - it is a second language that is used for formal education and communication, but that no one speaks as a native language. All the Arabic languages that people speak as first languages are much more analytic.

              It's a similar phenomenon to Latin, where the formal written Latin used in Europe preserved things like case endings and flexible word order, while the Vulgates that later became the Romance Languages dropped a lot of that and started relying much more heavily on word order.

  • throwaway_bad 6 years ago

    Now that I think about it, languages that aren't subject-verb-object probably find OOP insane.

    I tried to find an example of this and found a somewhat related article about how Japanese grammar maps nicely onto ruby: https://thoughtbot.com/blog/learning-japanese-the-rubyist-wa...

    • tom_mellior 6 years ago

      > Now that I think about it, languages that aren't subject-verb-object probably find OOP insane.

      I'm not sure if that's true in this generality. After all, "agent.doSomeThingWith(object)" is not a declarative sentence, it's a command. So you'd have to look for languages where imperatives don't have subject-verb-object (as an acceptable) order.

      I'm sure there exist some, but at least I would expect them to start with the agent you are commanding.

      • yorwba 6 years ago

        The agent still needs to hear the complete command to carry it out, so there's no strong pressure to prefer a particular word order.

        In German, the difference between the imperative "Machen Sie das!" [Do that, you (polite form of address).] and the declarative "Sie machen das." [You (polite form of address) are doing that.] is that the imperative does not put the agent first.

        • tom_mellior 6 years ago

          Interesting point about German, though du/Sie isn't the kind of "agent" I was thinking of. I meant something where you name the agent by name, like "Frau Huber, machen Sie das!". And yes, I know you can put the name at the end as well.

          The du/Sie in such sentences is something that's specific to German compared to the other languages I know, which don't need (or even allow) the pronoun: "do this", "faites ça", "gjør det" are all complete sentences. In fact even in German it's specific to Sie, for while you can say "mach Du das", "mach das" is fine as well. (If you speak a different dialect from mine, you might insist on "mache" instead of "mach", but around here that ship has sailed.)

          • mar77i 6 years ago

            Interesting how German doesn't allow to drop the addressing pronoun due to how the sentence structure works, but Scandinavian readily allows even the number of addressees to be derived from the context. I guess I prefer English over German as the language for programming because it shoehorns a lot of structure on a later, more boiled-down incarnation of Germanic, and notably (therefore?) ships many short and flashy words, such as "if", "on", "not", "do".

  • fxj 6 years ago

    there is chinese python.

    http://reganmian.net/blog/2008/11/21/chinese-python-translat...

    I bet there are IoT devices out there that use it already.

    For example:

    #!/usr/bin/env zhpy

    # 檔名: while.py

    數字 = 23

    運行 = 真

    當 運行:

        猜測 = 整數(輸入('輸入一個數字: '))
    
    
        如果 猜測 == 數字:
    
            印出 '恭喜, 你猜對了.'
    
            運行 = 假 # 這會讓循環語句結束
    
        假使 猜測 < 數字:
    
            印出 '錯了, 數字再大一點.'
    
        否則:
    
            印出 '錯了, 數字再小一點.'
    

    否則:

        印出 '循環語句結束'
    

    印出 '結束'

    which translates to:

      #!/usr/bin/env python
      # File name: while.twpy
      number = 23
      running = True
      while running:
        guess = int(raw_input('Enter an integer : '))
    
        if guess == number:
            print 'Congratulations, you guessed it.'
            running = False # this causes the while loop to stop
        elif guess < number:
            print 'No, it is higher than that.'
        else:
            print 'No, it is lower than that.'
      else:
        print 'The while loop is over'
      print 'Done'
nightnight 6 years ago

OT: Languages are the biggest lock-in + market barrier for others an economy has (best example is China). Great that English has got even bigger as a lingua france since the Internet started. I think every try to spread local languages is just wasted time. I am rather afraid that more tech leadership comes from China (I am looking at all the Chinese Githup repo READMEs).

  • tsanummy 6 years ago

    If this is an ironic post, hats off to you.

    • nightnight 6 years ago

      Dear tsanummy, help us to find the irony in my post or better the message in your post. So, what's your point? I'd love to know what you are talking about.

      Just to give another example: Imagine all countries in the world had the same language and people could move freely: You had massive and full competition between all nations/cities/economies for the best people and competition is good. Nobody is locked-in because of odd languages or would you dare to move to Beijing tomorrow?

      Or imagine you had the same with languages and a nation forced people to only use Cobol and ignore newer developments. You get it? English is btw also a language which is easily extendable, something like creating verbs out of nouns is not that straight-forward in other languages. It keeps English alive.

      • cyborgx7 6 years ago

        As an addition to the question about where you are from that was already asked, how many languages do you speak?

      • enqk 6 years ago

        All countries in the world speaking the same language is like asking for an organism without immune system

      • matz1 6 years ago

        If suddenly all countries had the same language i bet overtime, they will change and gradually evolve into multiple language.

        • Thorrez 6 years ago

          I kind of doubt that. The Internet, movies, TV, etc would keep us all connected enough that we would still all be able to understand each other. This article[1] even mentions some grammar forms where America and Britain diverged that have joined back together (I assume due to the Internet etc) ("can I", subjunctive, and British slang).

          [1] https://news.ycombinator.com/item?id=21293876

        • reirob 6 years ago

          Interesting thought, and looking at how many Romance languages evolved from Latin in the past, there might be something to it. At the same time there are languages that managed to re-unite the different dialects, at least in education and literature, I am thinking about the Hochdeutsch for German [1]. So we have at least a counter example. Would be interesting to know what are the factors that lead for similar languages/dialects to become one or the opposite.

          [1]: https://en.wikipedia.org/wiki/Hochdeutsch

jacquesm 6 years ago

If there is one thing this will achieve then it should be this: it should help to show those born in the world of English what a privileged position they have. For every other person in the world not born into English that is the first hurdle they have to cross in order to get to the next one: programming itself. Anybody that is born in an English speaking region has a huge head start in this respect.

Note that it goes much deeper than just the programming languages keywords: there are the books, the courses, the documentation, the bulk of all the open source projects out there one could use to study and so on.

  • falcolas 6 years ago

    FWIW, most non-English countries teach children English in their version of middle school. And most English speakers aren’t like the stereotypical French; English speakers are quite tolerant of both sentence structure mistakes and extreme dialects.

    They’re not really at that great of a disadvantage.

    • jacquesm 6 years ago

      Yes, they are. There is a huge difference between having a language as you mother tongue versus having it as a secondary one. My English is reasonably good, I started young (at age 10) and yet, by the time I was 14 or so the programming books I had access to were way over my head. If English had been my first language I would have had a much easier time.

      It's not about English speakers tolerance, it is all about the reader's ability to grok a complex written text.

      • TallGuyShort 6 years ago

        Depends on the language, I suppose, but isn't the text of the book the bigger problem than the language? sprintf, uint64_t, #ifndef may as well be foreign languages to English speakers too. There's a benefit if the mnemonics are native to you, but your comment sounds like it's the book that's the key obstacle, and less the language.

        • acdha 6 years ago

          > sprintf, uint64_t, #ifndef may as well be foreign languages to English speakers too.

          Is the problem those symbols or the fact that the documentation, tutorials, and a significant fraction of the useful discussions around those are in English? That seems like the real concern to me: imagine how much harder it would be to learn something without being able to easily understand the man pages, Stack Overflow, the source code and associated issue trackers or forums, etc.

          • TallGuyShort 6 years ago

            Oh I'm 100% supportive of having good translations of documentation, tutorials, better ways for people to communicate online if they speak different languages, etc. But that's not what بونج is at all. Quite the opposite - the computer language is derived from another language, but their documentation as checked into Github is still in English.

            Translatable comments would also be awesome, and figuring out how to deal with identifiers that appear in both comments / docs and code would be awesome. As it is, I think this language / art project is aimed at what is literally the smallest obstacle for people who have the problem it's discussing.

      • opwieurposiu 6 years ago

        Semi related question: Did you pick up the word "grok" from reading Stranger in a Strange Land or from somewhere else?

        That book was so much about the importance of the martian language and how language shapes perception.

        • jacquesm 6 years ago

          > Did you pick up the word "grok" from reading Stranger in a Strange Land or from somewhere else?

          Absolutely. Using it wasn't an accident either. The word is used illustratively only in the text, it is never explained.

      • falcolas 6 years ago

        Given that the average reading level of a US resident (a vast majority of whom speak English as their primary language) is around a 7th grade level, yes, you are still on par with most (US) native English speakers.

        Even I, a native English speaker, have had issues getting through a number of textbooks. Mostly because it's not English that you have to be proficient with, but the industy-specific jargon and idioms.

        • jacquesm 6 years ago

          As a foreigner you are not competing with the average US resident, you are competing worldwide with all the people that are aiming to learn something about computers.

          I can't see what is so hard about recognizing that someone who had a 12 year or so head start (and in some cases more) in the lingua franca of that trade is an advantage.

          • falcolas 6 years ago

            Most of the world doesn't speak English as a primary language. So, I can't imagine it's that big of an advantage in the worldwide market. Instead, there's a certain bar that can be reached by someone without even a 20 year head start.

            For example, if I tried to get a programming job in the Ukraine without being able to speak a lick of Russian, I'd be laughed out of the office regardless of how good my English is.

            The only time I can see it really mattering is perhaps in the US and UK, due to racist assholes who judge you by your accent instead of your capability.

    • acdha 6 years ago

      That's a cascade of unsupported assumptions: have you really never heard someone complaining about non-native speaker's use of English, using it to say they aren't qualified for a job, etc.?

      “most non-English countries teach children English in their version of middle school” in particular is really dubious unless you're cherry-picking a handful of small, affluent countries. I've known a number of people who moved to the U.S. from non-English speaking countries and the general trend is that the average is closer to, say, how well most Americans speak Spanish than fluency. It's easy to get this wrong if your experience is predominantly in high-level academic or professional contexts where there's been a strong selection bias filtering out people without strong English proficiency.

      • hn_throwaway_99 6 years ago

        > have you really never heard someone complaining about non-native speaker's use of English, using it to say they aren't qualified for a job, etc.?

        Yes, that's true, but I think it's important to make a distinction.

        What you are referring to is, more often than not, just plain racism. It's sad, and unfortunately (at least in the US) more people are feeling emboldened to spout their racist views.

        However, that shouldn't cloud the fact that in general English speakers are much more able to understand sentences with tons of grammatical or structural errors if the gist is right. I contrast that with French - when I was in France and would make a small error in verb conjugation or intonation people would just respond with blank stares. And they weren't looking down on me, they just really didn't understand what I was saying.

      • falcolas 6 years ago

        > have you really never heard someone complaining about non-native speaker's use of English

        Similar to the sibling response, only in the case where someone is being racist.

        > I've known a number of people who moved to the U.S. from non-English speaking countries and the general trend is that the average is closer to, say, how well most Americans speak Spanish than fluency.

        The availability of classes and the fluency learned from those classes are not related metrics. For example, I was able to take German language classes in middle school, but can't speak a lick of German today. It's not because the class was unavailable, but because I didn't apply myself to learning German.

    • tomcooks 6 years ago

      English speakers being tolerant?

      I suggest pretending to be a foreigner and ask for directions, next time you have 10 minutes to waste.

kerkeslager 6 years ago

This is far from the first non-ASCII programming language[1].

Some folks have brought up balkanization as a bad thing, but there are some reasons to believe that balkanization could be a good thing. By putting up barriers (like language) between silo-ed groups, you allow each group to develop their own ideas under different selective pressures, which leads to different results. Then, at some point, someone with vision and skill breaks through the barrier and their ideas from one silo revolutionize the other. It's unclear whether these ideas would ever develop and mature in a more homogeneous programming environment.

Looking at a different field: climbing. The industrial rope access, arborism, and recreational rock climbing communities have developed fairly independently, despite having a lot of the same base equipment and needs. The results are some fairly different solutions to the same problems. As a rock climber, I've learned a lot by cross-pollinating ideas with the other two groups. Sometimes the rock climbers do things better (dynamic ropes are a much better way to prevent spinal compression than full-body harnesses and screamers) and sometimes the other groups do things better (rope walking is far superior to hand ascenders). And these come from the independent selective pressures of each field (rock climbers fall more because they're pushing their limits of skill, so their fall protection is better, while arborists ascend the rope constantly so their rope ascension is better). It's not entirely clear to me that these very different techniques would have developed if the fields had not been able to grow their own communities fairly separately.

[1] https://en.wikipedia.org/wiki/Non-English-based_programming_...

gkfasdfasdf 6 years ago

The negative reactions here claiming that everyone should use English are really disappointing, on hacker news of all places. Nobody is saying we need to rewrite the Linux kernel in Arabic. But a language such as this could be a great tool to introduce programming to people who would otherwise be turned away by the language barrier. What is important is not the keywords for, if else, etc but the concepts of logic and computing. The more humans that can grasp these concepts, the better for all of us. Also who knows what genius lies untapped. Perhaps the next Linus or Knuth will come the streets of Baghdad, as a result of having been introduced into programming by an effort such as this one.

  • jacquesm 6 years ago

    I'm wondering how many people would be outright afraid of installing and running a program in a language that they have no chance of reading. This is the rough equivalent that all non-programmers have to deal with everyday.

    • tuukkah 6 years ago

      At least not those people who install proprietary software on their systems.

      Also, non-ASCII or non-Latin is just a step on a continuum: obfuscated code, machine language, spaghetti code, non-documented code... Actually, it may be perfectly workable to run the Arabic code through Google Translate and understand the result.

  • alienallys 6 years ago

    For a long-term perspective, all world should converge on one medium of exchange and everyone must learn that. I'm not suggesting an English hegemony here. We need to avoid balkanization.

    Arabic language has subsumed many local languages to be dominant in that part of world. A Bedouin feels a cultural bias towards Arabia if he starts coding in this language.

    I'm from India and non-Hindi speaker; if coding is done in Hindi it's cultural bias towards Northern India as opposed to where I'm from.

    • reaperducer 6 years ago

      Is there a programming language that uses Esperanto?

      • munmaek 6 years ago

        No, but programming languages exist in English, which is used by more than 15 people.

        Esperanto is a very interesting language but it will never be more than a plaything, a linguistic experiment, or a framework for people to learn a language that actually gets spoken by people.

  • barce 6 years ago

    It's possible but all the tools, the author of the language notes, have a 50 year head start in English with English language assumptions baked in, e.g. reading left to right vs right to left. What Qlb shows me is how hardcoded ASCII is in hardware and software.

  • koheripbal 6 years ago

    I think any argument taken to an extreme loses rationality.

    On one hand, if more people can understand programming, then we increase the pool of programmers, and that's great. On the other hand, if more people can understand each other's programming, that's also great.

    At the end of the day, what matters is that we have the largest possible ecosystem that also allows developers to transcend their geographical / ethnic background.

    ...and if that's the goal, then maybe it makes most sense for us to favor a unified ascii char set? A few language keywords aren't that big of a price for us all to stay on the same page.

  • watersb 6 years ago

    Thank you. Exactly.

    A world of seven billion people, many opportunities for genius.

    I have been surprised that non-English programming languages have not become even more common.

    In my father's time, a university student of engineering or chemistry was strongly encouraged to learn basic German, in order to keep up with the state of art as published in leading professional journals.

    Maths students would still do well to learn to read Russian.

    English need not be forever.

  • neop1x 6 years ago

    English unite. Finally, after failed attempts with Esperanto and others, lots of educated people understand this single common language. Life is much easier. I am Czech and there are so little info in Czech on any technical subject so I rather search info straight in English. What I hate about Europe are these language barriers. There are so many countries with different languages, it is annoying that one is expected to talk differently after driving just 100 km. German, Polish, Slovak, Italian, Spanish, ...argh. This single language is a big advantage of USA! They will understand you in Miami, as they will in North Dakota or California. Very cool!

    • doomjunky 6 years ago

      I totally agree. Let me say this. Europe has had at least three chances for a united language. 1) Latin when Caesar conquered europe. Italy, France, Spain, Portugal, Romania, adopted that language but later diverged, 2) frensh when Napoleon conquered europe and 3) german when Hitler conquered europe. I hope the EU will implement english a an official language even if the only english country (UK) will leave.

    • reirob 6 years ago

      I agree with you. But I would phrase it differently: "A common language unites". We should not forget that at different times in different areas we had and to some extent still have different common languages (Greek, Latin, French, Arabic, Spanish). It seems that humans have such a strong desire to communicate across borders (cultural, inherited, political, etc.) that they will invent the necessary tools. English language is such a tool now. I wouldn't be surprised if in future it will be some other language. In the end, there will maybe one such common language accepted by all.

  • badrabbit 6 years ago

    I agree,that being said I think everyone agrees languages with good internationalization support (as in built to support translation of source code to a different language without affecting the logic and machine/byte code generated). Power to anyone making a language in their native tongue. I wonder if dying languages can be kept alive longer this way.

mattigames 6 years ago

We already have like 100 hundred programming languages, adding localization to the tokens of each one would grow that to say least 1000; the human race doesn't need more excuses to create divisions among us, it actually needs the opposite. I already hate with a passion the Stackoverflow version on my native language (Spanish), the answers are always subpar (or just missing) to their English counterpart due being such a small website.

  • olah_1 6 years ago

    Or, we use content-addressable and immutable code like in Unison. It doesn't matter what you call the function or what I call it. It's the same code.

    https://www.unisonweb.org/

fxj 6 years ago

In Python 3 you can now use localized variable names. Something like this is valid python code:

>>> π = 3.14159

>>> jalapeño = "a hot pepper"

>>> ラーメン = "delicious"

varelaz 6 years ago

First time I've seen non-ASCII language around 7-10 years ago. It was 1C language, it's very alike to Visual Basic but all in Russian. I think it was very good idea to use Russian for that, it's embed language for platform developed for local market. So to start you don't need to know English, which is probably the main barrier in former USSR to become a programmer.

gwbas1c 6 years ago

I think this really misses the point about where "english" comes from in a programming language:

When we look at modern languages like C, C++, Java, C#, ect, the amount of English keywords are very minimal: "if", "for", "while", "do"... Most of a program is user-defined variables, classes, methods, ect. All of these can be in whatever language the programmer wants.

The bigger complication comes from major APIs: Mac, Windows, Linux, ect, have APIs written in English. Even if you were to write a program in a C-like language where "if" was replaced with a non-english keyword, and you defined your variables, methods, ect, with non-English names, you'd still need English APIs as soon as you interoperate with anything.

Furthermore: Names in APIs tend to be so cryptic, and require so much domain expertise, that I wonder how much value comes in translating them? Will training a non-English beginning programmer in a language with keywords from their natural language be helpful?

Seems like a good experiment, IMO!

xvilka 6 years ago

In fact, support for languages like Arabic, Farsi, or Hebrew is still pretty bad in many computer programs. This is why we started an initiative to improve the support of any bidirectional language in terminal emulators and terminal programs, e.g. vim, emacs, mutt, ncurses-based programs, etc. I maintain a list[1] of the supported programs. The specification[2] of a new standard is also available, moreover GNOME Terminal supports it since GNOME 3.34 version.

[1] https://gist.github.com/XVilka/a0e49e1c65370ba11c17

[2] https://terminal-wg.pages.freedesktop.org/bidi/recommendatio...

HelloNurse 6 years ago

If your Arabic-only programming language has an English web page (actually a blog post) it means it's an art project, not a bona fide tool for programmers who want to use Arabic input and/or who prefer Arabic names and keywords.

  • the_other 6 years ago

    The way I see it, if its creator made software with it, then it's a bona fide tool for programming. The fact it hasn't yet spread to more developers than those involved in the project doesn't negate its "fide"s or "tool"-ness.

    If you made a parser for a scripting language for content for your application, or a DSL for your colleagues to use, would you claim they weren't "bona fide"?

    • HelloNurse 6 years ago

      It's a somewhat better art project than Brainf*ck or Piet because linguistic barriers are more culturally significant than "just because I can" exhibitionism, but it has the same practical usefulness. Arbitrary obstacles make sense in conceptual art, not in tools.

      • SiempreViernes 6 years ago

        Ah, another fan of the arrays-start-at-whatever you decide!

gumby 6 years ago

This is very exciting, especially given the Lisp-like notation.

high level (non-assembly/machine code) programming has been stuck in an indo-european rut -- a productive one of course, but like so many things one that has a particular world view.

If programming had started in Arabic would we have developed generic functions sooner? Perhaps with different views of type systems? The fundamental structure of Arabic is quite different from the IE languages.

(I'm a native speaker of English from childhood but used to speak Arabic, and do use other languages on a daily basis).

bloak 6 years ago

A technical problem with localising a programming language is reserved words: either you decide in advance which localised variants will exist and you can't add any later, or the variants are potentially incompatible and to combine code written for different variants you would need to do some translation that involves changing identifiers, and I can't immediately imagine how that would work with libraries and so on.

Alternatively, you pick a programming language that doesn't have any reserved words, such as FORTRAN. (Are there any other well known ones?)

  • Someone 6 years ago

    PL/I. The argument there was that one cannot assume anybody to remember all the keywords (over 300 in some implementations. See https://www.cs.vu.nl/grammarware/browsable/os-pli-v2r3/), so they weren’t any reserved words, allowing, for example

        IF IF = ELSE THEN IF = ELSE - 1; ELSE ELSE = IF + 1;
    

    Writing a compiler for that must be fun, especially if one wants to produce useful error messages.

    • C1sc0cat 6 years ago

      On of the reasons that PL/1 didn't take of I believe, a pity as it was very advanced (for its time) and nice to work with.

ChuckMcM 6 years ago

This was fascinating for me. I had an experience early in my career where I was given some code written by a Spanish engineer to port, and the Spanish comments and variable names kept interfering with my ability to see the code structure. I ended up converting all the variables to simple letter/number sequences and removing all the comments in order to get past that.

Years later I read papers by linguists which described concepts in one language that were no expressible in another language. That too seemed pretty amazing to me since something like snow is snow right? But English typically has adjectives doing the heavy lifting to distinguish different kinds, but the Inuit people had even more words[1].

The idea that it might be possible to express computation differently in different languages, or perhaps even more effectively, seems really intriguing.

[1] "Yet Igor Krupnik, an anthropologist at the Smithsonian Arctic Studies Center in Washington, believes that Boas was careful to include only words representing meaningful distinctions. Taking the same care with their own work, Krupnik and others charted the vocabulary of about 10 Inuit and Yupik dialects and concluded that they indeed have many more words for snow than English does." -- https://www.washingtonpost.com/national/health-science/there...

beagle3 6 years ago

APL is, I think, the only (relatively) common programming language without English. It has lots of characters instead, most of which have a form that hints about their function.

Nasrudith 6 years ago

One thing that surprised me about non-English programming was that they didn't use some style subsitution of keywords with programming languages for their compilers. It seems like it would be a simpler solution even with tokenization potentially forcing some awkward word choices. Even considering the annoying bugs which could crop up with that I would have thought it would have been a thing. Apparently most just work with "the magic strings" or know enough English already.

That would be far more helpful than pretentious finger waggling at wide masses of people for not taking vastly unreasonable steps from the start. All from someone privledged enough to be paid or spend unpaid time for an ostentatious show project like this - in sharp contrast to how the actual non-English progammers act - adapting or rolling their own for their purposes.

The toxic attitude on the website negates any outreach of even a "interesting to see parralel evolved approaches" sense.

The 'not even trying to solve any problems just blame' is a personal pet peeve of mine.

al_form2000 6 years ago

Assuming there is merit to the idea that the Latin charset gives unfair disadvantage for people from other cultures (I think not(1)), then a language should be formed from a culture neutral alphabet - say, klingon. It better have a number of glyphs in the vicinity or 30 or so (for typing ease) no funky char combining rules (for reading ease) etc. And it would still need guidelines for naming functions, variables, not to mention pronouncing them (these could of course be localized rules) etc. My guess is that it would be a Latin like script, only with different glyphs. And of course, all var and function names would be hopeless gibberish, unless we all decide to become klingon/whatever fluent.

(1) At the very least, someone should explain why the rise of - say - the russian and indian programmers, given the unfair barrier.

  • bayesian_horse 6 years ago

    Maybe one shouldn't take the "unfairness" aspect too far.

    This project seems to be more about recognizing cultural differences in thought patterns and how they permeate today's computing world.

    It doesn't seem to be geared towards teaching programming to students who only know Arabic so far.

    And English is being taught and used extensively in the Indian education system and society in general.

    • al_form2000 6 years ago

      That (cultural differences in thought patterns) is indeed an interesting take (I'd like to hear what Larry Wall has to say about it). I do think it would be best addressed at the background level (say predicate logic or somesuch) than at a programming language level (which is more of a consequence).

      Unfortunately, the "unfairness" thing has hijacked many subthreads and it takes the proposal at face value (as in "Wouldn't it be cool if any programming language was available in localized form, charset, keywords and kaboodle?" - no it wouldn't) .

      • bayesian_horse 6 years ago

        I'd say predicate logic and much of the theory behind computer programming would stay the same, regardless of the language.

        And yes, I think it would be good for speakers of non-latin based languages to be able to write programs (or notebooks) in their own language. Some stuff, like business logic, NLP, or "Low Code" like in Excel, could benefit from staying in one cultural frame of mind instead of switching between multiple frames.

        Especially for different writing directions, like with Arabic. At the very least, Mandarin in Mainland China is now written almost exclusively left to right, so it's not as painful to use latin letters in a Chinese text when appropriate.

bovermyer 6 years ago

As an intellectual exercise, this is clever. I imagine it wouldn't take long to learn how to use it to write a basic application.

I'm also willing to bet that the time I spend learning the Arabic writing system in order to use this would be of general value, too. I'm fascinated by writing systems.

cwbrandsma 6 years ago

Might be an interesting problem to have a localizable programming language. As someone else mentioned, there are localized version of VB. And having worked with code from other languages, I know those developers are not using english for their variable names (or database schema names)

qubex 6 years ago

Any programming language can be made “foreign” by choosing appropriate terms in a non-English language (perhaps written in a non-ASCII character set) and then writing a front-end script that goes through the “foreign” code and does the required substitutions before feeding it into a standard for-that-English-based-programming-language compiler (or interpreter, or whatever). The English words are, after all, only tokens that are then translated into the Abstract Syntax Tree (AST) for that language. The problem with this particular rendition is that it doesn’t in the abstract define a particularly interesting, or novel, or even useful for specific situations new language.

As far as I can tell, this is a LISP, and I can remember having read about it ages ago.

jason0597 6 years ago

I remember when I was about 13 or 14 we would have this little program in Windows that allowed us to move a turtle around and draw shapes with the turtle. You were able to write little programs in code to move the turtle around and draw more complicated shapes in a shorter amount of time. We were doing all this in pure Greek, and writing the programs in Greek. In retrospect, I believe this was one of the worst things we did. Sure, it lowered the bar for students struggling with English to start programming. But given how there is nearly 0 useful documentation on programming or on programming languages in Greek, you were essentially tied to this little program with the turtle. You had absolutely no ability to progress your computing knowledge.

  • tolqen 6 years ago

    That sounds a lot like Logo

musicale 6 years ago

I've also been puzzled for a long time about the seeming shortage of computer languages that don't use English/ASCII keywords, though probably there are more of them than I am familiar with.

Lisp has some strange keywords (CAR, CDR) that are ASCII but not exactly English. APL relies more on non-ASCII symbols.

AppleScript is one programming language that at one point had at least 3 customized dialects (English, French, Japanese.) For example:

"the first character of every word whose style is bold" "le premier caractère de tous les mots dont style est gras"[1]

Sadly modern macOS AppleScript seems to omit the non-English dialects (although the "professional" computer language-like syntax is now available via OSA, JavaScript, etc..)

[1] Cook et al., Applescript, HOPL III, 2006

fxj 6 years ago

The truely universal language is math. There are however languages that do not use english words at all. e.g. APL or J. In these languages also localized programs in any language would be possible.

For example quicksort in J:

qs =: (($:@(<#[), (=#[), $:@(>#[)) ({~ ?@#)) ^: (1<#)

  • cyborgx7 6 years ago

    I thought love was the universal language.

  • userbinator 6 years ago

    Came here to find the APL comment, and I agree.

    "APL: a non-ASCII programming language written entirely in APL"

mendelk 6 years ago

This reminds me of Yid++[0], a tongue-in-cheek C++ compiler with a bunch of keywords translated into Yeshivish[1]. (I apologize in advance if the humor is wasted on those unfamiliar with the Yeshivish / Talmudic world.) It's still in ASCII though :)

If nothing else, these things remind me how lucky I was to not have had to learn English while I simultaneously learned to program.

[0] https://schorrm.github.io/ypp/ [1] https://en.wikipedia.org/wiki/Yeshivish

YesThatTom2 6 years ago

It would be more ironic if integer constants had to be written as Roman numerals.

ramseynasser 6 years ago

hi everyone, author here. i am glad this project is still starting conversations six years after it came out! if youre interested in a longer read on the subject of the cultural assumptions of programming and computing systems i wrote an essay for Technology as Cultural Practice last year: http://ojs.decolonising.digital/index.php/decolonising_digit...

tacone 6 years ago

As a side note I am a big fan of non-asci command line aliases. I have my keyboard set with the no dead keys layout, so pressing AltGr + [shift?] + letter will lead to weird stuff like ÐıØΩ~˛. The great part of it its being able to have single letter commands that won't collide with anything installed on the machine. For example I have » as an alias to: [ | xargs -n1 -d "\n" ] and I have a zsh function called Ð that let's me run commands inside a docker-compose(d) container.

For example:

ls -1 | grep backup » rm

archie2 6 years ago

I wonder how difficult it would be to systematically "translate" something like Java or C from "English" to any other language, especially non-latin ones like Arabic or Japanese...an "if" statement makes sense how it written from an English perspective but I have no idea how you express something like that in said alternative languages without having to change structure and "meaning".

I don't even know if what I'm asking makes any sense... Need more coffed

guggle 6 years ago

"All modern programming tools are based on the ASCII character set, which encodes Latin Characters and was originally based on the English Language. As a result, programming has become tied to a single written culture. "

And that's good. That means "we" hackers/programmers/developers/coders/whatever share something in common, no matter our culture/country/religion/beliefs/whatever. Heck, I'd even go as far as saying it's a thing of beauty.

BTW, I'm not a native english speaker.

  • springogeek 6 years ago

    It is beautiful, but it's a barrier also. I don't think you should be barred from learning to code because you don't speak a language which uses the Latin/ASCII character set.

    • vectorEQ 6 years ago

      feel the same. there's a lot of people out there who never get a chance to learn any english. to write your own code based on ascii / latin char set might be ok, but to interpret other's code etc. would be very difficult. so for example in a school, having only code examples with ascii could be a significant barrier to teach ,when all other subjects presented are in the local language / character set.

      • jakeogh 6 years ago

        But it still works! Right? The constraints imposed by the programming language self document our var names.

        I understand Hindi YT vids that are science related. I dont know Hindi. It's fantastic.

        Latin1 is critical. Handing over acceptiable byte sequences that our cli's acccept to standards bodies is a mistake. https://github.com/jakeogh/angryfiles

      • saiya-jin 6 years ago

        Pardon my french but that's a lame excuse. We are talking about maybe 20 crucial words like "if", "for", "while" etc. If somebody can't learn those, progressing with fully formed programming language will be a mighty challenge.

        The drawbacks are numerous and huge - today you can get any code from any guy on the planet, and can read it instantly. He can name variables and comment stuff in his native language, still no problem. That's extremely empowering, and to lose it just that somebody doesn't have to learn few keywords is... dumb.

        Having native programming languages beyond some playing around is foolish and step in wrong direction for all of us on so many levels, especially long term.

    • guggle 6 years ago

      Missing the point... Everyone has to jump that barrier so that there's no barrier between us, which is much more important.

      • jrh206 6 years ago

        Native English speakers don’t

        • Baeocystin 6 years ago

          English keywords often have only the most tenuous links to their vernacular meaning. It's an unavoidable side effect of how different spoken and programming languages are. Compared to the difficulty of learning programming itself, remembering particular keywords is a tiny fraction of the mental burden.

        • Majestic121 6 years ago

          Such is life, sometimes people have an unfair advantage.

          But in this case, having a common language is still much more valuable than the unfairness that this common language is the mother tongue of some.

        • grenoire 6 years ago

          This is such an odd exaggeration; the number of words you have to learn to type are just abysmally small. You don't have to know what the word 'integer' is to know how it works in your code.

          I-N-T, three letters, this symbol means that the number does not have a fraction associated with it.

          As for the code base and documentation? Well, wouldn't you rather a lingua franca as opposed to trying to Google Translate your way through comments?

      • Baeocystin 6 years ago

        I think this point is vital, and yet completely lost in the current zeitgeist. Shared foundations matter. Without them, we can't communicate effectively.

      • fastball 6 years ago

        Eh, I think you're forgetting how much english grammar exists in stdlibs.

        `string.toUppercase()` is super intuitive for an english speaker, but is nonsense that needs to be memorized for someone that can't speak english.

        • guggle 6 years ago

          That's my point: everyone has to learn a bit of english, and that's good. It's good for everyone. It's a personal annoyance at first but with a bit of effort you turn it into a personal skill which then benefits to everyone.

          Community > Individual

          • fastball 6 years ago

            I'm not sure how an arabic speaker having to learn english is better than you having to learn arabic.

            • guggle 6 years ago

              It's not, but I don't get your point.

              • fastball 6 years ago

                Your underlying point seems to be that the world would be better if we all spoke one language.

                I disagree, and to my mind programming is no different than linguistics in this regard.

                • guggle 6 years ago

                  Sorry, there is no underlying point.

                  • fastball 6 years ago

                    You are going to need to more clearly explain how this

                      That's my point: everyone has to learn a bit of english, and that's good.
                    

                    is "good" then.

                    • guggle 6 years ago

                      Refer to my first post to find why.

    • grenoire 6 years ago

      I disagree. Calling English keywords in programming languages a barrier is the same as describing symbols in mathematics as a barrier. It doesn't matter which word signals an IF clause, the global uniformity is what is really important.

      English has become the basis for the symbols of programming. You should not think of code as prose, it is simply code.

      • nicoburns 6 years ago

        I don't think keywords are the problem, it's library function/type names that will be much more difficult to learn / interpret.

        • PeterisP 6 years ago

          A localized language would only "fix" the keywords, and all the libraries (most made by third parties) would be even more difficult to learn/interpret - because if they wouldn't be in English, they likely would not be in your language, they'd be in someone else's non-English language.

    • jdnenej 6 years ago

      There is no alternative. Mountains of code, documentation, Q&A posts, tooling have all been created in English. Even if you use a programming language that supports your own language you will be crippling your ability. Learning enough English words to use pythonh would be much easier than having to reinvent the world in your own language.

    • al_form2000 6 years ago

      You're not barred, you have to learn relevant combinations of 26 symbols. If you cannot do that, I doubt you'll become proficient in programming anyway. OTOH,knowledge sharing in the field would be severely impeded if every piece of source code was localized to the wim of the author/marketplace/whatever.

  • wruza 6 years ago

    That’s good if you write language-agnostic software and live in cool english low level or web bubble. If you take any local business-logic heavy software that uses a big set of terminology, you may regret that it wasn’t written at least by transliteration (better in native). This may be less of a problem for Latin-derived languages. I met this a lot, and it is a reverse problem of what jansan described about VB. You can read ifs and fors, but have no idea what is happening in the code, because names are completely google-translated with no context and then shortened or abbreviated. I highly doubt that non-native speakers could take jobs like that at all, as it is gibberish even for natives.

    • al_form2000 6 years ago

      Non native speakers would'nt be able to take those jobs anyways if names were untranslated and in local script.

      • wruza 6 years ago

        That’s what my point is. English is zero-profit for non-natives and hard time for natives in these cases. It could work, if a developer were a perfect english writer, and if english were a clear language of all specific terms in existence. But in reality, both conditions fail miserably in this area. Btw, it’s not a legacy pre-internet problem. In a recent local thread around half of developers couldn’t even translate the “income/expense” pair correctly.

        • palunon 6 years ago

          > and hard time for natives in these cases.

          Being able to get worlwide support on language/libraries/etc issues, even if you use native words in your business logic, beats writing "si alors sinon" instead of "if then else".

  • brnt 6 years ago

    ASCII doesn't deal with (local) extensions of the Latin alphabet (in particular not diacritics), but to say ASCII is based on English... They are the basic Latin chars, no more, no less.

    • Baeocystin 6 years ago

      >to say ASCII is based on English... They are the basic Latin chars, no more, no less.

      Bring back the Þorn! :D

didibus 6 years ago

I think PLs should have localization features for comments, doc-strings, variable names and function names, etc.

Nothing should link in the actual computer from human readable text. I always wanted a language like that.

You'd create a new function or variable and it'll get assigned a unique ID. And the name is a doc-name same as the doc-string, only for human documentation.

If you had that, you could localize the language pretty easily.

hypacrosaurus 6 years ago

It hurts because English-centric people feels excluded by their non-understanding of a thing written in another language, suddenly realising other cultures in the world can exist independently, and it's a history fate if English is the de facto language of IT. « Algorithm » is originally an arabic word and first algorithms come from babylonians, they were written in cuneiform.

isacikgoz 6 years ago

I appreciate the idea behind this project. I assume that there is a potential in the subject of cognitive biases about programming.

oldgradstudent 6 years ago

In my Israeli highschool, we were taught Hebrew Prolog.

There was also a Hebrew version of basic taught to children (בסיסית - בייסיק בעברית).

Completely pointless.

Myrmornis 6 years ago

There’s nothing stopping us writing software that reversibly transforms code so that the keywords are expressed in a different language, with the transformation being reversed before the compiler/interpreter sees it, right? What’s stopping us from treating language as a superficial “view level” property of code?

EdSharkey 6 years ago

So does having the programming language be in your native tongue affect the actual structure of the code as well? Beyond maybe just lots of yoda conditions, say, would data schemas radically differ from other programming languages because they can be better articulated when spoken aloud?

smashface 6 years ago

I like the idea of this project. Its main goal is to highlight the bias towards English in programming languages and computer science and I think that's a great goal. I also think another great use would be to provide a stepping stone to those who are native Arabic speakers to get into programming. There will still be the English barrier to move on to other languages (and likely more professional or "serious" work) but if you can convince people that programming is interesting in the first place, this could encourage them to keep going further. As it stands now, if you don't speak English you would need to a certain amount of English AND programming languages. Languages like this means you just get to learn programming first while we figure out how to remove English as a barrier to entry.

  • rfhjt 6 years ago

    There is even a coined story about languages: Babylon. People there made great progress building things together while they spoke the same language, but everything fell apart when they started speaking different languages. Countries create their own languages and cultures sometimes artificially, to silo its citizens: when you've been taught since childhood to speak some odd language, it's hard to jump the ship later, so you have to restrict yourself to this little playground or make an immense effort and learn the international language. Luckily, such language still exist, although we take that as given. Software today is that Babylon from the story: everyone speaks the same language, everyone can can join and contribute with minimal efforts. No taxes, fees, licenses and permissions needed to join. As software rapidly gets bigger, people that have power start realising that this kind of freedom is unheard of. They are used to the world of borders where they take a toll for a permission to cross. So they pull the trick as old as humanity: introduce artificial fragmentation of languages and cultures and make people in their country use a language they control. And the more obscure and counterintuitive this language is , the harder it is for people to cross the barrier and the more profits they gain. If I were an evil and powerful dictator of a big chunk of the world, I'd force everyone there to switch to an artificial and very complex language, make it the only allowed language in the country, and do the same with software. From now on all these people would naturally have to live in this little artificial playground.

ahmaman 6 years ago

Makes me wonder, if there could be a transpiler of some sort that could take a non-English syntax and convert it to the English counterpart syntax.

This way there might not be a need to invent a new programming language per human language.

  • kalleboo 6 years ago

    AppleScript in its original, 90’s classic macOS implementation, was said to support this. It compiled down to a symbolic representation, which was then restored based on which language was selected. IIRC only a French alternate language was ever developed (HyperCard had more, but those scripts were stored as text) but also a JavaScript “dialect”.

    The compiled representation was mostly exposed to users when they didn’t have the app used in a script installed and just got FourCCs/OSTypes sprinkled throughout their script instead

    • ahmaman 6 years ago

      Interesting, haven't heard of these!

      I am sure many small projects attempted to innovate similar solutions but never really took off.

      If such a thing got popular, would be interesting to see if it would affect international collaboration. Whether it would speed things up.

  • sharperguy 6 years ago

    The big problem is more with APIs, variable names, documentation, and comments. Those can't be easily translated. Languages keywords can easily be memorized.

    The lesser problem is with languages that don't read left to right, since the parsing of the language has to be reversed.

    Many languages now support UTF-8 for variable names, so in theory you could code those in any left-to-right language by just choosing different variable and function names,

gshrikant 6 years ago

Actually a Forth written in a language apart from English would be a cool idea. The 'words' model maps directly to natural languages and would be straightforward to apply to other languages.

klhugo 6 years ago

One of the great things of tech is that it brings different people together to relize amazing new things. The initiative described here does not celebrate the differences, it creates barriers instead.

gedy 6 years ago

I've always wondered why this is not more common. Is there a reason you can't just have localized keywords in each language that map to the same thing? Chinese JavaScript, etc?

  • ecmascript 6 years ago

    That is a really great way of geofencing programming as a job where you can use the same knowledge basically everywhere. A really terrible idea imo.

    But there are already (joke) projects that do this:

    https://github.com/frozzare/fikascript

  • Baeocystin 6 years ago

    The A#1 most import aspect of a programming language is consistency. The alternative is localization hell, with no options in the middle.

    Most things aren't this black or white, but this is one of them. Whatever the keywords for a language are, they must be exactly the same everywhere.

  • mschuetz 6 years ago

    Excel seems to be localized and I absolutely hate it. A german version of excel expected me to write WENN instead of IF, or SUMME instead of SUM. It's dumb. Especially since if you're trying to look up code snippets or how to do something in excel, you'll find one in english and then have to find the corresponding german commands.

    • rainekoste 6 years ago

      I hate that too soooo much. You never know the function names in your native language and need to google them. :)

    • smcl 6 years ago

      Google docs had a really interesting quirk that drove me insane for about 20 minutes while I figured it out. I was helping someone with some shared spreadsheet on Google Sheets and figured out that SUMIF(...) was what they needed, by doing a bit of searching. Except that it refused to work where I needed it even when I followed the docs to the letter, and when I explored it a bit more the function seemed to work but only randomly. I'd recreate exactly the same data in the same positions in one sheet where it would behave as I expected, but in another it would fail.

      It turns out that according to the locale Sheets will change the separator for params, so in en-US it'll be:

          =sumif(A1:A10, "Something", B1:B10)
      
      

      while in cs-CZ it should be

          =sumif(A1:A10; "Something"; B1:B10)
      
      

      On the one hand, that's really quite cool and impressive. On the other, I would never have expected a language or development environment to support different syntax depending on the locale in use.

    • mhd 6 years ago

      Yeah, the pain whenever I have to remember what HLOOKUP is in German.

      And a similar feature made CSV even worse.

    • qubex 6 years ago

      The Italian version of Excel requires “;” to serate clauses in the localised version of IF, SE(<condition;<if-true>;<otherwise>) and other differences beyond mere translations, and that drives me up the wall and through the roof.

  • _Wintermute 6 years ago

    That's how it works in Excel, I'm not sure how it works under the hood but it's translated to your system locale so you can open up your French speaking colleagues spreadsheet and not notice the difference until they start asking about "=RECHERCHEV()".

  • lifthrasiir 6 years ago

    Different word order (especially, verb-noun order [1]), different syntax for affixes and adpositions, difficulty in segmentation and even the non-existence of English-like "words", ...

    You can't "localize" programming languages in that way. A new programming language, probably similar in semantics but with a completely rethought syntax, is needed for the true localization.

    [1] https://simblob.blogspot.com/2019/10/verb-noun-vs-noun-verb....

  • niceworkbuddy 6 years ago

    I think it's cognitive overload. I remember when I was pretty young, there was a language named Logo. It has different but similar syntax in Polish and English. Eventually you used only one of them.

    • qubex 6 years ago

      Fun fact: LOGO is actually a LISP.

kkarakk 6 years ago

Damn can you imagine versioning issues? Popular plugin creator decides english is too imperial for his tastes, switches to swahili(his native tongue :) )

Framework goes up in flames quite fast.

val314159 6 years ago

Why hasn't anyone pointed out that, except for function and variable names, almost all of computer code is symbols which were pilfered from . . . arabic???

  • trophycase 6 years ago

    We're too busy feeling good about ourselves for pointing out English privilege

Yuval_Halevi 6 years ago

It's actually never come to my mind that there are only English programming languages

So programmers in China and Russia also using only English programming language?

  • otaviokz 6 years ago

    Yep. That's probably why you'll never met a developer without a rudimentary understanding of written english.

    • mmahemoff 6 years ago

      As some empirical evidence, look at how few StackOverflow sites there are in other languages: https://stackexchange.com/sites?view=list#technology-traffic. Just three (Russian, Spanish, Portuguese), all were introduced 5+ years after the main site started.

      Similarly, Github doesn't have localised versions.

      There are certainly clones in other languages (e.g. https://teratail.com/ clones SO in Japanese), but it shows how little demand there is when these well-funded platforms for developers de-prioritise local versions. I couldn't imagine a comparable platform for lawyers or accountants doing same thing.

  • negus 6 years ago

    I will tell you even more -- in Russia it is dominant practice that code comments are written in English as well, though could be written in Russian. You never know who will work with your code tomorrow.

  • namelosw 6 years ago

    In China there are several Chinese PLs, the most wildly used is called EPL(易)[0]. However, those are not generally used in production other than lightweight scripting scenarios.

    Comment-wise, many companies use Chinese comments in code while many use English as well.

    https://en.m.wikipedia.org/wiki/Easy_Programming_Language

cptwunderlich 6 years ago

He is very right about how many tools and sites have problems with RTL (right-to-left) text. And don't get me started on mixing LTR and RTL text.

pknerd 6 years ago

Do not know about use cases other than the creator learned a few things.

I am interested to know what are the pros and cons of creating a language syntax in Unicode?

pknerd 6 years ago

Uncertain about whether such programming languages will be worthy enough, I think that DSLs in localized languages will have better use cases.

jancsika 6 years ago

Is there something like ASCII for Arabic? In other words small set of single-byte Arabic characters so that cranks can complain about unicode.

jothezero 6 years ago

Does a sub-routine starts with : salam aleykoum ?

dangerface 6 years ago

This isn't the first non-ascii language most modern languages are utf-8, look at any Chinese code for an example.

This isn't the first non-english language, when I was learning basic 20 years ago it had support for german keywords.

This is clearly just a dumb political statement, that being said I don't get why every one is so upset. I guess you could argue that it's cultural appropriation but let's face it anyone who argues that is just petty.

PopeDotNinja 6 years ago

This is making my head explore. I love it.

  • robertakarobin 6 years ago

    I suspect this is a typo, but it reads well anyway. :)

    • PopeDotNinja 6 years ago

      Not a typo :) BTW, wanna go for a ride in my new Ford Exploder?

tempodox 6 years ago

Reminds me of the Latin front-end for Perl.

mensetmanusman 6 years ago

It would be nice to include a pronunciation for English speakers. I just read it in my head as ‘scribble’

ridan002 6 years ago

This language is called 'Kelb' which translates to 'Dog'. Why is it called that?

  • alanbernstein 6 years ago

    Is that any less appropriate a name than "Python"?

m23khan 6 years ago

from what I understand, the name of the language is Klub - which translates to Dog.

And the example showcases implementation of fibonacci sequence and calling it with 10 as parameter.

A nice, straightforward syntax indeed!

Although I don’t speak Arabic, I find it a fascinating and beautiful language.

zelly 6 years ago

Wait until they find out LISP has no left-to-right bias and can be in any natural language

lanevorockz 6 years ago

The comments here are just absolutely insane, STOP MAKING EVERYTHING POLITICAL. Fake Intellectuals are trying to destroy STEAM by making everything boring and everything about "This people are evil". WTF, it's COMPUTER SCIENCE NOT POLITICAL SCIENCE.

jchallis 6 years ago

قلب / heart is simply a wonderful name for a programming language.

seddin 6 years ago

So its basically JavaScript but with the syntax translated to Arabic.

azr79 6 years ago

How do you pronounce it? Kalb?

  • pedrow 6 years ago

    qalb and I think it means 'heart' or 'core'

  • seddin 6 years ago

    'Kalb' sounds more like the word dog, 9alb is the correct way.

    • Cannibusted 6 years ago

      Nine Elby?

      For non-speakers, it's a bunch of scribbly lines.

ridaj 6 years ago

This is from 2012/2013.

jankotek 6 years ago

Scala supports Unicode characters in identifiers. It would be interesting to know your take on that.

an_to_nio 6 years ago

so, like APL

  • compressedgas 6 years ago

    The language is a Lisp with different identifiers and lists printed right to left.

pgcj_poster 6 years ago

This is at best useless, and at worst harmful. If we start using languages other than English for code, then we'll end up balkanizing the software world. People in humanities departments can talk about things like "Chinese Poetry" and "Continental Philosophy," but in STEM, we should be above that nonsense. I should be able to read code written anywhere in the world and understand what it does.

This is the same reason that everyone uses FORTRAN. Can you imagine if people went off and created their own "programming languages" instead? You wouldn't be able to contribute to an open source project unless it happened to be written in a language that you knew. There would be so much duplication of effort: someone would write a library for Foo Language, and someone else would do the same thing for Bar language. Job postings would ask for "Foo Developers," and you wouldn't be able to just work anywhere. Fortunately, programmers collectively decided to all use the same language. Let's not go back on that decision.

  • johnisgood 6 years ago

    I think Lojban is the only language that could work (not just for computers but humans as well). I do not see it happening anytime soon though.

    For anyone who does not know what Lojban is: https://en.wikipedia.org/wiki/Lojban#Applications would be a great starting point. :)

    • coldtea 6 years ago

      >I think Lojban is the only language that could work (not just for computers but humans as well)

      What about humans who like to think in a language whose idioms, history, etc match their culture?

      Heck, human languages even adapt to the climate (e.g. warmer areas having more vowel sounds, cold areas optimizing for shorter/less open mouth exposed to cold air, etc).

      Plus there is some naivety in the idea that humans need or want a "logical and unambiguous structure". We need it for some things (math, STEM), but we seek more freedom to be ambiguous in other things -- and in fact it can be essential to the very civilization to be able to be so (for diplomatic reasons, civility, psychological, etc).

      • johnisgood 6 years ago

        Does https://en.wikibooks.org/wiki/Lojban/Culturally_neutral or https://wiki.c2.com/?CulturallyNeutralLanguage answer your question?

        From the second link:

        > The only thing that characterizes a logical language, like LojbanLanguage, is that it's unambiguous from a structural standpoint. It seems that Lojban is just as expressive as any other human language, with the same capacity for overstatement, understatement, irony, metaphor, simile, pun, etc. A lot of famous works of fiction have been translated into Lojban by enthusiasts.

        Your concerns have been brought up and explained in part by the two links above, and in the Wikipedia article I linked to. Allow me to quote some parts from it:

        > The removal of grammatical ambiguity from modification [...] seems to heighten creative exploration of word combination. [...] Other areas of possible benefit are (surprisingly in a 'logical' language) emotional expression. Lojban has a fully developed set of metalinguistic and emotional attitude indicators that supplant much of the baggage of aspect and mood found in natural languages, but most clearly separate indicative statements from the emotional communication associated with those statements. This might lead to freer expression and consideration of ideas, since stating an idea can be distinguished from supporting that idea. The set of possible indicators is also large enough to provide specificity and clarity of emotions that is difficult in natural languages.

        > The language was built to attempt to remove some limits on human thought; these limits are not understood, so that the tendency is to try to remove restrictions whenever we find the language structure gets in our way. You definitely can talk nonsense in Lojban.

        Anyway, you can decide to be ambiguous if you wish to do so, it is perfectly possible. Do not worry, it will not turn our society into something similar to the movie Equilibrium. I think the word "logic" makes people jump to similar conclusions.

  • ceautery 6 years ago

    Wait, was the last 30 years some Picard-and-the-flute dream? Thank God! Hopefully the next FORTRAN version will keep the name all-caps.

  • seer 6 years ago

    I have a feeling a lot of art projects in history have been described as “at best useless, and at worst harmful“. For example leonardo da vinci’s bicycle.

    Even if that is true, here or in the other art projects, the purpose is to evoke some aort of response, to capture attention and to provoke discussion.

    And by this measure and judging firom the comments here this has been a resounding success :)

    • skavi 6 years ago

      > This is the same reason that everyone uses FORTRAN.

      The person you are responding to is not being serious. it is a joke.

  • Flimm 6 years ago

    I think you are being sarcastic/ironic.

    • johnisgood 6 years ago

      That is what I have gotten as well starting from the "This is the same reason that everyone uses FORTRAN." bit.

  • kuschku 6 years ago

    Some games (e.g. the anno series) actually have a german language scripting language for custom maps.

    And the original, first high level programming language plankalkül also had nothing to do with english.

  • mattigames 6 years ago

    Very funny, but no, it's the reason we have one hundred languages instead of a thousand

  • ComodoHacker 6 years ago

    There ARE successful (used in production) languages with non-English syntax.

    You're just saying "Everyone should use Chrome, otherwise the web would be balkanized". Or, taking it to the extreme, "every book in the world should be written in English".

    >I should be able to read code written anywhere in the world and understand what it does

    You are, but no one promised "without any effort". Almost every developer of not English-speaking origin put that effort, why shouldn't you?

    >You wouldn't be able to contribute to an open source project unless it happened to be written in a language that you knew

    You've just described the status quo.

    • skavi 6 years ago

      they are joking.

      • bobblywobbles 6 years ago

        How can you tell? It looks like a serious post to me.

        • justusthane 6 years ago

          The whole second paragraph where they talk about everyone writing FORTRAN and no other programming languages existing.

  • cyborgx7 6 years ago

    So glad this turned out to be a joke in the second paragraf. The first is very believable. I've definitely encountered people who would write something like it unironically.

    • amenod 6 years ago

      TBH, I didn't get the joke until I read your comment. A small "/s" at the end wouldn't hurt.

      • cyborgx7 6 years ago

        Pointing out it was indeed a joke, was part of the reason I wrote the comment in the first place.

        • amenod 6 years ago

          Just to be clear - I think your parent should have put '/s' at the end, not you. :)

      • skrebbel 6 years ago

        To be frank, "/s" would have totally ruined it for everyone else.

        I'm assuming that you simply didn't read past the first paragraph? (That's fine, I bet we all do that way too often here) I mean, I have a hard time believing that you really can't tell that a post that states that everybody uses FORTRAN isn't serious.

        I care because HN has a way of ruining satire and sarcasm this way. These are only the delightful stylistic devices that they are when you don't say that it's satire (resp sarcasm). I truly wish we'd all "/s" a little less, not more :-)

        • warp 6 years ago

          I'm sad to admit I downvoted after the first paragraph. I was glad HN let me undo that after I read the second :)

          (also, hey skrebbel! :)

        • amenod 6 years ago

          No, not really, I read the whole post. And the FORTRAN reference was weird, but there are weirder things people post (and believe), and when writing, people do make mistakes. Thinking back, it should have been the clue, but it wasn't. And judging by the other answers, I am not the only one who was fooled by the tone.

          That said, if you feel like `/s` is ruining the sarcasm for you, the solution is pretty simple. GreaseMonkey [0] should be able to remove it very easily, while adding it would be _a bit_ more challenging.

          [0] https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/

          • AnIdiotOnTheNet 6 years ago

            > No, not really, I read the whole post. And the FORTRAN reference was weird, but there are weirder things people post (and believe)

            True. I'm sometimes a source for similarly controversial statements. However, the following line should suffice to indicate the facetiousness of the post:

            > This is the same reason that everyone uses FORTRAN.

            Everyone does not use FORTRAN, and in fact it is so uncommonly used that it is ridiculous anyone would think otherwise. There are probably quite a lot of people in this industry who've never even heard of FORTRAN.

            This is a common form of sarcasm in English, to counter an argument (programming languages should be English-only because there'd be too much fragmentation otherwise) by presenting the same argument in the context of something obviously untrue (that's why everyone uses FORTRAN).

            • amenod 6 years ago

              Did you read my comment? I also said:

              > ...and when writing, people do make mistakes.

              Maybe he meant Python, who knows? If only there was a way to signal you are being sarcastic to avoid misunderstandings. Oh wait... /s

        • Torwald 6 years ago

          > To be frank, "/s" would have totally ruined it for everyone else.

          Yes and no. Here on HN I see it everyday: good on-topic jokes get downvoted.

          I suspect this happens because when people are in "HN mode" there comes a sort of earnestness into their state that makes it hard to detect other tonalities.

          P.S. I needed the FORTRAN bit until it dawned on me…

          • brlewis 6 years ago

            We need a committee to form standards for sarcasm indicator use in various contexts.

        • Stratoscope 6 years ago

          I have run into this a few times when I've posted a link (where it seemed amusing and relevant to a discussion) to this classic video of Australian Senator Bob Collins discussing an environmental mishap:

          https://www.youtube.com/watch?v=3m5qxZm_JqM

          Invariably, someone replies with a comment like "People should be aware that this is not actually an Australian senator, it is the comedian John Clarke impersonating one."

          Every. Single. Time.

          As if it wouldn't be obvious after watching the first few minutes of the video!

          What ever happened to the fun of not realizing something is satire until you're partway into it?

      • monoideism 6 years ago

        "Fortunately, programmers collectively decided to all use the same language."

        That zinger didn't tip it off to you?

    • minikites 6 years ago

      That's one of the biggest problems with sarcasm/irony in casual writing. There's always someone who misunderstands and treats it as serious. This problem is amplified by the number of eyes a typical internet comment receives. It's a major way people are radicalized by internet communities. There's always a proportion of members who are being "ironically" sexist/racist/discriminatory but eventually people take it seriously, the ironic commenters are pushed out of the community and presto, you have 4chan and worse.

      • mkr-hn 6 years ago

        I watched this happen in /r/TumblrInAction. Over the years it got more mean spirited and fell for more obvious trolls/satire as people less committed to the cause of disrespecting self-identity moved on. Now it's all "lol attack helicopters" and cruelty, and half the former regulars are now queer leftist furries.

      • Supermancho 6 years ago

        I loath the cheap humor aspect to forum commentary. It is hurtful as noise or incidentally inflammatory, as you mentioned. There is no way to eliminate it, but that isnt the point. I dont promote pure misdirection.

    • mattigames 6 years ago

      Yeah, thanks for saying that in English, I wouldn't have been able to understand you in any other language.

      • cyborgx7 6 years ago

        da nicht für

        • tempodox 6 years ago

          syntax error

          • mattigames 6 years ago

            python --lang=german main.py

            shivers

            • skykooler 6 years ago

              Think it would be --lang=deutsch. Gotta internationalize the command-line flags too!

              • CodeCube 6 years ago

                I think you mean, --sprache=deutsch

                • Cyph0n 6 years ago

                  Imagine the CLI...

                  • alien_ 6 years ago

                    It's already there, I've often seen console output with translated error messages. Helpful for the users but not of much use to developers, unless using error codes as well

                • tempodox 6 years ago

                  Absolutely. If we do localization of UI texts, the command line options should be included :)

                • codetrotter 6 years ago

                  You are all being silly.

                  Obviously we would translate the name of the command itself, and the language would be implied

                    riesenschlange main.py
                  • Y_Y 6 years ago

                    Frankfurt-am-Main.py

            • MR4D 6 years ago

              Basic would be fun though...

              10 drucken 'Hallo, Welt!" 20 gehe zu 10

              • acje 6 years ago

                10 drucken 'Hallo, Welt!" 20 gehe zu 10 aber schnell

                -o3

            • rusk 6 years ago

              Haut.py

              • chme 6 years ago

                More like 'Haupt.py'. ('Haut' is 'skin') But in German that alone would translate back to 'head.py', so you might want to give some more context to it like 'Hauptdatei.py' ('main file.py').

          • chme 6 years ago

            Excel and other spreadsheet software products localize their function names.

            So people learn to use those in their native language which is great.

            But if they need to use the same software with a different language setting, because they move or work abroad, they have to relearn all those function names, which sucks...

            • tofflos 6 years ago

              It's not great even in the learning scenario. First I have to Google how to solve the problem and then I have to Google how to translate the function names to Swedish.

            • jacquesm 6 years ago

              > Excel and other spreadsheet software products localize their function names.

              And, most annoyingly, their thousands and decimal separators. That has tripped me up countless times.

              100,991 vs 100.991.

    • nickpeterson 6 years ago

      I once worked with a person in an ecommerce department who was annoyed that a German website used German instead of English.

    • gre 6 years ago

      Wow I stopped reading after the first paragraph and almost missed the joke. I have other things to do...

  • bayesian_horse 6 years ago

    At worst it's about as "useless" as other niche programming languages like Brainf* and the like.

    While this language doesn't seem to be geared towards introducing people to computer science, all the languages based on English require someone to learn that script, that language and some of its culture first before being able to use it.

    And in much of the world people don't regularly start learning English (or a latin script for that matter) in elementary school. A language based on Arabic (or Chinese, Korean, etc) could help with introducing computer science in school before the students master English at the necessary level...

  • tpush 6 years ago

    This comment is a good way to see all the HN users who go off of a comment without reading it fully.

    • collyw 6 years ago

      Doesn't everyone do that?

    • adamlett 6 years ago

      I fail to see how this is good way to see all the HN users. Why would I even want that? There must be thousands of HN users.

      • bnt 6 years ago

        Hundreds even!

        • Vosporos 6 years ago

          Please take this seriously.

    • tasuki 6 years ago

      I honestly don't understand how people can reply without even reading what they're replying to. And when they do, why aren't they downvoted to oblivion?

      • yiyus 6 years ago

        It's not always easy to get these jokes in the internet, even more so for non-English speakers which are, precisely, the ones who may be more harmed for not getting this particular joke.

        I only downvote when I see some comment that goes against the rules, I do not think that it is my task to punish those who do not read a comment or do not get a joke.

        Our comments, however, clearly go against the guidelines:

        > Please don't comment on whether someone read an article.

        > Please don't comment about the voting on comments. It never does any good, and it makes boring reading.

    • hu3 6 years ago

      Time is limited. I'd be lying if I said that I read all comments in full when their first paragraph appear to be nonsense.

      I'd rather move on to the next comment.

      • 6gvONxR4sf7o 6 years ago

        Is this what it means for communities to be too large? Like, you'd never do this to a coworker or a friend, but here there's enough content and users that you can say "fuck it" and assume you know better than what you didn't actually read.

        • hnal943 6 years ago

          In fairness, lots of people talk over their friends.

    • mar77i 6 years ago

      I'd prefer to not have to discuss problems in Ali's code I can't read, yet his algorithm doesn't work, but I can fix typos in our resident elderly COBOL programmer's output, even though he's from SE Asia and his English is rather basic. It seems like a personal preference, yet I think it's more complicated than that.

  • manojlds 6 years ago

    We Programmers need multiple languages to avoid being affected by Snowcrash.

  • varelaz 6 years ago

    A lot of people don't speak English and I think it's main barrier to become a programmer or QA engineer.

    • kmlx 6 years ago

      it's much much easier to learn coding than to learn English. i have coworkers that don't speak English but have no problems coding.

      • monoideism 6 years ago

        Well, for people like us, obviously. I have many friends who are multilingual, and who can easily learn a 4th or 5th language if they want, but who have/would struggle with the logical and mathematical facilities required to code.

    • j-pb 6 years ago

      Good! We need less shitty software, the fewer people that write it the better.

      I don't get why you have to be a certified engineer to build a bridge, but you can be some bloke with a 2 weekend course in python to program medical computers, avionics, train scheduling systems and other stuff that kills people when it breaks.

      Non native speaker btw.

      • pgcj_poster 6 years ago

        Good point. There's just one problem: any moron can still be able to become a programmer if they come from an anglophone country. Therefore, I propose that all companies in English-speaking countries switch to using Linotte[1], which is based on French.

        I'm also going to submit a patch to GCC that will require the user to solve a differential equation before their code will compile.

        [1] https://en.wikipedia.org/wiki/Linotte

        • j-pb 6 years ago

          On the fact that the atlantic has two sides: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/E...

          > 1. good programming is probably beyond the intellectual abilities of today's "average programmer"

          2. to do, hic et nunc, the job well with today's army of practitioners, many of whom have been lured into a profession beyond their intellectual abilities, is an insoluble problem

          3. our only hope is that, by revealing the intellectual contents of programming, we will make the subject attracting the type of students it deserves, so that a next generation of better qualified programmers may gradually replace the current one.

        • pgcj_poster 6 years ago

          > any moron can still be able to

          Whoops, proved my own point.

      • Mirioron 6 years ago

        Because man-hours is the limiting factor in software that is made. Additional software simply gives you more options to choose from. Yes, it contributes to noise, but it's nothing like building two bridges.

        • j-pb 6 years ago

          And thats why Apple and Microsoft have the best software?/s A monkey with a typewriter will produce garbage no matter how many monkey hours it puts in.

          The only way to have as little bugs as possible is to have as little software as possible.

    • EugeneOZ 6 years ago

      You don't need to know English to write code. I wrote my first QBasic and Visual Basic programs (one of them was "photo editor") when only foreign language I knew was German (my native is Russian).

      • tim333 6 years ago

        Or at least just a few words I guess - if, for, while etc.

        • Mirioron 6 years ago

          You don't really need to know what these words mean in English. You just have to know what they do in the code.

        • np_tedious 6 years ago

          It's a headstart for sure, but English speakers do have to learn those reserved words and control structures in each language. The difference is we have the benefit of grounding them in their similar, but not identical, ordinary meanings

          The bigger deal is standard lib classes and functions. An English speaker can guess for the names of things they want whereas a nonspeaker would have to remember them explicitly

      • Digit-Al 6 years ago

        I'm really curious now. If you don't mind me asking, how did you learn the meanings of the keywords when they were in a language you didn't understand? Did you have to learn to translate "for", "while", etc into Russian equivalents?

        • EugeneOZ 6 years ago

          I knew meaning of "if then else", "function", "go", "return", other keywords were just keywords for me - I knew what they do and it was enough.

        • usrusr 6 years ago

          Same way you learn to use the ternary operator in c-ish languages? All the binary operators that have no equivalent in daily life?

        • gumby 6 years ago

          How do you learn to read music when all the keywords are in Italian? Do you have to learn to translate “fortissimo” etc into English equivalents?

        • rfhjt 6 years ago

          Context. I don't know what lingua franka means, but I also know what it means. I could bother and find literal translation, but why would I? The same applies to obscure English words, weird programming language keywords or math symbols. Integral and differential symbols don't really translate into anything and we use the word "integral" only because we can't type this symbol on an average keyboard.

    • jcranmer 6 years ago

      It's also a barrier to becoming a scientific researcher, an airline pilot, or working at an international company. If you're going to communicate with people from other cultures, you need a shared language, and many international contexts have centered on varieties of English for that shared language.

  • collyw 6 years ago

    Considering that it is a relatively limited set of keywords and operators that make up a programming language, wouldn't it be relatively easy to translate it to a more friendly version?

    • varelaz 6 years ago

      Nope. You can translate instructions, but standard library and frameworks also should use local naming or it will be completely useless.

  • mikorym 6 years ago

    >> It is implemented as a tree-walking language interpreter in JavaScript.

    I think this is probably why it is neither useful nor intended to useful other than as an "exercise".

  • intc 6 years ago

    * https://wordsandbuttons.online/fortran_is_still_a_thing.html

    "Fortran is not, of course, outdated, and it’s not at all complex. In fact, it has grown into these myths exactly because it is that good at what it does."

    Just wanted to share some positive FORTRAN vibes...

    • Timpy 6 years ago

      > Its users are scientists and engineers; not computer scientists and software engineers, but the real ones

      That's an unnecessary slight

      • Ma8ee 6 years ago

        Yes, but it made me laugh.

  • koheripbal 6 years ago

    Im not sure your analogy holds ground.

    Different programming languages are created try to solve limitations in existing programming langs.

    Writing it in a different ascii character set isn't solving any technical issue - it's solving an accessibility issue, but compounding the problem of compatibility tremendously.

    Obviously there is a efficient middle ground between accessibility and compatibility.

    It's great for more people to be able to code. It's also great to be able to read code written by someone else across the world.

    There is both pain and wisdom in standardization.

    • pgcj_poster 6 years ago

      I'm not sure that I accept the distinction between technical issues and accessibility issues in the case of programming languages. Any Turing-complete language, given the right tooling, can be used to solve any software problem. Ultimately, we only use languages other than FORTRAN (or even assembly, for that matter) because it's easier.

      • NoodleIncident 6 years ago

        A grid of rocks in a desert is turing complete. It's not a useful concept for discussing the differences between programming languages, precisely because it's such a low bar.

        "Any software problem" includes these two extremely common problems, neither of which has anything to do with Turing completeness:

        * It needs to do something fast

        * It needs to be written quickly

        • pgcj_poster 6 years ago

          I wasn't suggesting that Turing completeness means that all languages are somehow the same. To the contrary, I was arguing that languages are differentiated primarily by how easy they are to use for a particular task—in other words, their accessibility.

          Execution speed is clearly not the reason why multiple programming languages exist, because assembly is as fast or faster than high-level languages. Rather we use programming languages because they are easy to understand and reason about, allowing us to work quickly, among other things. The usability of a language is impacted by things like whether it has automatic memory management, or whether it uses functions instead of gotos, but also by the vocabulary it uses. Consequently, I see the vocabulary of a language as not particularly different from those other attributes.

  • jiofih 6 years ago

    While it’s a good joke, in reality it does not compute.

    “Learning a new language” as in programming language, sits in the days-to-months range, while “learning a new language” as in Arabic takes months-to-years, so you’re building a much, much deeper chasm for others to cross and contribute, even though the source code remains English-based.

    You can already see this happening with some open source libraries coming from China, where the documentation and all discussion being in ZH already completely blocks foreign contribution.

    • eloisant 6 years ago

      As you say it's already happening for project where all the documentation is not in English.

      So what's wrong if the language also is not in English? Can you not imagine that some projects don't care whether you specifically can contribute or not?

      It's not the first language not in English actually, WLanguage for example from WinDev can be written in English, French or Chinese.

    • mattigames 6 years ago

      Not only that, you can see people trying to escape the divisions on the programming language landscape, for example on the data-science field Python is miles ahead of any other language (and such homogeneity is widely seen as a good thing).

    • oefrha 6 years ago

      Given that one in five person on the planet speaks Chinese as their first language, lack of “foreign” contribution will probably work out okay for them. Global contribution is nice but certainly not necessary. Whoever started the communities have the right to set the rules, using Chinese for (primary) documentation and discussion being one of them. If you don’t like it you can start your own.

      • michaelmrose 6 years ago

        Pure numbers mean nothing. Neither a farmer with no internet nor an urban Chinese citizen with a mobile internet but no actual computer is liable to contribute much.

        There are 800 million Chinese internet users almost all are mobile only. Those that work as professional developers are expected to work insane hours that are unlikely to leave much time for public works after 9 to 9 6 days a week.

        • oefrha 6 years ago

          > There are 800 million Chinese internet users almost all are mobile only.

          What's that supposed to imply? Just Googled "number of software developers in China" and "number of software developers in the world". Got 5.79 mil (2017) and 23 mil (2018) as answers. Not sure how accurate but can't be that far off.

          > Those that work as professional developers are expected to work insane hours that are unlikely to leave much time for public works after 9 to 9 6 days a week.

          I didn't pay too much attention to that story, but having talked to a few software developer friends in China myself, I'm inclined to say it may be a widespread problem but probably not universal. Whether that's true or not, I certainly see a fair share of popular open source projects coming from China these days, not one in five of course, but given their relative isolation and my inherent U.S./Western bias the number that caught my eyes are still quite impressive.

          Not to mention there are a lot of corporate open source in China as well. In fact, just like in the U.S., a good chunk of high profile open source projects are corporate-developed or corporate-backed.

          Moreover, whether one in five is accurate wasn't even the point of my post.

          • michaelmrose 6 years ago

            Parent poster

            >You can already see this happening with some open source libraries coming from China, where the documentation and all discussion being in ZH already completely blocks foreign contribution.

            You

            >Given that one in five person on the planet speaks Chinese as their first language, lack of “foreign” contribution will probably work out okay for them.

            The point is you are using number of native speakers as a proxy for the population of developers being sufficient to support development.

            First thing is the single most popular l1 language in China manderin is more like 1 in 8 humans, next the distribution of talent is nothing like distribution of speakers. It looks a lot more like the distribution of wealth because access to computers during formative years or indeed at all is of substantial importance.

            There are of course still many Chinese developers of substance. But because highly educated developers in China are both a smaller portion of the population and likely to speak English starting a manderin only software project would mean choosing between only Chinese developers and Chinese devs and the rest of the planet as well.

            • oefrha 6 years ago

              > First thing is the single most popular l1 language in China manderin is more like 1 in 8 humans

              Wrong in this context.

              1. People who speak other dialects like Cantonese overwhelmingly use the same written language, so there's no barrier in written communication;

              2. AFAIK Mandarin is the mandatory teaching language in Mainland Chinese schools, so even if you want to be pedantic I'd say 1 in 5 has native or bilingual proficiency in Mandarin.

              > starting a manderin only software project would mean choosing between only Chinese developers and Chinese devs and the rest of the planet as well.

              First, there's no such thing as a "mandarin-only software project", you use Chinese the written language as explained above.

              Secondly, it's still a reasonable choice if the author finds the alternative mentally draining, or the primary audience does. No point in global-proofing your project if the primary audience need to spend extra time and energy to communicate worse. I don't necessarily advocate for it, but I don't pretend that every project on earth has the obligation to make it convenient for me to contribute.

      • kortilla 6 years ago

        > lack of “foreign” contribution will probably work out okay for them.

        That’s not how it works. Programming proficiency isn’t randomly distributed across the population.

    • pgcj_poster 6 years ago

      If it's completely impossible to work on something that uses a foreign language, then it must be pretty important for people to be able to program with the language they already know.

      • big_chungus 6 years ago

        There is an obvious difference; English is still the lingua franca. If you're dealing with anything international, you use it because everyone has a decent shot of knowing it; assuming most oss isn't confined to a single nation, english is still the best choice. Plus, for this reason, other nations are usually much better than America about teaching a foreign language.

        • pgcj_poster 6 years ago

          Sure, if you want to start an international project, then English is a pretty good language to use.

          However, I have heard people say that all software everywhere should be written in English, including things like personal projects and internal tools for companies in non-anglophone countries. I think that's kind of ridiculous.

          • big_chungus 6 years ago

            I guess it depends how you define, "Written in english." Standard keywords in, say, C++ are derived from english, though they have a symbolic meaning everyone has to learn. I'd understand variable names and docs being in a foreign language.

            Best-case is still engligh, though; working in another language is like doing science in American units. It works fine as long as you stay localized, but if you need to hire foreign devs to supplement your team, good luck (see the infamous Mars rover crash.)

          • pmontra 6 years ago

            No customer ever objected to my code with English variable / method / function names. Some don't care, others explicitly ask for English because maybe "one day we want to sell the company to somebody outside the country".

        • knodi123 6 years ago

          > English is still the lingua franca

          Ironic that in order to say this, you used a latin phrase that translates to "language of the Frankish people".

          • zrobotics 6 years ago

            Ironic? I think one of the main reasons English has become such an international language is how bastardized it is and how easily words & phrases are borrowed from other languages.

          • NoodleIncident 6 years ago

            The fact that the Latin translation doesn't make any sense means that it was an English phrase the whole time, despite its etymology.

          • mirimir 6 years ago

            Except that it doesn't mean what you imply.

            > The term lingua franca derives from Mediterranean Lingua Franca, the pidgin language that people around the Levant and the eastern Mediterranean Sea used as the main language of commerce and diplomacy from late medieval times, especially during the Renaissance era, to the 18th century. At that time, Italian-speakers dominated seaborne commerce in the port cities of the Ottoman Empire and a simplified version of Italian, including many loan words from Greek, Old French, Portuguese, Occitan, and Spanish as well as Arabic and Turkish came to be widely used as the "lingua franca" (in the generic sense) of the region.

            > In Lingua Franca (the specific language), lingua means a language, as in Portuguese and Italian, and franca is related to phrankoi in Greek and faranji in Arabic as well as the equivalent Italian. In all three cases, the literal sense is "Frankish", leading to the direct translation: "language of the Franks". During the late Byzantine Empire, "Franks" was a term that applied to all Western Europeans.

            https://en.wikipedia.org/wiki/Lingua_franca

    • ISL 6 years ago

      For centuries in the sciences, it was essential to know more than one language in order to be able to keep up with developments worldwide. As recently as our parents' generation, it was a graduation requirement for doctorates.

      That English has become the lingua franca [1] of the world is a recent development. If we would like people to read our documentation, it is reasonable to expect that we should do our best to learn how to read theirs, too.

      [1] https://en.wikipedia.org/wiki/Lingua_franca

      • gumby 6 years ago

        Universities have only recently (past few decades) started dropping the foreign language requirement for the PhD.

      • novok 6 years ago

        Latin used to be the language of science & religion in europe too, it's not unprecedented that an industry standardizes on one language in a region.

      • michaelmrose 6 years ago

        There are 6000 languages. Even the top 5 would take a decade of your life. It would make more sense to have a miniscule fraction of people make machine translation better.

    • dorfsmay 6 years ago

      In the early days of nginx non-russian doc was a link to Google translate, and that was good enough, it worked fine for everybody.

      How do you think non-english speakers read documentation in english?

    • cicero 6 years ago

      We don't have to globalize everything. Yes, it's wonderful that we have the potential for people around the globe to work on and benefit from a particular project, but it is not necessary for every project to work that way.

    • egypturnash 6 years ago

      How large is the chasm for a new programmer whose native language is Arabic?

      • michaelmrose 6 years ago

        It's pretty high. We could make it lower by helping people learn English but tools to program in their existing language so they don't have to learn English first make sense too.

    • basementcat 6 years ago

      You might be surprised how much Arabic you can pick up if you spend a few weeks in a place like Cairo. It helps if you make an effort to completely immerse yourself and not spend too much time in western style shopping malls.

      • michaelmrose 6 years ago

        Moving to a different continent is a bigger chasm yet.

    • hinkley 6 years ago

      Think about all the bad variable and function names from your ESL coworkers. This stuff matters to me enough that I know I would hate being on a project knowing I'm That Guy.

      It does bring to mind that Mathematics isn't really done in 'english', it's a pidgin of latin and arabic symbols (and like most or all pidgins, has some whole-cloth inventions).

      Instead of making most people learn a new language, should everyone have to learn a new language? Like they used to teach college in Latin in Europe?

      The problem is that the only programming language I know of that tried to be its own language-language was APL and thoughts of coding in that give me nightmares.

      UML tried to remove some of the english and fared better than APL but that's a wide chasm to cross and they too ended up at the bottom of it.

      We are very, very slowly replacing some text in programming languages with more symbols, and with more parsers accepting Unicode characters for string literals we also should have access to the entire panoply of mathematical and scientific symbols (I'd really love proper multiply, not, and exponents to start, then maybe we can talk about sigma for some reduce operations) but the tipping point into "let's go ahead and remove the rest of the english" seems so far off that I'll probably never see it.

      • throwaway87378 6 years ago

        > The problem is that the only programming language I know of that tried to be its own language-language was APL and thoughts of coding in that give me nightmares.

        Have you ever actually tried learning APL, or are you just trolling?

  • protomolecule 6 years ago

    "I should be able to read code written anywhere in the world and understand what it does"

    You cannot read tons of code written in the 1C language [0] unless you know Russian, but I don't think it's a loss for you or for Russians because it's a scripting language used by a suit of enterprise software dealing mostly with ever changing Russian accounting standards and tax code [1].

    At the same time it's economically effective to use Russian language because it lowers the entry barrier into 1C programming and allows domain experts to understand some of the code.

    P.S. Yes, I didn't bother to read the second paragraph :)

    [0] https://govnokod.ru/1c

    [1] https://en.wikipedia.org/wiki/1C_Company

    • rebolek 6 years ago

      My Russian is shitty, but not so shitty to not understand what "govnokod" means :-)

    • justbaker 6 years ago

      Anyone with experience in 1C/tales of 1C? I've been curious about it since discovering it existed.

      • protomolecule 6 years ago

        Not me :) If you are interested in something specific I could try to google (or should I say 'to yandex' in this case?) that for you and hopefully you'll be able to read it with the help of Google Translate.

  • jcelerier 6 years ago

    that's certainly funny up to the day where you have to debug a codebase where all the function names and comments are in japanese. Also, I lost so much time searching for issues in badly-localized error messages that I nowadays just set my computers in english even though it's not my main language. It's just more efficient.

    • Nasrudith 6 years ago

      Yeah I have seen that. It highlights the one weakness of text based code formats - still prevaling for a good reason.

      Multiple languages for developers is kind of a fringe case for functionality seen more in importers and fantranslaters.

      • ourlordcaffeine 6 years ago

        > It highlights the one weakness of text based code formats

        This is why I program exclusively in Piet

    • SiempreViernes 6 years ago

      Eh, I had to support a codebase where the comments where in inproperly encoded cryllic. But happily the code was a php app that had lots of large hand crafted if soups for handling dates, so I'm pretty sure the comments were useless anyway.

    • knolax 6 years ago

      In the current status quo your nightmare scenario (having to debug a codebase with comments in a diffeeent language) is precisely the everyday reality for non-English speaking devs. A Japanese dev could easily make the same comment as you, the difference being he actually has to deal with situation in question on a daily basis.

      You could make the argument that English is the "lingua franca" but the phrase itself demonstrates just how ephemeral that is. I've lived in places before where a generation ago Russian was taught as a "lingua franca". Nowadays you would be hard-pressed to find anybody with a good understanding of Russian (good enough to understand technical documentation) there, even amongst ethnic Russians.

      • ralusek 6 years ago

        The internet has changed what it means to be the Lingua Franca. The ubiquity of English language in the largest internet communities and high quality media content would have to have a very strange reason to change. Before, it was simply a function of your colonizer or trading partners.

  • cmroanirgo 6 years ago

    I love the video on the page. I like the way RTL looks and the way the author/creator specially mentions the beauty of arabic and how the code can be made to look aesthetically pleasing (not that I know anything about arabic personally). Too much of our time is spent on functionality and terseness: so it's great to see this project.

  • tempodox 6 years ago

    That's exactly why all the HN'ers use JavaScript to write FORTRAN!

    • Vosporos 6 years ago

      Truly a Galaxy-brain move

  • sam0x17 6 years ago

    I think that the root issue here isn't as scary as it sounds (yes I know the OP is being ironic, but this is still a real concern that people have). One could easily write a tool that translates a foreign languages codebase into something english-readable. The plus here is that the bad google translations would probably yield descriptive names that are no worse than what we are already accustomed to.

  • fxj 6 years ago

    This is valid python3, try it out.

      數字 = 23
      運行 = True
      假 = False
      整數=int
      輸入=input
      印出=print
      while 運行:
        猜測 = 整數(輸入('輸入一個數字: '))
    
        if 猜測 == 數字:
            印出('恭喜, 你猜對了.')
            運行 = 假 # 這會讓循環語句結束
        elif 猜測 < 數字:
            印出('錯了, 數字再大一點.')
        else:
            印出('錯了, 數字再小一點.')
      else:
        印出('循環語句結束')
      印出('結束')
    

    See:

    http://reganmian.net/blog/2008/11/21/chinese-python-translat...

    • pgcj_poster 6 years ago

      I don't know any Lisp, but I wonder about doing something like this in one, since if I understand correctly, even things like conditionals are functions. I'm sure it would be possible with macros, but I wonder if you make a Chinese Lisp just by redefining functions.

      • elangoc 6 years ago

        Indeed!

        https://elangocheran.com/2014/10/30/exploring-programming-in...

        https://youtu.be/MqjMZNwnYCY

        Although I started the above project around the same time as Ramsey started his project in the original link (CLisp in Arabic), they were two entirely independent things. Ramsey's project is a 100% translation, whereas my project scales to other natural languages but is not a 100% translation.

        Tim and I worked on trying to make programming in other languages easier as a means to help more kids learn programming, and learn FP the Lisp way, which we explain as more natural.

        https://www.youtube.com/watch?v=Y3-53JoGPE4

        https://power-turtle.com/#freestyle

      • wostusername 6 years ago

        Conditionals are not functions in Lisp. They are 'special forms' since they have to control the evaluation of their arguments and functions always evaluate all their arguments.

        So, if you want to translate a lisp into another language you have to resort to macros.

        • p_l 6 years ago

          None and none, as what you need is to alias the symbols for most lisps.

          • wostusername 6 years ago

            Been a while since I've done Lisp seriously, but I don't believe that's possible, at least in Common Lisp (SBCL). While if responds to symbol function:

              * (symbol-function 'if)
              #<CLOSURE (:SPECIAL IF) {1000C5084B}>
            

            SBCL refuses to set that value to an alias:

              * (setf (symbol-function 'foo) (symbol-function 'if))
              #<THREAD "main thread" RUNNING {10005205B3}>:
                #<CLOSURE (:SPECIAL IF) {1000C5084B}> is not acceptable to (SETF SYMBOL-FUNCTION)
            

            Trying this with regular functions works as intended:

              * (setf (symbol-function 'bar) (symbol-function 'mapcar))
              #<FUNCTION MAPCAR>
              * (bar #'1+ '(1 2 3))
              (2 3 4)
            

            Special forms are, well, special and a lot of the regular parts of lisp doesn't work with them.

            • p_l 6 years ago

              hmm, I think worst case symbol-macro should work there :/

              I expected specials to work in this case, but apparently not.

          • kazinator 6 years ago

            Yes; alias the symbols that are macro operators or special operators via macros, and alias other kinds of symbols in their respective namespaces.

            Variables may also have to be done with macros, because you want an assignment to a translated variable name to appear in the original variable. Some Lisp dialects perhaps allow a variable cell to have a binding to two or more symbols which could do the same thing.

    • thesuperbigfrog 6 years ago

      You can write Perl in Latin or Klingon:

      Latin from https://metacpan.org/pod/release/DCONWAY/Lingua-Romana-Perli... :

        use Lingua::Romana::Perligata;
       
        adnota Illud Cribrum Eratothenis
       
        maximum tum val inquementum tum biguttam tum stadium egresso scribe.
        da meo maximo vestibulo perlegementum.
       
        maximum comementum tum novumversum egresso scribe.
        meis listis conscribementa II tum maximum da.
        dum damentum nexto listis decapitamentum fac
            sic
                lista sic hoc tum nextum recidementum cis vannementa listis da.
                dictum sic deinde cis tum biguttam tum stadium tum cum nextum
                comementum tum novumversum scribe egresso.
            cis
      
      
      

      Klington from 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!
      • magashna 6 years ago

        I don't understand Latin at all but I picture a centurion dictating this to a scribe, chiseling into stone, soon to deposit it in a Flintstone-ian rockputer.

      • make3 6 years ago

        I love the Latin one, looks like a magical incantation :)

      • Aperocky 6 years ago

        It's too sad the latin one is not updated since 2001, I would love to use it to write random personal pieces of code!

    • JoBrad 6 years ago

      Uses English grammar, though.

  • donkeyd 6 years ago

    This reminds me of projects I did specifically for the Dutch market, but were coded in English because we needed to facilitate non-Dutch developers. Each new feature started with finding translations for Dutch words to be used as variables in code. Then when we created the UI, we'd have everything but the field labels in Dutch, making bug reports confusing, especially for the non-Dutch developers.

    Good times!

  • thomascgalvin 6 years ago

    > I should be able to read code written anywhere in the world and understand what it does.

    I can't read the code written at my desk a week ago and understand what it does.

  • rtkwe 6 years ago

    All that said I think there are benefits to confining languages principally to Latin script or making some kind of direct transliteration utility to Latin script since it's the language for ~70% of the worlds population [0]. It's very hard to learn to read and even more importantly hard to type in a different script.

    [0] https://www.worldatlas.com/articles/the-world-s-most-popular...

    • AnIdiotOnTheNet 6 years ago

      It isn't really that hard to learn to read a different script, unless it's logographic. A solid week of study at the outside and then it is just a matter of practice to get faster.

      • rtkwe 6 years ago

        Arabic is pretty rough because there's a lot of rules about how letters change based on the letters around them. Also it reverts me back to hunt and peck mode for a long time until I learn the new layout which will be a while if I'm just using it for programming.

        • knolax 6 years ago

          > it reverts me back to hunt and peck mode for a long time

          I don't see how that's a problem with Arabic specifically. The same would happen if you switched to typing English in Dvorak.

          • rtkwe 6 years ago

            It is different... I don't have to switch to DVORAK to program in Latin script based programming languages it's a choice. I would have to switch to an Arabic layout to program in قلب.

    • knolax 6 years ago

      If you can't even figure out how to switch Input Methods I don't think you're going to have good luck programming either.

      I also think you're conflating ASCII with the Latin Script. ASCII is easy to type and read, but anything outside of that range probably presents just as many burdens as say Tamil or Korean. The majority of Latin script languages however, are not limited to ASCII (for example é,ü, or €, which I ironically had to switch to a CJK Input method to type) making your "~70%" closer to whatever the population of native English speakers is.

      The "let's make things marginally easy for the majority at the expense robustness in a way where the benefits don't even approach the drawbacks" attitude is how we get things like NodeJS where we have people writing desktop apps in JS b/c the webdevs are more familiar with it at the expense of everyone running massive, slow, and vulnerable apps with 900 different libraries all downloaded from shady sources.

      • rtkwe 6 years ago

        > (for example é,ü, or €, which I ironically had to switch to a CJK Input method to type) making your "~70%" closer to whatever the population of native English speakers is.

        True, you got me, I should have said just ASCII. For the most part though languages use the ASCII set + additional characters rather than replacing or removing characters entirely. so it's still 70%-ish not just English.

  • _aleph2c_ 6 years ago

    Speaking as a Cobol programmer I find your comments deeply offensive.

  • sildur 6 years ago

    Sí, tienes razón. Deberíamos extender eso y expresarnos cada uno en nuestro idioma. La experiencia va a ser enriquecedora y seguramente no vamos a encontrar pegas.

    • sudosteph 6 years ago

      Jes! Kaj se oni ne povas kompreni , tiam ni cxiuj povas lerni la lingvo universala, Esperanto. Nun ni povas skribi malbone en du o plus lingvoj! Tio estas plejbona de el plejbona.

  • danharaj 6 years ago

    They had us in the first half I'm not gonna lie.

  • shitgoose 6 years ago

    What is wrong with FORTRAN??

    • TheRealKing 6 years ago

      Nothing is wrong with (modern) Fortran (2018), although I'd argue that everything is wrong with using FORTRAN (77) for numerical computing in the new millennium. On the contrary, modern Fortran (2003,2008,2018,202X) is still truly the best and most expressive language for numerical scientific computing.

  • wheres_beef 6 years ago

    I don't get why this is so controversial. Programming languages should absolutely be in a language that the majority of programmers can understand. Everyone is bringing up the fact that programmers can't understand each others' code; do we really think introducing more languages, whatever they may be, will help that?

  • t0mek 6 years ago

    Since there's a lot of effort in this thread to deconstruct the joke, I just want to add that FORTRAN is probably reference to the classic "Real Programmers Don't Use PASCAL" [1]. In fact, the whole comment would fit there nicely.

    > If you can't do it in FORTRAN, do it in assembly language. If you can't do it in assembly language, it isn't worth doing.

    [1] https://www.ee.ryerson.ca/~elf/hack/realmen.html

  • OptionX 6 years ago

    Ikr? I mean since when does having a lingua franca ever helped any kind of scientific or technical progress? All those people writing in latin and greek despite not being their native language were just sheep trying to fit in. Like that Newton guy, just your typical apple-hipster trying to be one of the "cool kids".

    I think of myself as eclectic taster of the many fine cultures worldwide and since I just got python to print Hello World in the console I'm moving on to learning Swahili. It should take about a week. It's all just different languages anyway.

    • pgcj_poster 6 years ago

      It seems that there are two theoretical extremes on this position:

      1. All code should be written in English, and no one should ever use any other language in programming.

      2. All code should be written in local languages, and no one should should ever use a common language for collaboration.

      I say "theoretical" because I've never heard anyone argue anything like the latter point, which you are satirizing here. On the other hand, there are people in this thread who seem to be arguing the former, which I find nearly as ridiculous.

  • chipotle_coyote 6 years ago

    Kind of remarkable that when I first read this comment thread, this was the top-rated comment, but while I was posting a short agreement with someone in this reply thread who noted that HN has a collective problem with snark and satire, pgcj_poster's comment was downvoted by people who apparently have a problem with snark and satire.

    I would put "/s" here, but when I say there are HN readers who really need to lighten the hell up sometimes, I am not remotely being sarcastic.

faissaloo 6 years ago

Fun little note, the programming language's name means 'Heart' in Arabic.

This makes me wonder if perhaps a abandoning language entirely and relying on symbols for syntax might be the way forward, I have found that the more a language tries to emulate writing the more ambiguous it becomes, maybe the opposite will yield better results, perhaps we could choose to make the language resemble a diagram. Very interesting and thought provoking project.

lbj 6 years ago

Excellent - What we need is less cooperation across borders.

(sarcasm may occur)