Thursday, August 26, 2004

It's not about the platform

A question on the Borland newsgroup has caught my eye. It's not the first time the question has been asked, and I expect it won't be the last. A developer was wondering why should we develop for the .NET framework, instead of building a Win32 application. Reading the answers, it seems to me there's a misconception among developers of what .NET is about.
One common answer is simply that .NET is Microsoft's next platform. Microsoft has put its considerable weight behind the framework, and clearly considers .NET its main application-level API in the near future. This is, in fact, a perfectly valid reason to choose .NET as your development platform, and in many cases it is the only reason needed to make such a decision.
But there are also technical considerations. The .NET framework is a platform, but it's not an operating system. Win32 is here to stay, and will be supported for a long time. Why bother with a new platform when your existing tools and skills work just fine?
It turns out the technical answer is even simpler than the "because Microsoft is big" answer: productivity. Or, to be exact, developer productivity. The .NET framework is a development platform, and is targeted at developers, not end users. End users don't care if applications are managed, or garbage-collected, or built on a common type system. Developers, however, should.
As Brad Abrams points out, the whole idea behind the .NET framework, the CLR, Visual Studio .NET, the C# language, visual designers, and other similar tools and technologies is increasing developer productivity. The less time and effort you spend on making sure your program is stable, on managing user interface elements, on memory and object lifetime management - the more time you can spend on what your application actually does.
This focus on developer productivity is what makes the .NET framework attractive for developers. Note that this doesn't mean .NET is always the right choice. Delphi developers, for example, have had a visual RAD tool and a powerful framework for years. It might make more sense to develop a Win32 application in Delphi, saving your users the need to install the .NET framework. On the other hand, the framework is extremely easy to deploy, and is already installed on a lot of machines. The technical merits of the framework (some of which are listed here) may outweigh the inconvenience of the initial deployment.

No comments: