Re: [OT] Re: C++ *for Git*
From: Marco Costalba <hidden>
Date: 2016-06-15 22:43:36
On 9/23/07, Pierre Habouzit [off-list ref] wrote:
quoted
Object oriented languages creates black boxes: that's the reason why object oriented exsists and also the reason why Linus hates it ;-)This is just nonsense. This has been proved, though I can't find the paper about this anymore, than modules (or packages whichever name you give them) plus abstract types are as good as OO languages at creating black boxes. I mean it has been proved that it gives the exact same amount of expressiveness. So please stop with this myth. And don't speak for people, I would be very surprised that Linus would dislike "black boxes". Abstractions are good, when used wisely, and I would be much surprised to see Linus pretend otherwise.
From a Linus recent thread:
- inefficient abstracted programming models where two years down the road you notice that some abstraction wasn't very efficient, but now all your code depends on all the nice object models around it, and you cannot fix it without rewriting your app. In other words, the only way to do good, efficient, and system-level and portable C++ ends up to limit yourself to all the things that are basically available in C. And limiting your project to C means that people don't screw that up, and also means that you get a lot of programmers that do actually understand low-level issues and don't screw things up with any idiotic "object model" crap.
Perhaps I have misunderstood, but the idea I got is that for Linus OO brings in more problems than what it tries to fix.
The real problem with big applications, is not that they are written with C, C++, D, APL or Perl, but that they are big.
I have said exactly this, I don't understand where's your point in repeating the same concept.
C has many many quirks, I don't discuss that, but OO programming solves none of them, and the problems OO addresses are not the one that may interfere in the git development.
I really don't get how you made up your mind I'm advocating OO ? The only comment I made on OO until now was to highlight one of its downsides.
I mean, the two really interesting things in OO (that haven't a tremendous cost in return) are member overloading and inheritance.
You have listed two things that are a world apart one from each other. member overload is just syntactic sugar for name mangling, while inheritance and the _strictly_ related virtual member functions (AKA polymorphism) is what opens the gates to all the stuff you have deeply blamed in your post.
I see very few places where git would benefit from that
Instead I see none. But probably you have looked at git code better then me.
Can we go back to git now ?
You are not forced to follow this thread if this bores you. Thanks Marco