Does .NET Make a Difference?
Because it is the environment, not the language, that is the major factor for both learning and productivity, it is going to be fascinating watching the Microsoft .NET environment take shape. The .NET environment has a common environment but allows multiple languages (including OO COBOL). The Common Language Runtime (CLR), which is part of .NET, is meant to provide people like me with a single, consistent set of system resources without being baffled by too many alternatives. This should solve many of the problems discussed earlier, but I still expect that learning the environment will be the major hurdle in learning to program with .NET.
I also expect that the new Microsoft language, C#, will be easy to learn and that there will be little difference in productivity among the programmers using VB, OO COBOL, and C#. As with J2EE, the power and complexity all lie in the environment. The programming language truly won't matter. Today we ask new programmers what languages they know. We are asking the wrong question. We should be asking what environments they know or, because of their enormous complexity, what parts of the environment they know.
I'm willing to be proved wrong. It will be fascinating to see whether any of the more esoteric languages in the .NET environment, such as Eiffel or Python, prove to have any additional productivity benefits.
If the complexity and the difficulty of programming lie in understanding and using the environment, can anything be done about it? The trend for taking complexity out of the programming language and putting it in the runtime environment started with C. Perhaps it is time to reverse the trend. Is it possible to make the environment significantly simpler by making small extensions to the language?