• FlatFootFox@lemmy.world
    link
    fedilink
    arrow-up
    80
    ·
    11 months ago

    My favorite compile error happened while I was taking a Haskell class.

    ghc: panic! (the ‘impossible’ happened)

    The issue is plainly stated, and it provides clear next steps to the developer.

  • ElCanut@jlai.lu
    link
    fedilink
    arrow-up
    73
    arrow-down
    3
    ·
    edit-2
    11 months ago

    Rust developer: I’d like to compile some code

    Rust compiler: the fuck you are

    • Malle_Yeno@pawb.social
      link
      fedilink
      arrow-up
      41
      ·
      11 months ago

      The rust compiler holds your hand, wraps you in blankets, makes you hot chocolate, kisses you on the forehead before it gently and politely points out what you did wrong and how you can solve it step-by-step. It would never think of something as heinous as swearing at you, shame on you for insulting my wife’s honour like this.

      • ElCanut@jlai.lu
        link
        fedilink
        arrow-up
        27
        ·
        11 months ago

        Rust compiler is passive agressive, like:

        “There’s an error at line 286 because you still don’t know how to use the borrow checker after all this time ♥️”

        • deur@feddit.nl
          link
          fedilink
          arrow-up
          4
          ·
          11 months ago

          its a compiler. That is at best projection, especially considering how the compiler’s error feedback is designed to be firm yet gentle.

      • planish@sh.itjust.works
        link
        fedilink
        arrow-up
        4
        ·
        11 months ago

        The rust compiler produces a flawless understanding of your code, and then quits out because understanding that code is a Nightly-only feature and you’re using the stable build.

      • _xDEADBEEF@lemm.ee
        link
        fedilink
        arrow-up
        4
        ·
        11 months ago

        except when it gives errors about lifetimes of some object.

        boy, that makes my brain hurt

      • hector@sh.itjust.works
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        I don’t know from where this legend comes from but lifetimes/concurrency/macros errors are brain-hurting.

        Most of the time I find myself dropping project because I wrote my program in a correct way but Rust just does not like how it is designed lol. I can’t get shit done with this language

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      37
      arrow-down
      2
      ·
      edit-2
      11 months ago

      Yes. It’s a surprisingly bad debugger the more you think about it. I use it largely in assembly and it loves to spit out random errors about memory it tried to access based on the current register state. The shortcuts are kind of dumb.

      It certainly works but I wouldn’t call it a pleasure to use.

      Ex: try disp x/1i $eip often just doesn’t work.

      • TunaCowboy@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        11 months ago

        I use gdb with great success for x64, rv64, and c:

        info registers rip or just setup tui:

        # ~/.config/gdb/gdbinit:
        tui new-layout default regs 1 {-horizontal src 1 asm 1} 2 status 0 cmd 1
        tui layout default
        tui enable
        
      • xan1242@lemmy.ml
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        11 months ago

        I honestly vastly prefer using IDA and Windows specific tools (x64dbg) over gdb. IDA can interface with gdb so it can act as a frontend which can be handy for visualization.

    • flubba86@lemmy.world
      link
      fedilink
      arrow-up
      29
      ·
      edit-2
      11 months ago

      The one thing I can say about java; the kinds of people who like Java tend to really like Java. Everyone else just leaves them to it.

      • Lemzlez@lemmy.world
        link
        fedilink
        English
        arrow-up
        16
        arrow-down
        1
        ·
        11 months ago

        And the people hating on it somehow never used any version above 8, which is 10 years old and EOL.

        • flubba86@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          11 months ago

          Oh I’m firmly in the second camp. They can use whatever version they like, as long as I don’t have to go near it.

        • QuaternionsRock@lemmy.world
          link
          fedilink
          arrow-up
          5
          arrow-down
          3
          ·
          11 months ago

          I’ve used Java 21 pretty extensively, and it’s still comically bad compared to various alternatives, even apples-to-apples alternatives like C#. The only reason to use Java is that you’ve already been using Java.

          • Lemzlez@lemmy.world
            link
            fedilink
            English
            arrow-up
            4
            ·
            11 months ago

            it’s still comically bad compared to various alternatives, even apples-to-apples alternatives like C#.

            I’d be interested to hear why. IMO Java has the superior ecosystem, runtime(s!), and community. The best part is that you don’t even HAVE to use java to access all this - you can just use kotlin, groovy, scala,… instead.

            In terms of the language itself, while it (still) lacks some more modern language features, it has improved massively in that area as well, and they’re improving at a significant rate still. It also suffers from similar issues as PHP, where it has some old APIs that they don’t want to get rid of (yet?), but overall it’s a solid language.

    • spacebanana@lemmy.world
      link
      fedilink
      arrow-up
      19
      arrow-down
      1
      ·
      edit-2
      11 months ago

      Java is a traditional and conservative language, which has its strong upsides, like the syntax being familiar to many people who haven’t used the language before. It’s a language that brought us the JVM, gave a job to many people and established fundamentals for other languages to inspire and improve on. If you don’t like Java, you can just use another language for the JVM, like Scala, Kotlin or Clojure.

      • KammicRelief@lemmy.world
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        1
        ·
        11 months ago

        and inspired C#, which is pretty rad! (humble opinion… preparing for downvotes because I don’t get the feeling lemmy is where M$ devs hang out)

      • Doc Avid Mornington@midwest.social
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        3
        ·
        11 months ago

        You only named one upside, I can’t think of any other, and C-like syntax is pretty common, so it’s not much of an upside. It’s at least debatable whether the JVM is a good thing at all - the majority of languages get along perfectly well without it, and there’s no reason to believe the ones that do target it wouldn’t be doing just fine if it didn’t exist. It’s weird to say Java gave a job to anybody - the demand to have software written resulted in programmers being hired; if Java hadn’t been pushed on the market by Sun, it would have just been another language. Java didn’t establish any fundamentals at all, it just borrowed from other places. While all three of the other languages you mention are interesting, for sure, I’m not sure why somebody who doesn’t like Java should limit themselves to JVM languages.

  • Flxibit@lemmy.world
    link
    fedilink
    arrow-up
    35
    ·
    11 months ago

    This C++ message has an urgency vibes to it:

    “Segmentation fault!! Drop the Nuclear Reactor quick!!”

  • voxel@sopuli.xyz
    link
    fedilink
    arrow-up
    27
    ·
    edit-2
    11 months ago
    gdb ./fuck
    r
    where
    

    you should get a complete stack trace (complete with values of some function arguments)

    • OpenStars@startrek.website
      link
      fedilink
      English
      arrow-up
      13
      arrow-down
      6
      ·
      11 months ago

      This right here - C++ iirc is used mostly for microprocessor code in an industry setting, where EXTENSIVE testing is done so that bloated code doesn’t need to constantly check for programmer errors every single time, i.e. where execution speed is prioritized over programmer development time. And whenever that is not the case, well, as OP pointed out, other higher-level languages also exist (implication: to choose from).

      • Backslash@feddit.de
        link
        fedilink
        arrow-up
        34
        ·
        11 months ago

        C++ iirc is used mostly for microprocessor code

        lol no, it’s used almost everywhere where performance is important and people want(ed) OOP, from tiny projects to web browsers (Chrome, Firefox) to game engines (Unreal, CryEngine). Many of these are hugely complex and do encounter segfaults on a somewhat frequent basis.

        Saying C++ is mostly used for embedded applications is like saying C# is mostly used for scripting games, i.e. it doesn’t nearly cover all the use cases.

        higher-level languages also exist

        This depends on your definition of “higher-level”, but many people would argue that C++ is on a similar level to Java or C# in terms of abstraction. The latter two do, however, have a garbage collector, which vastly simplifies memory management for the programmer(generally anyway).

        • tool@lemmy.world
          link
          fedilink
          English
          arrow-up
          2
          ·
          11 months ago

          Lots of those in C# now, especially with Unity coming along like it did.

      • scrion@lemmy.world
        link
        fedilink
        arrow-up
        6
        ·
        11 months ago

        I also currently use it for a new project since all needed 3rd party libraries are from a very specific domain and the project has a deadline, so writing and testing wrappers for Rust that would provide me with any meaningful advantages down the road are too costly to budget for before the deadline.

        That could become part of a future refactoring, though.

  • Subverb@lemmy.world
    link
    fedilink
    arrow-up
    23
    arrow-down
    3
    ·
    11 months ago

    Nevermind that the C++ program is two orders of magnitude faster when completed.

    I would love to learn and use Rust but I’m a embedded systems guy. Everything of consequence is C and C++.

  • AMDIsOurLord@lemmy.ml
    link
    fedilink
    arrow-up
    19
    arrow-down
    1
    ·
    11 months ago

    The developer must either provide the logging and attach a debugger or go get fucked when a runtime error happens

    • Faresh@lemmy.ml
      link
      fedilink
      arrow-up
      11
      arrow-down
      1
      ·
      edit-2
      11 months ago

      That’s not true though. You can get the backtrace and other useful information from the coredump mentioned by the error message by loading it with gdb. Not as good as attaching it to a living process, since you can’t see step-by-step what happens leading up to the error, but still quite useful.

      • AMDIsOurLord@lemmy.ml
        link
        fedilink
        arrow-up
        3
        ·
        11 months ago

        Well yes, that’s a pretty good way of debugging a third party app but if you are developing something you can have more ease with gdb attached

    • drolex@sopuli.xyz
      link
      fedilink
      arrow-up
      6
      ·
      11 months ago

      You can also debug post-mortem with the minidump or the core dump file with WDT on Windows. Great fun and a good way to brush up on your assembly skills

      • marcos@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        11 months ago

        Great fun and a good way to brush up on your assembly skills

        Just load it on the debugger and leave your asm skill gather patina.

  • heavy@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    17
    arrow-down
    1
    ·
    11 months ago

    I know this is supposed to be humorous, but there’s a reason why these languages can, and are doing what they’re doing.

    Core dumps are also worth learning about, they’re really helpful if you understand them.