Page 2 of 2
The grey language goop
Of course we have .NET to thank for C# which is mostly indistinguishable from every other .NET language.
The whole point of .NET is that it provides a standard runtime environment and a standard Framework. As a result all languages that make use of it tend to evolve the same set of features and facilities.
Even the recent addition of support for dynamic languages only produced a brief flash of something new and different in the form of F#. As time ticks on however the distinct characteristics of F# are slowly but surely being gobbled up by C# and VB .NET.
What .NET has proven beyond doubt is that it is not the language you write in that determines what you can do, but the underlying support environment. It's the framework stupid. As a result all .NET languages merge into a grey gloop of do-it-all object, functional, dynamic, static, strongly duck typed languages. Is this a bad thing? Probably not, but keep an eye on what is going on outside of .NET just in case something truly radical happens. And no not Ruby, Python, Go, Scala or the latest cool language, something truly radical....
ASP .NET - the biggest blunder?
So what is .NET's biggest mistake?
This has to be the original ASP .NET and the concept of "round tripping". If you click a button on a desktop application it fires an event which is handled by an event handler. What happens when you click a button on a web application - well the original ASP .NET solution was to fire off an event and get an event handler on the server to handle it. An event handling model that involves Internet transmission delays isn't a good idea today, when there is comparatively a lot of bandwidth available, but back then it was crazy.
Today Ajax, the idea that you should only up-date the parts of a web page that need it without reloading the entire page, seems like an obvious idea and perhaps we have ASP .NET to thank for trying to make the web application work exactly like a desktop application.
Of course ASP .NET has been such a poorly defined concept that it has been allowed to mutate and morph over the years into whatever the programming community seemed to think was the next good idea. It has had Ajax bolted onto it and more recently MVC and REST. Now it seems that it is giving up its sophistication and becoming the PHP of the .NET world.
The changing form of ASP .NET tells us something deep and profound about web application development - we have no idea how best to do it. We all have our favourite approaches but there is no one clear winner.
After ten years of .NET we still have no idea how to build web applications.
Does any of this matter?
After all .NET is established and mature.
What is clear however is that the fire seems to have gone out of the machine.
Where is the exciting stuff now? No, it's not Linux and its array of frameworks and languages. The fire is the iPhone and iOS 4. This is the place to be and what does it offer? Some neat hardware, a novel user interface and a classical object-oriented language coupled with a tyrannical marketing environment.
Sometimes you just have to conclude that there is just no logic in this game.