Both zig and go use the dot operator, but I find the ‘::’ operator much more readable.

Vec::new();

Makes it clear that were accessing a static method belonging to the Vec struct/namespace.

Vec.new()

Makes it seem like Vec is an object with a ‘new’ method.

Am I alone in thinking this?

  • Pyro
    link
    English
    201 year ago

    I used to only use C#, and I liked the simplicity of only using one symbol to access any prop/field/method. But now I’ve used Rust for a while I do prefer separating the two for the same reasons you mentioned.

    So no, you’re not alone. Even cross-lang!

  • ono
    link
    fedilink
    English
    81 year ago

    C++ was my language of choice for a long time, but I can’t say I’m with you on this one. If I’m going to use Vec, I had better know what it is already. Littering the code with a special double-glyph operator when a dot would do is just needless noise to me.

    (I won’t criticize you for liking it, though. Cheers.)

  • @[email protected]
    link
    fedilink
    71 year ago

    I don’t agree. Many languages differentiate in terms of standards. In Java, your objects start lowercase, so if you see uppercase, its a static call.

    :: looks nice, I guess, but many languages and standards improve clarity of code.

    • @cactusupyourbutt
      link
      201 year ago

      in java ovjects start lowercase

      by convention only though

      • Ephera
        link
        fedilink
        61 year ago

        Yeah, but does that matter? I don’t think, I’ve ever accidentally broken these conventions, where compiler assistance would have been helpful.

      • @[email protected]
        link
        fedilink
        -6
        edit-2
        1 year ago

        It don’t get past review if it doesn’t follow standards. I’m yet to see a deviation.

        If a language is bad because devs do stupid things, they’re all bad.

    • @[email protected]
      link
      fedilink
      81 year ago

      Also: :: in Java is method reference. In Kotlin it’s reflection.

      I’d say if you care a lot about distinguishing contexts it’s really the job of the IDE to highlight syntax.

      Don’t write code as though you’re going to read it in plain text imo.

    • Ephera
      link
      fedilink
      31 year ago

      Yeah, kind of curious what Go does here then / what the actual experience is like.
      It abuses casing for public/private, so presumably there’s no way to see whether a given sequence of letters is a variable or a type.

    • @[email protected]
      link
      fedilink
      English
      1
      edit-2
      1 year ago

      In Java, your objects start lowercase, so if you see uppercase, its a static call.

      Not really, that’s just the way a specific coding style was specified. You’re free to refactor all your projects to follow any other coding style if you really want to, and your programs will continue to work just fine.

  • @shotgun_crab
    link
    English
    61 year ago

    Anything is fine as long as it’s not an arrow (I’m looking at you, PHP)

  • asudox
    link
    11 year ago

    deleted by creator

  • @[email protected]
    link
    fedilink
    11 year ago

    I don’t understand the C++ hate. I’m definitely biased since I learned it before anything else, but the flow of the code and the object-oriented principles just make sense to me. And yeah, I appreciate the scope resolution operator a lot.