this post was submitted on 13 Apr 2024
727 points (95.8% liked)

linuxmemes

21260 readers
758 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.

  • Please report posts and comments that break these rules!

    founded 1 year ago
    MODERATORS
     
    you are viewing a single comment's thread
    view the rest of the comments
    [–] jabjoe@feddit.uk 3 points 7 months ago (1 children)

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

    [–] refalo@programming.dev 2 points 7 months ago (1 children)

    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 2 points 7 months ago (1 children)

    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 2 points 7 months ago (1 children)

    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 1 points 7 months ago (1 children)

    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 1 points 7 months ago* (last edited 7 months ago) (1 children)

    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 1 points 7 months ago (1 children)

    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 1 points 7 months ago (1 children)

    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 1 points 7 months ago (1 children)

    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.

    [–] refalo@programming.dev 1 points 7 months ago (1 children)

    Is that really such a bad thing though?

    [–] jabjoe@feddit.uk 0 points 7 months ago

    Yes. Too much for people to learn, so they make mistakes. I've seen compilers get confused with C++. Though it was MS's....

    If a language isn't tight, it should at least be safe. C++ is neither. You can do anything with it, but I don't think it's ever really a good tool for a particular job.