Saturday, July 29, 2006
Programming 101: One Choice is a Good Choice - Visual Studio and .NET
Visual Studio and .NET
I really like Microsoft in the sense that they always provide developers with the best out of the box. In pre-.NET time, we have Microsoft C++ and Visual Basic, which comes with a very cool and powerful IDE (Integrated Development Environment), superb debugging capability, and mass documentation from MSDN and a pretty good default framework as well.
C/C++ is a language, but the Microsoft framework comes with the MFC (Microsoft Foundation Class). Though it is not perfect or really good, but it’s probably one of the best at that time and makes development easier and faster. Without MFC, coding just using C/C++ and Win32 API is bad for productivity (though you could write so really clean and fast code).
As for VB, it comes with its own not so obvious framework, the ever so lovely and high-productivity forms (not really a framework, but it is good). They are so easy to use and a business application could be developed in such a fast and simple manner. And their IDE, it is almost like the best IDE in the world at that time (and probably is still one of best now). Their IDE helps you code faster (IntelliSense), easy and fast debugging (breakpoint and variable watch) and compilation and dependency linking is a breeze (they automate most of the task for you, thus you don’t need to learn makefile). And all these is available out of the box, no need for selection, downloading or configuration.
Fast forward to .NET, most of the things about pre-.NET Framework and IDE still holds true. The IDE had gotten better and more powerful, and the .NET framework had really standout as a real and common framework for all languages on Microsoft Platform. When you learn .NET, you have everything from an options of a few popular languages, a very best IDE, mass MSDN documentation and .NET Framework (with almost every features you ever need is here, and with good support and enhancement from Microsoft).
Java can run on all platform, but .NET can be coded in all languages (not all actually, only those supported by Microsoft or someone kind enough to port it over). When I first heard this, I thought, what good could it be to support multiple languages on one platform using a common .NET framework? Perhaps not on end user's side, but on developer’s side. You get to use any language you like (remember, each language is good at something, and each developer have their own preference) and yet, still shared the same powerful .NET framework and each language can talk (inter-operate) with each other seamlessly. If more programmers like the framework, it means more programs shall be developed for it, and in turns more applications for Windows platform. It you are thinking wouldn’t it be nice to run .NET framework on other platforms as well, probably you could look into Mono.
I am not aware if there is any other prominent framework or IDE out there for Microsoft Platform. There used to be Borland with their C++ and Delphi product, and I think it is fading out slowly. IBM had shift focus to support Java. I think the lack of competition at the same level could actually be a blessing. As long as Microsoft continues to churn out good productivity suites for developer, I would continue to stick with them. Is dominance good? Hmm, at least you could easily identify the best IDE and Framework, and everyone is using it (so you get more support at Forum, Newsgroup, Books, Articles and etc). I mean, resources is abundance, innovation is continuous, and support is everywhere, and definitely no headache is choosing and looking for the best. The best is within the box.