Objects Have Failed : http://www.dreamsongs.com/ObjectsHaveFailedNarrative.html
Interesting. Says things that I wanted to say. Supplimentary thoughts.
AlanKay was inspired by biological cells when he invented objects. His thinking has always been biological / postmodern.
It's true Java is a totalizing narrative, and saddly true that Smalltalk preceded it. But consider Smalltalk was written to complement a modern style object ecology operating system at a time when other computers and software didn't think that way at all. Now that most OSs and software works in these sorts of worlds, it makes more sense to write things that interact with them.
The rot sets in with C++.
A better metaphor for superceding OO might be to consider a move from single cell biology to multi-cell / swarm biology.
ManageAbility, why OO encapsulation is obsolete: http://www.manageability.org/blog/stuff/pipelines-decoupling-behaviour-encapsulation/view
- (ToRead) Going beyond : http://interconnected.org/notes/2005/06/reboot7/3steps/
Seems rather OTT to me and basically boils down to:
Objects are not a silver bullet - which shouldn't surprise anybody
Java/C++ are not all there is to the object oriented viewpoint - true
Java/C++ are taking over as the definition of what objects are about - maybe
We're going to have more interesting development paradigms in the future - of course
The silver bullet issue is an obvious one. When any new widget comes along there are some people who think it's going to solve all problems up to and including raising the dead. This shouldn't surprise anybody. In many ways its a good reaction since it encourages people to find the limits of what the new widgets can actually do. The fact that objects don't raise the dead, and that some people apply them to domains where they don't fit, doesn't make them a failure.
The whole Java/C++ thing is a more interesting point. Java and C++ have certainly had an affect on what many people consider objects to be, sometimes a detremental one. However the recent rise/resurgence of Perl/Python/Ruby and friends has pushed back at that. Hell, Ruby is basically Smalltalk through C syntax glasses :-)
And it's nothing new. Remember when Pascal and C dominated? Industry always likes one or two big languages, usually the ones that the academic system teaches everybody so they have a nice big pool of people to pick from.
The idea that there is been a retreat from innovation in programming languages is just daft. I don't know about you but I've got a list of half a dozen interesting little languages that I want to play with when the spare time fairy next visits. Scripting languages "making no progress in language and system design"? Tosh. Look at Perl 6. Packed with interesting little ideas.
I also don't think that it has starved other paradigms. Look at the AOP world. Refactoring and design patterns. The agile movement. The rise/resurgence of the scripting/dynamic/scripting languages. The web. RESTful architectures. Etc. Nobody standing on their laurals that I can see.
I think the real test for whether objects have failed is whether you want to abandon them. Do we want to drop back to the pre-objects world? I certainly don't. They're not a failure, they're just not the end of the journey.
Hell - I agree with most of what he's saying. Just not the portentous tone :-)
The IT industry has always been this way. It was this way in the eighties. It was this way in the nineties. It's this way now. It'll carry on this way next decade. They'll always be the prevalent opinion, that big fat bump in the middle of the bell curve. They'll always be the edge, when interesting folk are trying interesting things that don't quite fit in with the majority view. I'm gonna spend my time there if I can.
-- AdrianHoward (feeling ranty today :-)