• HiddenLayer555@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 month ago

    Because it supports Unicode as variable/class/function names and Unicode includes all the characters humans have ever used, even dead languages (I assume for historians to digitize ancient texts?)

  • toastal@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 month ago

    Unironically awesome. You can debate if it hurts the ability to contribute to a project, but folks should be allowed to express themselves in the language they choose & not be forced into ASCII or English. Where I live, English & Romantic languages are not the norm & there are few programmers since English is seen as a perquisite which is a massive loss for accessibility.

    The hotter take: languages like APL, BQN, & Uiua had it right building on symbols (like we did in math class) for abstract ideas & operations inside the language, where you can choose to name the variables whatever makes sense to you & your audience.

    • unwarlikeExtortion@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 month ago

      Yeah. Tbh, I always wondered why programming languages weren’t translated.

      I know CS is all about english, but at least the default builtin functions of programming languages could get translated (as well as APIs that care about themselves).

      Like, I can’t say I don’t like it this way (since I’m a native english speaker), but I still wonder what if you could translate code.

      Variables could cause problems (more work with translation or hard to understand if not translated). But still - programming languages have no declentions and syntax is simpler so it shouldn’t even compare to “real” languages with regards to difficulty of implementation.

      • eRac@lemmings.world
        link
        fedilink
        arrow-up
        1
        ·
        1 month ago

        Excel functions are translated. This leads to being pretty much locked out of any support beyond documentation if your system language isn’t English.

      • bleistift2@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 month ago

        Programs aren’t written by a single team of developers that speak the same language. You’d be calling a library by a Hungarian with additions from an Indian in a framework developed by Germans based on original work by Mexicans.

        If no-one were forcing all of them to use English by only allowing English keywords, they’d name their variables and functions in their local language and cause mayhem to readability.

        [Edit:] Even with all keywords being forced to English, there’s often half-localized code.

        I can’t find the source right now, but I strongly believe that Steve McConnell has a section in one of his books where he quotes a function commented in French and asks, “Can you tell the pitfall the author is warning you about? It’s something about a NullPointerException”. McConnell then advises against local languages even in comments

  • Ptsf@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    1 month ago

    Isn’t it all unicode at the end of the day, so it supports anything unicode supports? Or am I off base?

      • thevoidzero@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        1 month ago

        I thought the most mode sane and modern language use the unicode block identification to determine something can be used in valid identifier or not. Like all the ‘numeric’ unicode characters can’t be at the beginning of identifier similar to how it can’t have ‘3var’.

        So once your programming language supports unicode, it automatically will support any unicode language that has those particular blocks.

          • toastal@lemmy.ml
            link
            fedilink
            arrow-up
            1
            ·
            edit-2
            1 month ago

            OCaml’s old m17n compiler plugin solved this by requiring you pick one block per ‘word’ & you can only switch to another block if separated by an underscore. As such you can do print_แมว but you couldn’t do pℝint_c∀t. This is a totally reasonable solution.