Made with KolourPaint and screenshots from Kate (with the GitHub theme).

  • piccolo@sh.itjust.works
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    edit-2
    20 hours ago

    In C#, you can use ‘var’ to have an impilict type variable.

    String name = “”

    var name = “”

      • sus@programming.dev
        link
        fedilink
        arrow-up
        16
        ·
        edit-2
        19 hours ago

        So I think it’s still probably unclear to people why “mix of keywords and identifiers” is bad: it means any new keyword could break backwards compatibility because someone could have already named a type the same thing as that new keyword.

        This syntax puts type identifiers in the very prominent position of “generic fresh statement after semicolon or newline”

        …though I’ve spent like 10 minutes thinking about this and now it’s again not making sense to me. Isn’t the very common plain “already_existing_variable = 5” also causing the same problem? We’d have to go back to cobol style “SET foo = 5” for everything to actually make it not an issue

        • AnotherPenguin@programming.dev
          link
          fedilink
          English
          arrow-up
          3
          ·
          15 hours ago

          At least in C#, you can define variables with keyword names like this:

          var @struct = “abc”

          I think in Kotlin you can do the same, and even include spaces with backticks like val abstract class = “abc”

          I’m not sure if other languages allow that, regardless it should be rarely used.

          • pivot_root@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            15 hours ago

            Swift also uses backticks and Rust has a dumb one in the form of r#thekeyword. Still much better than introducing a async as a new keyword in a minor version of a language and breaking a bunch of libraries.

        • piccolo@sh.itjust.works
          link
          fedilink
          arrow-up
          3
          ·
          19 hours ago

          Ah I was misunderstanding the problem. And learned something new about C#, seems in order to avoid breaking existing code they introduce “contextual keywords” var being added later, it is a contextual. You can create a class ‘var’ and the compiler will prefer it.