• theneverfox@pawb.social
    link
    fedilink
    English
    arrow-up
    13
    ·
    11 months ago

    Fun fact I learned today - you know how when there’s a compound conditional, the interpreter stops once the result is known? (Eg, if the left side of an and is false, it’s false so it doesn’t bother checking the second condition)

    Apparently, visual basic doesn’t do this thing every other language I know of does… It might be a debug only thing for the convenience of the depreciated ide I’m forced to use, but I did a null check && called a function on it if it’s not null, and it blew up

    I pride myself on my ability to change to a new programming language and make progress on day one, but vb is truly the most disgusting POS language I’ve ever seen. From syntax to jarring inconsistencies in language design, it’s just gross

    • noli@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      11 months ago
      1. That’s behaviour that’s just part of language design. If you rely on it you should probably check how the language you’re using handles it.

      2. relying on that behaviour sounds a lot like “clever” (read unnecessarily unreadable) code

      • theneverfox@pawb.social
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        11 months ago

        Are you serious? It’s one of the most basic and common if statements that exist.

        If( foo != null && foo.isBar() )

        That’s what we’re talking about. Looking before you leap.

        I take issue with the whole “too clever” argument fundamentally (for a number of reasons), but this isn’t some fancy quality of life feature. This is as simple as it gets

          • theneverfox@pawb.social
            link
            fedilink
            English
            arrow-up
            1
            ·
            11 months ago

            Scroll on down to the first common example there champ.

            If you really think that’s being “too clever” I don’t know what to tell you… A big reason I think that argument is bullshit is because writing simple code isn’t a goal (what does that even mean?) - readability is a big one, and breaking up every part of every conditional would just lead to unreadable spaghetti

            Also, take a look at the languages being discussed. This is a long settled question - every language I’ve ever used has this.

            Including VB, I found out it uses AndAlso…so gross

            • noli@programming.dev
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              11 months ago
              1. several languages that are still in use have eager evaluation.

              2. I’m a dumb programmer. The more I need to keep implicit behaviour in mind, the higher the probability I’m writing bugs. Short circuit evaluation is an optimization technique IMO and shouldn’t be relied upon for control flow.

              3. The aggressive tone you’re using is completely unnecessary and immature, so I’ll refrain from responding any further. Have a nice day.