Some people have got their nuts all twisted up over not being invited to O'Reilly's Foo Camp. Poor babies. The older I get, the less I understand Dave Winer. And the happier I am to have knocked off the RSS 2 feed from this site. I will say - I did that purely for spite for his whole "Movable Type's RSS is Funky" snarky comment. RDF has gotten all my love since then.
And - just to spite you all - I'm going to host a really mean game of scrabble at some point soon. We'll talk tech, I'm sure (probably game AI and component architectures). None of you are invited.
Pbbbbbbbbbt!
That's right. I said "really mean game of scrabble." I mean it too. Someone's going to choke on a game piece by nights end.
But seriously, Dave, It was O'Reilly's affair. They can invite whomever they want. So your event was inclusive - I still can't even fathom why there needs to be a conference about blogging. You type some text, it gets posted online, people can subscribe to be notified of new posts, what more needs to be said?
But seriously, someone's going to choke on a scrabble piece here. We're just the type of folks to whom "I'm going to take that Q and shove it down your throat!" is NOT an idle threat.
This is why we don't play Risk any more.
Ned Batchelder has a link to the paper Objects Have Failed (PDF). Like him, I'm putting this here to remind myself about it later. I skimmed over it tonight, but I so hate reading PDF's sometimes.
Personally, I don't know if objects have failed. But on the large scale, I think that we are entering an object/framework/component mishmash era, and that's not a bad thing. Java's power and popularity come as much from its ever growing standard library, augmented by strong standards like J2EE. I think that the .NET framework is a serious contender, and very similar to Java's standard class library. Objective-C and the Cocoa framework have finally been vindicated with the success of Mac OS X. Cocoa precedes Java and .NET by a good many years and offers a similar thing - a dynamic runtime system comprised of a large library of objects and classes for building applications.
I saw a couple of heartening things today. The first was my glancing over a sample chapter of O'Reilly's Mastering Visual Studio .NET covering integration of components into Visual Studio. Rapidly glancing over the code snippets, screen shots, and some of the text, I realized that it was pretty understandable. This is a considerable improvement over the last generation of common component frameworks (COM, etc), although some of the object/component hybrid systems such as SOM didn't suffer so badly. I think what was impressive was that the concepts were not dissimilar to Zope 3 - there were service managers, services, and contexts. I think this move towards services is especially heartening - "get me the foo service" "have that service do something to this object". This seems to take a lot fewer lines of code than it used to, and more seems to get done. And I think a lot of this stems from the influence of Design Patterns, which took a lot of the common good ideas of different well written frameworks (including MacApp and Cocoa's ancestor, NeXTStep) and codified it into a common language. A lot of the things we were accidentally coding over and over again is now done on purpose, and the standard frameworks and class libraries have grown to offer more of these services.
The other thing I saw and liked was an old PyObjC article with example code that set up an application that watched mounted volumes and automatically opened "README" files. The code was really quite concise and understandable. Part of this is of course due to Python, but a lot of it stems from the power of the built in objects and classes of Cocoa.
So, while I haven't looked at the Objects have Failed paper in any sort of depth yet, I wouldn't say objects have failed. It's just taken a while for the general industry to use them correctly. I think that OOP has been taught and/or picked up incorrectly by so many people that we're just now starting to recover from the damage caused. There are many systems like Zope 2 which are a frightening mess of rigid (yet fragile) and deep incestual forking inheritance trees. Composition and dynamic relationships between smaller objects has been the right idea all along. Some systems got that, a lot didn't. But the latest crop (including Zope 3) seem to have seen the light.