Why do some programmers prefer Windows over Linux? by @rlnel
Answer by Ryan Nel:
Edit: Based on’s comment. They prefer it because they have the luxury of using .Net.
I’ve worked for years on Linux systems, but after 3 years on the Microsoft stack I’m firmly convinced that Windows offers us the single most advanced development ecosystem in the world.
I can’t cover every benefit that you get from Data Analysis, modeling, R integration, C#, SQL, Development environment etc. But I’m going to try and give you a taste of the workflow that Microsoft gives you.
Sprint Planning on TFS
Let’s look at our workflow, we start by planning our Agile sprints on TFS. Our projects managers assign stories, track burn downs, generate reports and we go back to our desks with a set of tasks.
When we open Visual Studio all of our work items (tasks) are there waiting for us.
Intelli Sense and Code quality
Before I even begin to change any code Visual Studio is telling me what I’m dealing with. I can see how many references there are to each function, the number of unit tests, code reviews, authors and even the number of times this function has triggered errors in production.
I can also rely on generated code maps and analysis tools to help me discover the logic flow of the feature I’m working on.
When I begin to write code I have the full support of the C# language and tooling which was designed from the ground up to give you the best possible intelli sense and real time code quality information and templating.
See’s answer for more on this.
The ReSharper tooling takes this to the next level, check out there showcase for more:
Converting a loop to a single line Linq query:
Debugging and Performance profiling
I won’t go into this too much as there is far too much to cover, but Visual Studio offers some of the best performance profiling and multi threaded debugging tools available.
Visual Studio is completely aware of SQL Server and bridges the gap between your code and your DB seamlessly. Through Entity Framework my models are kept constantly in sync with my DB which I design and update without even leaving Visual Studio.
This allows for some fantastic benefits like receiving JSON data from a HTTP push, mapping that down to a fixed datatype and inserting a row in your DB all in a single line of code.
Web Server Integration
Visual Stuido, C# and IIS work together like old friends. My web server settings for both production and dev are driven and configured entirely from a single code base.
Once my code has been completed and I’m ready for code review I don’t even leave my IDE.
Ready to close a Task
Code reviews are done, unit tests are passing the testers have signed off and I’m ready to close my task. I push my code commit up, linking it to my tasks with comments. This puts a smile on my project managers face as another notch immediately comes off her down down chart and the task is marked as closed on TFS.
Deployments and Azure
I’m not even going to go into this, the benefits are obvious and deep. Having a development environment that is deeply integrated and backed by one of the worlds largest cloud environments takes things to a level that no one can compete with.
When you set out to start a new C# project this check box speaks volumes about how much Azure gives you.
Microsoft is a company that charges a small fortune for its software environment and that fortune is what allows it to out perform and out compete any other open source product, not only in functionality but also in sheer scope and scale of their thinking.
It is an environment that’s completely aware of itself. Right down to the machine you’r working on and the user you have logged in as. You have access to all of it, and all of it is integrated seamlessly into some of the most advanced tooling in the development community.
Don’t get me wrong, I still love Linux and I always will. As a compute user you lose a lot when you buy into this Microsoft world (customization and control) but I know this much. As a developer, I’ve never been more productive.