• jabjoe@feddit.uk
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 months ago

    Look at the kernel code. It’s full of OOP C. There absolutely are objects in the kernel.

    • refalo@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      7 months ago

      Yea but all that function pointer indirection can actually hurt performance (especially caching), some things in C++ actually can be faster just because the compiler is better at optimizing for that.

      • jabjoe@feddit.uk
        link
        fedilink
        English
        arrow-up
        2
        ·
        7 months ago

        There is nothing you can do in C++ or C, that can’t be done in the other. It’s the kind of the point of those languages.

        • refalo@programming.dev
          link
          fedilink
          arrow-up
          2
          ·
          7 months ago

          Technically you’re right, but I don’t think that changes what I said about optimization. There are still cases where equivalent C++ code can be faster than the C version merely due to different optimizations used.

          • jabjoe@feddit.uk
            link
            fedilink
            English
            arrow-up
            1
            ·
            7 months ago

            Meh, I’m unconvinced. If it’s any kind of hot spot, in either, you can optimize the hell out of it. C++ is often more bloated is it’s just a harder language pretending to be an easier one.

            • refalo@programming.dev
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              7 months ago

              That’s fine, you don’t have to agree. Personally I do like to use just a few features of C++ without going too crazy, like simple classes and maybe one level of inheritance, but I don’t really get into templates or exceptions or other really complex/controversial stuff. I prefer having the stronger typing and better readability of this kind of C++, and I think it helps me make less mistakes, but I realize not everyone agrees, and that’s ok.

              • jabjoe@feddit.uk
                link
                fedilink
                English
                arrow-up
                1
                ·
                7 months ago

                I think that’s the thing, C++ is so broad. It’s like many languages together. It’s complex with lots of implicitness yet unsafe. There is loads of support in compilers and tools to mitigate that, but that’s treatment not cure.

                • refalo@programming.dev
                  link
                  fedilink
                  arrow-up
                  1
                  ·
                  7 months ago

                  I think the same could be said about C now too, it is continuing to evolve itself with newer standards too just like C++. People choose to only use C features that they want, same goes for C++.

                  • jabjoe@feddit.uk
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    7 months ago

                    And that is true of any language, but C++ is without doubt one of the broadest. There are very different ways of working with it that compile very differently.