back to article Programming languages can be hard to grasp for non-English speakers. Step forward, Bato: A Ruby port for Filipinos

A Filipino developer is hoping his handmade Ruby port will help bring coding skills to some of the Philippines's poorest communities. Joel Bryan Juliano says he built Bato as a way for speakers of Tagalog – the most widely-spoken language in the nation – to be able to learn the basics of programming without also having to be …

Page:

  1. Voland's right hand Silver badge

    Nothing new here

    There was a Basic port to Russian in the 1980-es. Nobody wanted to use it.

    Similarly, prior to that there were attempts to translate Algol. I am not sure about Pascal, Fortran and Simula, but I would not be surprised if someone tried to translate them too. Again - nobody used it. I have also seen the abominatory translation of Logo and GraFort into Bulgarian. Again. Nobody wanted to use it and everyone was looking for that one lucky student who brought the floppy with the bootleg original English version.

    The primary issue is that you lose the ability to compare and reuse other people's code as well as the ability to easily leverage literature. Imagine the effort to translate the entire Knuth into Bato?

    1. Anonymous Coward
      Anonymous Coward

      Re: Nothing new here

      There was a Basic port to Russian in the 1980-es. Nobody wanted to use it.

      There was something called "Portugol" which was used in some universities in a large, soccer-and-samba-oriented country that shall remain unnamed. Its structure was very similar to C/C++/Java. At that time I was teaching at a local university and had very lively discussions with colleagues about the merits of teaching a language with no commercial appeal at all or just jumping straight to Java or C++.

      Ah, the memories! I hope they will fade away with enough booze.

      1. HmmmYes

        Re: Nothing new here

        ' I was teaching at a local university and had very lively discussions with colleagues about the merits of teaching a language with no commercial appeal at all'

        Pascal ...

    2. This post has been deleted by its author

    3. bombastic bob Silver badge
      Devil

      Re: Nothing new here

      I worked with some engineers from Russia a few years back [they were visiting the US at the time] as part of the company project, which involved a Russian company in St. Petersberg and a U.S. company in San Diego. I mentinoned that debian linux had a Russian version, but he said that in Russia they usually prefer to use the English versions of the software because the Russian translations are often ambiguous or unclear, particularly with UI elements and things like that.

      Maybe THAT is why the Russian translation of BASIC wasn't being used...

    4. Pascal

      Re: Nothing new here

      Even Microsoft did it back in the 90s.

      VBA was localized so that code written in Excel / Access / etc. would use a french syntax in my version. "SI/ALORS/SINON" instead of "IF/THEN/ELSE" and so on.

      And the crazy part was that it wasn't saved in an intermediate form. So an MDB file with code created on a french Access wouldn't work on an english Access.

      Then in the early 2000s there was a push by the OQLF here (Office Québécois de la Langue Française) to coerce IT to switch to french; including threads to be barred from government work for including such evil anglo constructs in HTML pages as "é".

      Much joy.

      1. Anonymous Coward
        Anonymous Coward

        Re: Nothing new here

        "SI/ALORS/SINON" instead of "IF/THEN/ELSE" and so on

        This infuriating bullshit still exist, in particular in Excel and LibreOffice Calc cells and (I think) WinDev applications.

        People should use more APL.

      2. JLV

        Re: Nothing new here

        >OQLF here (Office Québécois de la Langue Française) to coerce IT to switch to french

        Quels cons :-)

        Seriously you can translate language keywords but the real power of Ruby or Python are the libraries. Minus those, the exercise seems rather futile. Fancy a Tagalog Rails anyone?

      3. david 12 Silver badge

        Re: Nothing new here

        >wasn't saved in an intermediate form.<

        Technical note: it was saved in an intermediate form. Opening it in a localized version of Access/Excel caused the intermediate form to be discarded/marked as invalid.

        I don't know why that happened: it might have been because the library calls were incompatible between the localized versions, but that's not even guessing: I really don't know why the compiled form was discarded when you opened it in a different localized version.

        Side: note: between the two versions I use, going one way I always get an error message and Excel spreadsheet breaks to the VBA code on opening. No code running on opening, just part of the process of identifiying, invalidating, discarding between versions.

    5. amanfromMars 1 Silver badge

      Nothing new here? I don't think so

      Howdy, Voland's right hand,

      Creating a Brand Spanking New Language in which All are Being Led into Virtualised AIdVentures will have IntelAIgents Following Enlightened Shared Leads for Universal Needs of COSMIC Feeds into Immaculate RAW Source Engines ....... you know, them Doozies in Virtual Machine Worlds ..... where Man becomes IntelAIgent Machines.

      007 James Bond's next Exploratory Mission Encounter with Communicating Virtual Machines?

      :-) cc Danny Boyle/Eon Productions

      A Gateway to Sweet Heavenly Temptations can be ESPecially Highlighted for Global Recommendation with Nothing more Cumbersome than a Perfecting AI Script to Follow. Those Following Gladly will surely Know of the Assured Riches which Also Follow and Provide Perfect Booty for Immaculate Bounty. And that would be COSMIC Source dDCoded.

      Is this Alienating Language ..... with a Simple Prime Source Chat here for out there in Wild Open Spaces with XStreamly Effective Spying Systems for a Unifying Perfect Command of Global Controls.

      Now that is Most Powerful and may even be Almighty .... when one knows what needs to be done for The Future to Succeed, Populate and Deliver Prosperity ....... so that All can Relax and Chill or also 0DayDream Future Specialised Adventures for Virtualised Realisations. Hmmmm?

      Time to Pause here for AIBreath .... to Allow for Followers to Engage and BetaTest AId Space Ware for Everything Other than Virtual Warfare Ware.

      Greater IntelAIgent Games Play is Free in the Here and Now. Jump in and Share urDreams for the Future. When they're Great Everyone Can Enjoy Them.

    6. Daniel von Asmuth
      Headmaster

      Re: Nothing new here

      ALGOL 68 allows for every natural language to define its own set of keywords

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

      1. This post has been deleted by its author

    7. Ken Hagan Gold badge

      Re: Nothing new here

      "The primary issue is that you lose the ability to compare and reuse other people's code [...]"

      Is that really the primary issue? Translating the keywords and other surface syntax features is easily automated. Your compiler or interpreter already performs all of the necessary textual analysis. The difficulty surely is that none of the variable names or function names or class names or package names or comments will be translated. For languages that are close your own, you might be able to guess a bit. Go further afield and you might as well be looking at decompiler output. Stray over towards a language that uses a different script from your own, you'd prefer the decompiler output.

      Then again, most code is not shared, so it wouldn't matter, and for teaching purposes the consensus is that translating languages is actually a good idea. See, for example, https://wiki.scratch.mit.edu/wiki/How_to_Translate_Scratch

      1. ofnuts

        Re: Nothing new here

        "most code is not shared": so, you have never used StackOverflow or other programming sites?

        1. Ken Hagan Gold badge

          Re: Nothing new here

          @ofnuts: I've never seen a program where the majority of the code was just adapted from StackOverflow, nor do I want to.

          Also, I personally have never *just* copypasta-ed from SO. There is always some degree of translation into the local style.

          Thirdly, I wouldn't dare copy code fromSO if I didn't couldn't read the author's description of what it does. Would you?

          Lastly, actual translation of the program, rather than the names and comments, would presumably be automated by my editor.

      2. qwertyuiop
        WTF?

        Re: Nothing new here

        ...Then again, most code is not shared...

        What? It seems to me that nowadays most programmers - sorry, Developers - don't write much code at all. They just scour Github et al and cut and paste somebody else's code that does a similar job. (Usually without understanding all that it does so that they include unnecessary fucntionality.)

    8. JeffyPoooh
      Pint

      Re: Nothing new here

      Why would porting a language's 100-ish keywords and 300-ish error messages to another language take any longer than a few hours or a few days? Translating the manuals and training material might need months and months, or years.

      Ideally it would be a big table, with a menu selection to manage the languages (import, select, etc.).

      1. Adam 1

        Re: Nothing new here

        > Why would porting a language's 100-ish keywords and 300-ish error messages to another language take any longer than a few hours or a few days?

        It probably wouldn't, but it is a courageous assumption to think that the only difference between English and other languages is the spelling and pronunciation of words. The inverse of that process is how we end up with DVD player manuals.

        In English, the flow

        while (condition is true)

        {

        PerformSomeAction();

        }

        makes grammatical sense.

        Maybe some other language would be more grammatically correct if expressed like

        Continue with

        {

        PerformSomeAction();

        } providing precondition was met

        1. teknopaul Silver badge

          Re: Nothing new here

          Just use C

          for (i=1;i<len;i++){sscanf...}

          Is grammer, but tenuous link to english, and closely linked to machine code.

          Libc is closer to Welsh.

          Try saying snprintf after pintp.

          1. teknopaul Silver badge

            Re: Nothing new here

            if you use Microzoft conventions the rest of your code is in reverse polish with messed up Capitalisation

        2. J.G.Harston Silver badge

          Re: Nothing new here

          That's just a standard REPEAT UNTIL.

          1. Adam 1

            Re: Nothing new here

            > That's just a standard REPEAT UNTIL.

            No it's not. Was is the past participle. Had i said "providing precondition is met" (ie present participle) then your point would be right.

    9. John Smith 19 Gold badge
      Coat

      Is it just me....

      Or does tagalog itself sound like the name of a computer language?

      Anyone up for the challenge of creating Yet Another Perfect Language?

    10. ofnuts

      Re: Nothing new here

      And "basicois" in France. And they also designed a specific programming language (LSE) for use in schools.

    11. Roland6 Silver badge

      Re: Nothing new here

      The primary issue is that you lose the ability to compare and reuse other people's code as well as the ability to easily leverage literature.

      Don't see that as an issue in the proposed use case: "to learn the basics of programming without also having to be fluent in English" and "to help teach the basics of coding and get young people interested in learning more about careers in IT and software development.".

      My reading of the article puts Bato in the same space as Basic, Scratch and others - namely first steps educational languages that introduce students to the thinking skills necessary to write programmes. When a student wishes to go further, having got the concepts, they should be able to readily pick up mainstream languages.

      As for Knuth, I suggest if a Filipino has even heard of Knuth, they are already beyond the target audience for Bato.

    12. Torben Mogensen

      Re: Nothing new here

      In Algol 68, keywords were distinguished from identifiers by case Keyword are upper case (or boldface or quoted) and identifiers lower case. This allowed non-English versions of Algol 68 just by providing a table of keyword names. And since there is no overlap with identifiers, the code could automatically be converted to use English keywords (or vice-versa) without risk of variable capture.

      Similarly, in Scratch keywords are just text embedded in graphical elements, and changing the bitmaps of these graphical elements can change the language of the keywords without affecting other parts of the program, and the same program will be shown with English keywords in an English-language Scratch system and in Japanese (or whatever) in a Japanese Scratch system, because the internal representation does not include the bitmaps.

      But I agree that, unless the programming language attempts to look like English (COBOL, AppleScript, etc.), the language of the keywords matter next to nothing, as long as the letters used are easily accessible from your keyboard. There are programming languages with next to no keywords (APL being an extreme example), and (apart from sometimes requiring special keyboards), they are not really more or less difficult to learn than languages with keywords in your native language (what makes APL difficult to learn is not its syntax). An exception may be children, which is why Scratch allows "reskinning" the graphical elements.

  2. Charlie Clark Silver badge

    Oh, the irony!

    Ruby was originally developed by someone in Japan. Not that I'm claiming that Japanese is linguistic any closer to Tagalog than English is because it isn't. Just highlighting that someone has already considered the idea and decided against it.

    Mind you, anyone who's dealt with Microsoft's clusterfuck localisations in VBA knows what a bad idea this is.

    1. Voland's right hand Silver badge

      Re: Oh, the irony!

      Ruby was originally developed by someone in Japan

      Pascal was developed in Austria. That did not make it use:

      wiederholen {} bis ();

      It still used repeat {} until ();

      If memory serves me right Simula and Erlang are both Scandinavian. Similarly, they do not try to unleash berserk spelling and crazy accents on top of O on us.

      The idea of translating the core language is genuinely stupid. This has been proven by series of countless experiments in countries where "localization" was and is an ideologically mandated exercise.

      1. Anonymous Coward
        Anonymous Coward

        LUA, LISP and Prolog, oh my.

        Pascal was developed in Austria.

        If Niklaus Wirth, then Switzerland. Those were good times.

        Unless he was working at a foreign uni in the 60s.

        Similarly, they do not try to unleash berserk spelling and crazy accents on top of O on us.

        But it would be so much more woke. Maybe we could write in Wakandian.

      2. JLV

        Re: Oh, the irony!

        En Python is van Nederland.

      3. Torben Mogensen

        Re: Oh, the irony!

        "If memory serves me right Simula and Erlang are both Scandinavian."

        Yes. Simula is/was Norwegian and Erlang is/was Swedish, but both became international efforts once they gained popularity.

  3. Dan 55 Silver badge
    Thumb Down

    Nope, it doesn't work

    Step forward Excel once again. Cell formulas and dates are language dependent as are the decimal, thousands, and cell separators in CSVs. It doesn't make things easier, it just makes a mess of everything if you send the file across a border.

    1. Steve the Cynic

      Re: Nope, it doesn't work

      If you send an XLS or XLSX file, the (non-macro) formulas are detokenised into the localisation that the recipient's version of Excel uses. It doesn't *store* "IF()", "SUM()", and so on, but some sort of bytecode or similar that represents those words.

      (The above is based on my experience of working with Excel sheets that I myself created on Office 97 English and loaded into Office 2010 French. Totally seamless transition.)

      YMWAFSV(1) for CSV files.

      (1) Your Mileage Will Absolutely For Sure Vary

      1. Pascal

        Re: Nope, it doesn't work

        Earlier (before the year-based versioning) it did in fact save "SOMME(...)" and wouldn't load in an english Excel.

      2. Charlie Clark Silver badge
        Stop

        Re: Nope, it doesn't work

        It doesn't *store* "IF()", "SUM()"

        As someone familiar with the specification I can assure you that OOXML (XLSX) does indeed store the English form of formulae.

    2. enormous c word

      Re: Nope, it doesn't work

      Yep - never a truer word said, the stupid American date format MM-DD-YY (causes me no end of grief no way to tell it from DD-MM-YY or YY-MM-DD (which the rest of the world prefers to use) and invariably there's enough human error to make it difficult to work it out from old date.

      The only date format (in my experience) that crosses borders is YYYY-MM-DD

  4. Anonymous Coward
    Anonymous Coward

    I wonder if you can't be bothered to learn

    about two dozens of commands in English, then how can you aspire to become a proficient coder.

    What's next ? Translation in ancient Egyptian with those fancy hieroglyphs ?

    1. bombastic bob Silver badge
      Devil

      Re: I wonder if you can't be bothered to learn

      if you learn martial arts, it's likely you learn the terms in whatever lingo the martial art is associated with...

      English terms are few and easily recognized, don't require characters outside of 7-bit ASCII, and since English is "the language of commerce" it's often taught in non-English speaking countries. As I understand it, English is still #1 when you look at it from "how many people in the world are at least familiar with the basics of the language". English is ALSO spoken universally for air traffic control . It's an "international standard".

      if we were to use Spanish as 'the standard language' (also a commonly spoken/understood language), then the 'if' statement would use 'si' (no accent), which is a little ambiguious compared to 'sí' (with an accent) which means 'yes', and also requires me to use the 'charmap' application to grab an accented 'i'. Other languages like French and German have their non-7-bit-ASCII characters, too. German might be able to live without the 'ö' and use 'ss' instead of 'ß', and maybe Spanish can live without the 'ñ', but your average U.S. ASCII keyboard doesn't have those keys on it. Typists would have trouble with it. It would slow down productivity. Seriously.

      I remember finding some stuff, in wxWidgets as I recall, that uses 'colour' rather than 'color' and I had no problem with it. You just go with what's there.

      1. web_bod

        Re: I wonder if you can't be bothered to learn

        So your argument hinges on the fact that you only have an English keyboard and would be reluctant to learn to use a different one?

    2. Blank Reg

      Re: I wonder if you can't be bothered to learn

      "Translation in ancient Egyptian with those fancy hieroglyphs ?"

      Isn't that APL?

      1. jake Silver badge

        Re: I wonder if you can't be bothered to learn

        There was a fledgling project to combine "the good points" of APL and INTERCAL into a "new, modern programming language" back in the day (mid-90s). Did anything ever come of that? I did a little digging around and can't find anything. Probably just as well ;-)

  5. Anonymous Coward
    Anonymous Coward

    Most Filipinos speak American and the call centres aren't that bad compared to the other job choices available. Nice idea though, I'm sure we'll have a new outsourcing wild west soon.

  6. Anonymous Coward
    Anonymous Coward

    Code in Hex, problem solved.

    1. Flakk
      Joke

      That would never work! It would cause 99% of developers to quit in frustration, and eliminate the overwhelming glut of the programs designed to disrupt paradigms and drive forward innumerable social media platforms.

      Wait a minute...

  7. smudge
    Headmaster

    There's a PhD in that

    Because so many programming environments are based on English, the structure of sentences and expressions can be difficult for non-speakers to pick up even when the words themselves are translated.

    Would be interesting to investigate that. You'd be able to cover Chomsky's classification of formal grammars as well as his ideas on a universal grammar for natural languages.

    1. bombastic bob Silver badge
      Trollface

      Re: There's a PhD in that

      yeah, let's just all program in '4th'. problem "solved" [everyone equally disadvantaged]

    2. enormous c word

      Re: There's a PhD in that

      If we didnt have English, we would need Esperanto, but English is good enough - I know a few Malaysians and Filipino students - they all speak excellent 'Merkin which is close enough to English to be indistinguishable. I know a German guy who speaks perfect English, but can't follow it unless spoken with an American accent (loved Western movies as a kid), on conf-calls with him we all have to adopt John Wayne accents - hilarious (to begin with anyway).

  8. John H Woods Silver badge

    Smalltalk is easy

    ... it only has six reserved words: super, self and thisContext ... and the three reserved words: nil, true and false.

    Translating the libraries might be harder :-)

  9. deive

    Wouldn't it be easier to make an IDE (plug to an existing IDE) just to translate the few reserved words for a language? Shouldn't be hard to do that for multiple languages/languages rather than trying to copy an entire language just to change the reserved words.

    1. JohnFen Silver badge

      Any language that requires an IDE to use it properly is a broken language.

Page:

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2020