Computing power and network bandwidth have increased dramatically over the past decade, yet the design and implementation of complex software remain expensive and error-prone. Much of the cost and effort stems from the continuous rediscovery and reinvention of core concepts and components across the software industry. In particular, the growing heterogeneity of hardware architectures and diversity of operating system and communication platforms make it difficult to build correct, portable, efficient, and inexpensive applications from scratch.
No takes yet. Share an insight, caveat, or question.
D. Scott Brandt (1997) studied this question.
Synapse has enriched one closely related paper. Consider it for comparative context: