I recently made the move from Linux development to Windows development. And as much of a Linux enthusiast that I am, I have to say – C# is a beautiful language, Visual Studio is terrific, and now that I’ve bought myself a trackball my wrist has stopped hurting from using the mouse so much.
But there’s one thing I can’t get past: the cost. Windows 7, Visual Studio, SQL Server, Expression Blend, ViEmu, Telerik, MSDN – we’re talking thousands for each developer on the project! You’re definitely getting something for your money – my question is, is it worth it? [Not every developer needs all the aforementioned tools – but have you ever heard of anyone writing C# code without Visual Studio? I’ve worked on pretty large software projects in Linux without having to pay for any development tool whatsoever.]
Now obviously, if you’re already a Windows shop, it doesn’t pay to retrain all your developers. And if you’re looking to develop a Windows desktop app, you just can’t do that in Linux. But if you were starting a new web application project and could hire developers who are experts in whatever languages you want, would you still choose Windows as your development platform despite the high cost? And if yes, why?
UPDATE: I did not intend to start any arguments. And I gained some valuable insights from the answers/comments:
- The cost of setting up a dev environment in Windows does not have to be so great.
- The cost of the dev environment is really just a drop in the bucket when compared to the cost of the developers themselves. (This doesn’t help a small startup or a freelance programmer, though).
The cost of the tools is tiny compared to what you spend on the developers themselves. For example, most of the tools you’ve mentioned are included in Visual Studio Professional with MSDN, which runs about $800/year.
The real question, then, is whether you get any benefit from that cost. That’s harder to answer, and I suspect depends on your developers and what kind(s) of software you develop. As such, it’s impossible to give a blanket answer. Nonetheless, from the employer’s viewpoint there’s hardly enough difference between the two to notice.