Draig, a Welsh Programming Language

3 days ago (raku.land)

This is neat! People who like this might be interested in the awesome Hedy language[0]. It's purpose is education, but it's a single programming language with lots of localisations. Always suprised this idea isn't pursued more elsewhere.

[0] https://www.hedy.org/

Question: is it a good idea to introduce kids to coding in their mother tongue like this?

  • i've always given the advice "program in english, comments, variables, function names, everything", and "always use a uk/us keyboard unless you absolutely have to enter localised strings, and even better get someone else to do that"

    • I’ve seen before that this is not followed in certain cases, such as the entire development team being in a specific country where some or many team members don’t know English (well enough). As an anecdote, I’ve seen a team in a large multinational company (US origin) in Spain that used function names, variable names, database table names (and column names), log message text and many other things in Spanish. English was only for the language keywords because that’s what the compiler would accept.

    • I've been working with a codebase for a very specific domain where hardly anyone even knew the English terms for the domain-specific things (and some of them probably didn't even exist - highly localized customs etc.). No point in using English then.

    • China disregards that and there is an absolutely massive ecosystem of Free and Open Source Software out there if you can read and write their code.

      5 replies →

  • As someone who's spoken English since 5, I'm perplexed by this question. I'm genuinely unfamiliar with any perceived downsides and I would love to hear more of your thoughts

  • No. You want 'for' to be a looping construct with no other meanings.

    Seeing code in my native language makes me laugh, I can't take it seriously.

    • I strongly disagree. Take, for example...

        foreach (apple in fruitbasket)
          apple.Eat()
      

      vs.

        for (int i = 0; while i < fruitbasket.Count; i++)
          fruitbasket[i].Eat();
      

      Even as a low-level programmer, I truly loathe C-style for loops. It takes several seconds to parse them, while the C#-style foreach is instantly grokkable with zero mental overhead. When you're scanning over thousands of lines of codes, the speed and ease of reading constructs like these adds up and makes a huge difference. The desire to apply human-friendly syntax to low-level programming is among the greatest motivating factors for the language I'm working on. All of that being said, I think there is a huge advantage in having code that reads like natural language you understand, rather than having keywords that are foreign and meaningless to you.

whenever you would use 'l', you have to use 'll'?

i'llll get my coat

  • I know it’s just a joke but the “ll” in Welsh is a completely distinct character in the Welsh alphabet and doesn’t sound anything like “l”, nor is it used as a substitute for l. It’s rarely used but it has its own Middle-Welsh character: ỻ

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

    • > I know it’s just a joke

      Yeah, sorry, I couldn't resist. I'm not Welsh but I lived there when I was a small child, and happily holidayed there after. It is a great country.