I'm a .NET developer of 8 years and am walking away from opportunities paying $1000/day at the moment, with plans to move away to Unix for my own products later this year, because deep down I feel increasingly uncomfortable with Windows, although I can't pin down exactly why.
Any comments/corrections welcome on my below attempt to understand differences based on my limited experience. I especially welcome any thoughts in areas where Windows is perceived stronger as a server-side operating system, because I can't think of any. Are there any startups here building on Windows Server? I know this shouldn't be a big deal, but I can't shake off the feeling that it is.
Flexibility (Unix +1)
Unix can be installed on more types of computers
In future, this could be something as
small as a watch
large as a supercomputer
sophisticated as a robot
innovative as a new CPU
Scalability (Unix +1)
Managing 100 servers would be
easy using Unix
Can SSH into systems quickly via terminal
Could even automate this process
As it's completely text-driven
kludgy using Windows
would require using remote desktop
is automating from outside even possible?
Aims (Unix +1)
Linux
Benefits everyone involved
Windows
To increase shareholder value for Microsoft
Accessibility (Unix +1)
Windows is closed system
Have to fit solution around OS
Linux is an open system
Can fit OS around solution
People (Unix +1)
Most people working on
Windows Server do it primarily for the money
Windows people can usually not comfortable with Unix
Use Windows because they have to/told to
Unix do it primarily because they want to
Unix people can usually comfortable with either
And choose to use Unix
Notebook/Desktop Hardware (Unix +1)
Windows
Decent hardware (ThinkPad/Dell) and client OS experience (Windows 7)
Can target .NET or JVM with this
Ideal for targetting Windows Server
Not ideal for Unix (no native terminal)
This is not acceptable (restricts freedom to target other systems)
Can use cygwin but this is a 2nd class option
Unix
Best designed hardware and client OS experience (Apple)
In my experience better designed than any Windows options
Can target JVM with this
Ideal for targetting Unix (tabbed terminal/shell built-in)
Cannot target Windows
This is acceptable (does not restrict freedom to target other systems)
Dependency (Unix +1)
If Microsoft goes down
Entire server stack will be left unsupported and frozen
Expensive migration to Unix or other platform
All invested time goes to waste
If Unix ecosystem goes down
Impossible situation
There will always be a Unix ecosystem
Has already exist around 50 years
Timelessness (Unix +1)
Skills learned 20 years on Unix are still relevant today
Not the case for Windows!
10 years from now
Windows will likely require learning of many new things
Windows 2008 is very different from Windows NT
Unix will operate with knowledge of most of the same things
Linux of 2012 command line identical to Linux 2002 one
Philosophy (Unix +1)
Unix design's openness lends itself to socratic method
Every decision can be defended/attacked
Encourages thinking about what is going on
Strengthens understanding
Windows design's closedness lends to closed thinking
Design decisions unknown/private mostly
Discourages thinking about what is going on
Weakens understanding