As always, it really depends on what you want to do with your operating system. (All opinion here) Security - Linux, definitely. The OS is open for the whole world to see, so more security holes get found and fixed before it gets into a stable/popular distribution. In a security-critical server app, with no dependencies on Windows, I'd definitely go with Linux (or preferably *BSD). Of course this limits you to using a stable/popular distribution. If you run the bleeding-edge revision, you're probably going to have just as many security holes as Windows. Programming Experience - Windows. I've done both Linux and Windows programming, and in years past (with techs like MVC and ATL - bleh!) it really would have been a toss up. But in the last few years, Microsoft has moved ahead with techs like WCF, WPF/Silverlight, EF4, etc. There are analogous tools for Linux, integrated into one platform. I've seen people argue that Visual Studio is "locked down" so you're stuck with what MS gives you, but that isn't true. I've written several extensions for VS to do company-specific things - the platform is very extensible. You can write a tool to do anything that isn't already done by VS (like my favorite, ReSharper). Support - Toss up. Linux has much more online support, but it's spread out all over the place. If you've got some Google-fu skills, you'll find the answer. Microsoft has less support, but it's more centralized. A lot of people make the argument that just being able to call someone for support is necessary, but generally if professional programmers can't figure it out, it's a bug. And it's not like MS is going to fast-track a bug for you unless you routinely write 6 figure checks. Here[^]'s a bug that I've been dealing with for months. Edit: Forgot to add: My personal setup is a Windows 7 Pro PC with gobs of ram and a copy of VirtualBox, for those occasions where Linux is a better choice for a task.
Before .NET 4.0, object Universe = NULL;
modified on Tuesday, April 26, 2011 4:23 PM