"A Web 2.0 application is one that does a small task and does it well, then it is re-used".
It is interesting that this how Unix applications and shell's ability to setup pipes between applications (as unix processes) were characterised. Each unix application did something small and did it well. Then, using a simple mechanism of linking the byte stream output of one to the byte stream input of another made beautiful macro applications that could carry out remarkable tasks in concert. I claim that Web 2.0 dates back to the Unix (or perhaps Multics). MacOS and Windows brought GUI but they forced us to work in an environment of standalone applications. Applications could not be married together using simple bonds. I never expected OLE to be glue that could hold multiple applications together.