Tonight's Death Match: "Objective Heresy" vs. "Church of Objectology."

I Find Karma (adam@cs.caltech.edu)
Wed, 11 Feb 1998 19:41:20 -0800


Wow, I guess FoRK has reached the "next generation" (FoRK-NG ?!), with
former members like Ron Resnick, Tim Byars, Joe Kiniry, Greg Davis, and
Duck, all currently unsubscribed. The people may have changed, but the
themes remain the same...

Remember when Dave Crook posted his "Objective Heresy" argument that
"Objects, CORBA, IIOP, Javabeans, ActiveX, DCOM -- Its all hype":

http://xent.ics.uci.edu/FoRK-archive/jan98/0422.html

Specifically, Dave wrote:

| I'm not one of those programmers that, for lack of a better word,
| are frightened about object oriented stuff. I just don't see the big
| deal.

And then later on:

| Am I just not understanding this stuff? Is there some major great new
| thing that I just am not seeing?

The short answer is, "yes." The longer answer is contained within
Ron Resnick's response to the spurious Bjarne Stroustrup interview
as posted to dist-obj earlier today...

http://sphere.cs.caltech.edu/mailing_lists/dist-obj/msg00899.html

Read on, and you might find the answer you're looking for...

> From hemo@elogica.com.br Wed Feb 11 16:38:43 1998
> To: dist-obj@cs.caltech.edu
> Cc: rohit@godzilla.ics.uci.edu
> Subject: Did Stroustrup really say THAT??
>
> I'm not on FoRK any longer. But sometimes folks there
> insist on emailing me bits of what goes on yonder.

That was me. I just loved the exchange:

| Stroustrup: Anyone with half a brain can see that object-oriented
| programming is counter-intuitive, illogical and inefficient.
| Interviewer: What?!
| Stroustrup: And as for 're-useable code' - when did you ever hear
| of a company re-using its code?
| Interviewer: Well, never, actually, but...
| Stroustrup: There you are then.

And Ron seemed to enjoy it:

> Adam just posted something, and cc'd me on it, and it was uproariously
> funny.

JoeK pointed out (and is correct) the fact that these were old bits:

| Sry, but I saw the same "leak" wrt an interview with Richie some years
| back wrt the design and implementation of C. Likewise for an interview
| with someone who was at the core of UNIX on UNIX, and Gettys on X, and
| Steele on CLISP. Someone is pulling an _old_ joke here...
|
| I'm just waiting for the same "leak" on the Web with TBL...

Of course it's an old joke in new joke clothing. But if it illustrates
a point, then maybe it can be useful anyway. Back to Ron's post...

> Some hash about Bjarne Stroustrup claiming that C++ was
> a giant hoax perpetrated in the name of increased software
> development salaries. Personally, the skeptic in me seriously
> doubts Stroustrup ever said any such things. Hence, my
> reluctance to simply forward the whole mail here. But you
> can check it out at:

http://xent.ics.uci.edu/FoRK-archive/feb98/0106.html

Yeah, I doubt Stroustrup said those things, too.

> Do others have independent confirmation as to the veracity, or
> otherwise, of this "Stroustrup interview"?

Even if he didn't say those things, they're still funny.

> I also note that C++ is hardly the entire world of OO software design
> and programming. OO existed long before C++, and appears to have a
> bright future even as C++ loses its role in the spotlight. Equating
> critique of C++ with critique of objects seems quite off the mark to
> me. Most folks I know seem quite willing/able to reject C++ without
> rejecting objects in general, merely moving on to Java or Smalltalk or
> Eiffel or ...

So then what are the main reason to use objects? Oh, you answer that next.

> Heck, I'm into objects mainly for decomposition and encapsulation.
> I can live without inheritance, certainly without complex rules for
> multiple inheritance.

Decomposition and encapsulation, with inheritance optional.
There's your answer as to why objects are good, Dave Crook.

> In the same way that biologists seek cells within livers, and peptides
> within cells, the argument of complexity being constructed from
> simplicity just makes overwhelming sense to me. Sure, I think the OO
> community goes overboard with jargon (polymorphism - what an ugly
> word!). Yes, I think objects need to be championed as things that make
> design *simpler* - not harder, as is so often the case! But let's not
> throw out the baby with the bath water, either. I used to be a
> confirmed C/sockets guy. I held out for about 2 years while taking my
> OO training - 'why do I need this? It's always worked the old
> way!'. At some point, some light clicked - this is personal, of
> course- YMMV. But I think once you 'get' decomposition, there's
> really no going back. You can't fall in love with structured
> programming again once you've really seen the other.

But can't you have decomposition without having objects? Doesn't the
"philosophy" of objects transcend whatever meme is currently hot, as
Dave Crook suggested?

My attitude is, yes, object philosophy != existing object tools. We can
learn from objects without using them as a hammer wherever there are
nails.

> What we consider "objects" evolves, over time. Where once we were
> focused on language objects buried within compiled program units,
> we're increasinly focusing on distributed objects that span networks
> and geography, and whose granularity takes on "real world"
> proportions.

So it's like, we don't know what language we'll be using in five years
for writing software, but we're sure we'll be using objects if we want
the state-of-the-art?

> And, as we're so fond of discussing on this list, objects and our
> notions of them continue to evolve into the future to being
> independent, autonomous, mobile, runtime composable things. That
> causes us to figure out all the hard stuff - like runtime
> introspection. Like concurrency & distribution & coordination between
> such composable beasts. Like putting these finicky, complex beasts
> into the hands of mere mortal developers and users, who still must
> produce end-systems that have repeatable and pretictable cause/effect
> behaviour in the overall systems.

Oy gevalt. Now I'm even more afraid of the ramifications of this.
Many people can't even write bug-free software in the current climate of
less ambitious, static, local, non-concurrent "objects".

How in the world are we going to add complexity AND reduce errors
simultaneously in the next generation of software?

> Sure, we could probably start all over and build a world of tomorrow
> without trying to leverage what we already know about the less
> ambitious, static, local, non-concurrent "objects" of today. But I
> fear we'll be relearning a lot of those lessons if we build on,
> e.g. web/cgi, without recognizing the legacy (?! what a strange word
> here!) of "classic" OO.

Web/CGI is not an enemy of OO. The underlying *philosophy* of the Web
is that of objects being passed around a network.

> Nope, to me "objects" represent the state of the art in what we know
> about building large, maintainable, understandable software. That we
> still don't have it right, and that experience with OO to date is less
> than spectacular, just shows us how much further we have to go down
> this road to get anywhere.

So there you go, Dave Crook. "objects" = "state of the art", whatever
that may be. So BY DEFINITION, objects are the best things you can use
in your software development.

> Re-confirmed in the Church of Objectology :-)
> Ron.

For those of you who are too list-young to remember Rohit's original
Church of Objectology post...

http://xent.ics.uci.edu/FoRK-archive/may97/0342.html

or my deconstruction of that post with its "I, Cringely" analogue...

http://xent.ics.uci.edu/FoRK-archive/may97/0405.html

By the way, I would have posted this to dist-obj, but most of them
already believe in objects, so nothing I've said here is new to them.
Of course, over there I sometimes see threads debating whether documents
and objects are the same, so we see similar themes crop up in both lists
sometimes.

The reason I sent this post here, is that I think FoRK remains the
bastion of object skeptics, and perhaps this will inch some people
forward in thinking about objects.

----
adam@cs.caltech.edu

Objects are just data stuctures with an attitude.
-- Alex Morrow