At one of the CLR evolution talks, I disagreed with the prevailing notion that serving the needs of the current language community should be of paramount concern. To me, interop trumps language fidelity. It is only via interop that minority programming languages can enter the corporate market. Crown-jewel software is always so complex that it constitutes its own domain; the idea that the Bus Factor (the number of people whose death in a bus run-down would be catastrophic to the company) can be minimized by using a majority language for the crown jewels is largely an illusion. The problem isn’t the crown-jewel software, it’s the other stuff, the administrative interfaces, the reporting functions, the integration bridges, that are legitimate arguments against the use of minority languages in corporate environments.
So the argument goes, “Well, the current language enthusiasts demand the fidelity or they won’t have the opportunity to create the crown jewels in their unique way.” But my argument is that adoption is driven by the young. It’s the kids who are just entering the marketplace who are going to do something astounding; it’s the kid who doesn’t give a fig about language fidelity who’s going to combine X with Y in a way that gives his or her company a real competitive advantage. Software advances not by theory, but by the unexpected consequences of implementation. The ultimate success of the .NET platform depends upon how pragmatic it is to combine trail-blazing components that exploit some unique expressiveness of a minority or domain-specific language with the support and infrastructure components of the more mainstream “homesteading” languages.