قلب | a non ascii programming language that uses arabic script - eviltoast
  • Turun@feddit.de
    link
    fedilink
    arrow-up
    20
    ·
    edit-2
    1 year ago

    Wow, GitHub is not handling that RTL text well. (Or FF on Android is to blame, can’t compare at the moment)

    English is not my first language and I have recently thought a lot about the impact of language in other fields. Programming is one, but to be fair the number of keywords is very limited and not too hard to learn. We had programming in school and while we already had English as well, I don’t think it’s a hard requirement.

    Science is also very heavily impacted. The primary language is English, so if you are good at physics and suck at language learning - well tough luck because you can’t do science without knowing English first. The number of people who’s scientific progress and subsequent beneficial impact on the world is stunted, just because they did not learn English…

    Your programming language will probably not take off, but I like the idea behind it.

    • morrowind@lemmy.mlOP
      link
      fedilink
      arrow-up
      9
      ·
      1 year ago

      I’m not the creator fyi.

      I don’t think it was meant to be actually used, it’s more an experiment, art piece and passion project

    • morrowind@lemmy.mlOP
      link
      fedilink
      arrow-up
      13
      arrow-down
      1
      ·
      1 year ago

      قلب is a programming language exploring the role of human culture in coding. Code is written entirely in Arabic, highlighting cultural biases of computer science and challenging the assumptions we make about programming.

      It is an exploration of the impact of human culture on computer science, the role of tradition in software engineering, and the connection between natural and computer language

    • morrowind@lemmy.mlOP
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      So putting aside the fact that this language is not supposed to be a practical endeavor, I don’t think that issue would apply. قلب does not have alternative, localized names, it only exists in Arabic script

      • HexesofVexes@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        True, but I think the principle still holds.

        When I talk about a “print”, “if”, “for” or “while” I am universally understood by the majority of coders. This means, someone with those concepts can use any logic flow making use of those terms with a minimum of learning.

        However, if I speak of “gable”, “gyr” or “wabbajack”, then trouble begins, for now I have no tutorials nor guides. Let us say these are not merely localisations, but new concepts, then the question comes of completeness and how it is proved.

        In essence, one either recreates Babel, where no two people can understand one another, and collaboration quickly slips away. Or, one builds a tower upon the sand, that has no logical foundation to anchor it, this rendering it worse than useless to those who learn it.

        • morrowind@lemmy.mlOP
          link
          fedilink
          arrow-up
          5
          ·
          1 year ago

          That I believe is part of the point, to explore the unconsidered privilege we have as an english speaker, or any langauge like english, or even any language with latin letters

          • HexesofVexes@lemmy.world
            link
            fedilink
            arrow-up
            1
            arrow-down
            1
            ·
            1 year ago

            Ah, an artistic expression saying “you must learn our language, see how it feels for you to subvert your culture to do something needful”?

            Hardly an avant-garde notion today, but in 2010 it may well have been.

            I can appreciate the beauty of what was created, though I suspect it failed to move people in the way it was intended. To me, it seems an illogical step backwards, rather than a meaningful stride forwards, as I see it from a pedagogical perspective. Others may disagree, but such is art.

  • blackstampede@sh.itjust.works
    link
    fedilink
    arrow-up
    6
    arrow-down
    8
    ·
    1 year ago

    Sweet, we need more non-English programming languages. I’m surprised that existing programming languages haven’t been translated yet.

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      13
      ·
      1 year ago

      There are a fair number of them: https://en.m.wikipedia.org/wiki/Non-English-based_programming_languages

      But arguably, as long as the compiler supports unicode, it shouldn’t matter that much what language the keywords are in. There are other more important issues impacting how easy it is to program in non-English languages:

      • availability of documentation and tutorials
      • English comments and API names in common libraries, especially the standard library
      • tooling for handling unicode, especially BiDi (which is part of why Arabic is especially tricky) - Vim, for instance, has had an open issue about this for almost a decade: https://github.com/vim/vim/issues/204
      • Redkey@programming.dev
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        edit-2
        1 year ago

        it shouldn’t matter that much what language the keywords are in

        Another problem is that the grammars of many well-supported programming languages also mirror English/Romance language grammars. Unfortunately, dealing with that is more than just a matter of swapping out keywords.

        EDIT: I may have been unclear; I wasn’t trying to imply that this problem is greater than or even equal to the lack of documentation, tutorials, libraries, etc. Just that it’s another issue, aside from the individual words themselves, which is often overlooked by monolingual people.

          • Redkey@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            1 year ago

            I’m no linguist, but I have some Japanese language ability, and Japanese seems to be pretty different, grammatically, from English, so I’ll draw on it for examples. I also had a quick look at some Japanese-centric programming languages created by native speakers and found that they were even more different than I’d imagined.

            Here’s a first example, from an actual language, “Nadeshiko”. In pseudo-code, many of us would be used a statement like the following:

            print "Hello"
            

            Here’s a similar statement in Nadeshiko, taken from an official tutorial:

            「こんにちは」と表示
            

            A naive translation of the individual words (taking some liberties with English) might be:

            "Hello" of displayment
            

            I know, I know, “displayment” isn’t a real English word, but I wanted to make it clear that the function call here isn’t even dressed up as a verb, but a noun (of a type which is often used in verb phrases… it’s all very different from English, which is my point). And with a more English-like word order, it would actually be:

            displayment of "Hello"
            

            Here’s another code sample from the same tutorial:

            「音が出ます!!」と表示。
            1秒待つ。
            「プログラミングは面白い」と話す。
            

            And another naive translation:

            "Sound comes out!!" of displayment.
            1 second wait.
            "Programming is interesting" of speak.
            

            And finally, in a more English-like grammar:

            displayment of "Sound comes out!!."
            wait 1 second.
            speak of "Programming is interesting".
            

            And here’s a for…in loop, this time from my own imagination:

            for foo in bar {  }
            

            Becomes:

            バーのフーで {  }
            

            Naively:

            Bar's Foo with {  }
            

            More English-y:

            with foo of bar {  }
            

            You may have noticed that in all of these examples, the “Japanese” code has little whitespace. Natural written Japanese language doesn’t use spaces, and it makes sense that a coding grammar devised by native speakers wouldn’t need any either.

            Now, do these differences affect the computer’s ability to compile/interpret and run the code? No, not at all. Is the imposition of English-like grammar onto popular programming languages an insurmountable barrier to entry for people who aren’t native English speakers? Obviously not, as plenty of people around the world already use these languages. But I think that it’s an interesting point, worth considering, in a community where people engage in holy wars over the superiority or inferiority of various programming languages which have more in common than many widely-spoken natural languages.

        • BatmanAoD@programming.dev
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          I’m trying to think of examples of this, and I actually don’t know that this is true. Here are the examples I can think of:

          • Arguably object-oriented .method() syntax is similar to “subject-verb” order, but we also have function(self, ...) which is the reverse of that.
          • for foo in bar is used in a few languages (or sometimes foreach). But many languages use a totally non-English construct, such as for i = 0; i < limit; i++ or for (auto foo : bar).

          What else is there?

          • Redkey@programming.dev
            link
            fedilink
            arrow-up
            3
            arrow-down
            1
            ·
            edit-2
            1 year ago

            Drawing on Japanese, which is the only non-English language I have significant experience with, object.method(parameter) would feel more natural as object.(parameter)method, possibly even replacing the period separator with a Japanese grammatical construct (with no equivalent in English) that really suits this use case. Even the alternative function(self, parameter, ...) would mesh better with natural Japanese grammar as (self、parameter、〜)function. The majority of human languages have sentences which run Subject-Verb-Object, but a handful which includes Japanese run in the order Subject-Object-Verb.

            I gave an example of an alternative for...in loop in another comment here, so I won’t rehash it here. But following the general flow of Japanese grammar, that for at the beginning of the statement would feel much more natural as a (or “with”) at the end of the statement, since particles (somewhat similar to prepositions in English) go after the noun that they indicate, rather than before. And since semicolons don’t exist in Japanese either, even they might be replaced with a particle like “”.

            There aren’t any big problems here, but a plethora of little things that can slowly add up.

    • Cyno@programming.dev
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      I’m not disagreeing outright but… Why do we need more non English programming languages? Is there a specific practical reason?

      The only language translation I’d maybe consider to accept in programming is Esperanto. Anything else just sounds like a terrible idea.

        • Cyno@programming.dev
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          It’s a neutral, easily accessible language. Having it in programming could incentivize more people to learn it as well.

          • qaz@lemmy.world
            link
            fedilink
            arrow-up
            5
            ·
            edit-2
            1 year ago

            English has become the defacto lingua franca. I’d argue that Esperanto is less accessible than English, because barely anyone knowns it.

            • Cyno@programming.dev
              link
              fedilink
              arrow-up
              7
              ·
              1 year ago

              I agree completely. The discussion was what we replace English with however.

              I’m not in favor of replacing English, I’m just saying if we want an alterantive I don’t want it to be a nation-specific language again, so to speak.

              • Miaou@jlai.lu
                link
                fedilink
                arrow-up
                1
                ·
                1 year ago

                The problem with Esperanto is that it’s still very euro centric. I might nonetheless be willing to learn it, just because I get a kick out of watching native English speakers trying to speak a foreign language

                • senloke@lemmy.blahaj.zone
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  1 year ago

                  Esperanto is eurocentric, because it’s international. Because romance languages where made by colonialism of the roman empire. The argument goes of “equality”. Thinking the other way around would be that asiatic languages colonized the world, then Esperanto would be based on asiatic languages.

                  Esperanto is a pragmatic language, not a “totally neutral” language. If you design a language to be “totally neutral” then parts would be distributed differently. How to chose which vocabulary of languages should be used often?

                  So using romance languages is a pragmatic solution to this. Through usage words can be added or fall out of use, all that is allowed in Esperanto and which can make the language out of colonialism in the future more egalitarian.

                  But it’s ignorant to ignore Esperanto at all and morally vilifying it as “eurocentric therefore bad”.

            • senloke@lemmy.blahaj.zone
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              edit-2
              1 year ago

              Every book is not “accessible”, when it’s not even opened and willfully ignored of existing.

              There is:

              There are languages to which it’s less accessible, but from the bigger ones, it’s quiet accessible.

              But if people don’t open their eyes they don’t see the forest in which they are standing.

    • SpeakinTelnet@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      The main issue is programming in a specific language limit who can contribute to those who speaks that language. In that sense English makes sense as it is already a widely used language in a work context. It would probably limit those who are willing to use the software as it makes auditing harder.

    • kuneho@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      well there’s Logo which is translated to many languages - e.g. Hungarian in Comenius Logo, so great chance you can instruct at max 4000 turtles on your screen.

      also, Excel functions are too localized and using them feels somewhat surreal 😆