I hope this post isn't too "Fringe" - I'm sure someone will just kill it if it is :)
Three things made me want to reach out about this now:
- Decoupling is so in the forefront of design.
- TDD inspires the idea that it doesn't matter how a program comes to exist as long as it works.
- Seeing how often the adapter pattern is applied to achieve (1).
I'm almost sure this has been tried from a memory of reading about it around the year 2000 or so. If I had to guess, it was maybe about and earlier version of the Java Spring framework. At this time we were not so far from days when the belief was that computer programs could exhibit useful emergent behavior. I think the article said it didn't work, but it didn't say it was impossible.
I wonder if since then it has been deemed impossible or simply an illusion due to a false assumption of similarity between a brain and a CPU. I know this illusion existed because I had an internship in 1996 where I programmed neural nets that were supposedly going to exhibit "brain damage".
STILL, after all that, I'm sitting around this morning and not able to shake the idea that it should be possible to have a method of programming to allow autonomous components to find each other, attempt to collaborate and their outputs evaluated against a set desired results.