Windows Loses Ground With Developers
An anonymous reader notes that InfoWorld is covering a survey of North American developers that claims that Linux is gaining share as the number of developers targeting Windows fell 11 percent over the last year. Evans Data has been conducting these surveys of client, server, and Web developers since 1998. Evans Data says that the arrival of Windows Vista likely only kept the numbers from being even worse. The big gainer wasn't developing for a Web platform, but rather for Linux and "nontraditional client devices." Windows is still dominant, with 65% of developers writing code for this platform. Linux stands at almost 12%, up from 8% a year earlier. The article says that Evans Data collected information on Mac and Unix development but did not include them in this year's report.
I'm guessing the majority of the applications written to target Linux are server applications. It would be interesting to see if this can be explained by a result only in the server application space, or if more client applications are also being targeted at Linux. Of course, in order to find that out, one would probably have to pay to view the full report.
I know more "indy" developers that code irrespective of the platform. Programming is just different these days - what took an entire staff can now be done efficiently with just a few. Is the market downsizing or has growth in the field shrank or is it more platform agnostic? How do you determine a windows coder vs a universal or only a linux/unix coder?
Windows has some of the best tools out there - software as a whole has matured to a level that there hasn't been anything "new" and its been mostly upgrades. No wonder the market has shifted. Just because there are more developers in other environments, doesn't mean the market has dried up, just that it has matured.
By day, I code in WTL, Win32API and (regrettably) MFC. Like a great many, I wonder whether .net is pushing developers away from Windows.
This mess is drawing Microsoft's attention away from the C/C++ layer, where it's sorely needed, and into what, as far as I'm concerned, is comparable to Visual Basic. Put simply, neither my employer nor I are interested in writing in a proprietary, bytecode-interpreted language. If we have to abandon our C/C++ investment, it certainly wont be for a proprietary java knockoff. It will be for the real thing, allowing us to slowly drift away from Windows.
The way Microsoft ended Vb6 with no easy upgrade path to .net both irritated developers here and stranded some of them in vb6 with no path to .net. Some of them trained to java (tho they would have preferred .net).
She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
For mainstream and corporate software, Windows may continue to rule, but the biggest leaps I've seen in development have been in the niches where Linux has prominence. Audio, networking, manufacturing and server-side work is booming for Linux.
In a perfect world, this article would distinguish between development "for pay" and all development.
technical writing / development
Meanwhile, the entire POSIX spec, suitable for fully implementing a POSIX system including the utility apps, with commentary and rationales for design decisions, fits in about two and a half feet of binders.
Intellisense is practically mandated if you want to work with an interface as baroque as Win32. And it's nice even when you're working with your own defined classes and structures. But it has its own drawbacks, as Petzold notes:
I develop for many platforms at work. It's a core part of my job. I mostly enjoy writing code for Unixish platforms, and tolerate the Windows stuff. The APIs on Unix are small, well-thought-out, have few if any side effects, and tend to be thoroughly documented. I find very few interfaces on Windows have even a majority of these traits, let alone all of them.
I've rarely felt the need for more debugging support than Linux comes with. The problems tend to be simpler and more easily uncovered. Eclipse is nice, and appears to take many of the good things about Visual Studio and leave much of the bad behind. For some projects, it's very useful. For others, it's overkill.
Another item worth reading - the whole book, really - is The Art Of Unix Programming. For a Windows developer's perspective on the book, see here. Needless to say, I don't agree with everything he writes there, but you might find it interesting.
PHEM - party like it's 1997-2003!
FTA: "The arrival of Windows Vista likely only kept the numbers from being even worse." I think that Vista actually hurt the numbers. Not so much Vista itself, but in Microsoft's post-launch execution. Microsoft's big developer hotness is supposed to be all these great .NET technologies. But the lack of Vista adoption might be putting the brakes on developer enthusiasm because Microsoft is failing to lead the way in showing the end result benefits of it.
COM didn't really catch on until Microsoft started demonstrating how hot it was through dogfooding and releasing applications architected on it. With it came a greater degree of modularity and flexibility that they demonstrated compellingly well with IE, Office, Visual Studio, etc.
To this day, Microsoft hasn't delivered any real WPF+WCF applications - at least none that a significant number of people care about. They should be pumping out amazing applications that can be showcased on Vista, causing developers to envy and copy them, and causing customers to actually want Vista because of the hotness the developers *and* Microsoft are offering.
The migration of developers away from personal computers toward "nontraditional client devices" worries me a bit. The best thing about the rise of the PC was that it gave people access to a machine that could be configured to do a lot of different things, including "learn about making your own applications". I wonder whether all the "embedded devices" will also provide a coming generation with a platform from which to recreate their world the way PCs did for us.
I love the Mac interface, but the thing I always loved about Windows was that it forced me to look more closely at what was going on than I may have wanted to. And that exploration of the nuts and bolts of an overcomplicated desktop OS gave me insights that I may never have gained had I stuck with the more opaque Mac OS. Of course, for those who want that experience today, Linux has it in spades. But as much as I loathe Vista and the company that has trumpeted this abomination on us, I'm glad that I had to learn about a "registry" and I'm glad I had to learn about shared libraries and memory management.
As much as I'm sure that the devices that will contain embedded processors will provide us with utility and convenience, pleasure and all varieties of entertainment, I hope that the idea of an all-purpose, configurable, expandable box with a keyboard and operating system doesn't go away any time soon. And I hope that developers continue to create tools for us to use on those boxes.
You are welcome on my lawn.