A few weeks ago, Ars published part one in a series called "From Win32 to Cocoa: a Windows user's conversion to Mac OS X". In this series, Peter Bright details why he believes "Windows is dying, Windows applications suck, and Microsoft is too blinkered to fix any of it". Part one dealt with the history of both Windows and the Mac OS, and part two deals with .Net, the different types of programmers, and Windows Vista.
In part one, Bright heavily criticised the Win32 API, saying it was filled with legacy stuff and hindered by 15 year old design decisions. In part two he explains that as an answer to the complaints, Microsoft introduced the .Net framework, which was supposed to replace the Win32 API as the API of choice for Windows; in fact, the next release of Windows, Longhorn, would make heavy use of .Net. "It could have provided salvation," Bright writes.
But it didn't. According to Bright, .Net was fine technically, with a "sound" virtual machine, "reasonable" performance, and an "adequate" language (C#), but the library - "used for such diverse tasks as writing files, reading data from databases, sending information over a network, parsing XML, or creating a GUI" - the library is "extremely bad". Bright explains that this is due to the target audience of .Net.
.Net had to roughly appeal to three groups of developers:
At one level, you have people who are basically business analysts; they're using Access or Excel or VB6 to write data analyzing/number crunching applications. They'll never write the best code or the best programs in the world; they won't be elegant or well-structured or pretty to look at. But they'll work.
At the next level, you have the journeyman developers. Now these people aren't "business" people - they are proper programmers. But it's just a job, and they'll tend to stick with what they know rather than try to do something better. They might be a bit more discerning about their tools than the business types, but they're not going to go out of their way to pick up new skills and learn new things.
At the final level, you have the conscientious developers. These are people who care about what they're doing. They might be writing business apps somewhere (although they probably hate it, unless they are on a team of like-minded individuals) but, probably more likely, they're writing programs in their own time. They want to learn about what's cool and new; they want to do the right thing on their platforms; they want to learn new techniques and better solutions to existing problems. They might be using unusual development platforms, or they might be using C++, but they'll be writing good code that's appropriate to their tools. They'll heed UI guidelines (and only break them when appropriate); they'll use new features that the platform has to offer; they'll push things to the limit. In a good way, of course.
|