Developer vs. Runtime Responsibilities
Developers of enterprise software have both the best and worst job in the world. While they are prototyping or developing core business functionality, they live in a world of logic – a world they create by themselves where they are completely in charge of the rules. This dream is shattered, however, when they have to deal with the underlying infrastructure services that are necessary for their applications to perform well or scale beyond their workstation – services like caching, or clustering the app to run on more than one server. The promise of managed runtimes like Smalltalk, Java, or C# - that the runtime will take care of the underlying plumbing – has not yet been fulfilled. Ask any developer how much of his or her code is taken up with infrastructure code (typically 20-40%!) and it’s obvious that the “managed runtimes” have a ways to go before delivering their utopian ideal.