noahgibbs: Me and my teddy bear at Karaoke after a day of RubyKaigi in HIroshima in 2017 (Default)
[personal profile] noahgibbs
In 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.

Date: 2003-10-22 10:19 pm (UTC)
From: [identity profile] bn29.livejournal.com
Heck, even any two of them together can be reasonable. But definitely not all three.

Date: 2003-10-23 11:09 am (UTC)
From: [identity profile] angelbob.livejournal.com
I think I can see why threads and RPC start to get to be a big problem together... It's not 100% true that they suck when combined, but the vast majority of people seem to do it wrong.

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.

Date: 2003-10-24 04:01 pm (UTC)
From: [identity profile] msde.livejournal.com
I never quite grew out of liking the way OO was implemented in LISP.

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.

Date: 2003-10-24 04:37 pm (UTC)
From: [identity profile] angelbob.livejournal.com
Heh. I, on the other hand, am much happier reading C codebases than C++. There are other OO languages, some of which are probably more legible than C (Python maybe?) and some of which aren't (Perl, though that's not because of OO).

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.

December 2024

S M T W T F S
1234567
891011121314
15161718192021
22232425262728
293031    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 11th, 2026 08:21 pm
Powered by Dreamwidth Studios