(no subject)
Oct. 22nd, 2003 08:35 pmIn his book, The Art of Unix Programming, ESR says:
The combination of threads, remote-procedure-call interfaces, and heavyweight object-oriented design is especially dangerous. Used sparingly and tastefully, any of these techniques can be valuable — but if you are ever invited onto a project that is supposed to feature all three, fleeing in terror might well be an appropriate reaction.
It's really scary how well this book matches my own prejudices, from a general distrust of C++ to a dislike of binary formats to a highly sceptical eye for OO design...
And the above quote matches my experience with the ACE and Axiom frameworks nicely.
The combination of threads, remote-procedure-call interfaces, and heavyweight object-oriented design is especially dangerous. Used sparingly and tastefully, any of these techniques can be valuable — but if you are ever invited onto a project that is supposed to feature all three, fleeing in terror might well be an appropriate reaction.
It's really scary how well this book matches my own prejudices, from a general distrust of C++ to a dislike of binary formats to a highly sceptical eye for OO design...
And the above quote matches my experience with the ACE and Axiom frameworks nicely.
no subject
Date: 2003-10-22 10:19 pm (UTC)no subject
Date: 2003-10-23 11:09 am (UTC)And, of course, heavyweight OO makes the whole thing worse by making it impossible to see the ugly, subtle interactions between the first two. It's hard enough to debug that mess when you can see it directly, so a layer of opaque abstraction on top is sufficient to kill your performance dead, as only poorly-used RPC can.
I'm just generally not a big OO fan. I've (grudgingly) come to accept that C++ makes it easier to design GUIs and basically graphical systems, though GTK+ is a fine example of what you give up by doing so (GTK+ is entirely in C, and is probably the closest I'll ever see to my dream GUI toolkit).
On the other hand, I've used very pretty, very clean languages like Dylan. They convince me that there may be something to this OO thing. They also convince me that C++ is a hideous attempt at an object-oriented language, and that it gives up most of the advantages of OO in its rush to be everything to everybody.
no subject
Date: 2003-10-24 04:01 pm (UTC)I like OO mainly because it's one more way you can force a bunch of engineers to talk the same language. My experience is that there's less of a learning curve trying to make sense of an existing code base if it's OO, and that's enough reason for me.
no subject
Date: 2003-10-24 04:37 pm (UTC)But I've found that C++ makes things worse instead of better, and I haven't had to read any large codebases in other OO languages other than Dylan, which rules, but not entirely because it's OO.