Thread (11 messages) flat view 11 messages, 8 authors, 2016-06-15

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help