6 ms·
Thoughts on Unix vs Windows
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
- latch 15y agoFor me, the benefit of abandoning (or, at least, not focusing on) Windows, is that you aren't constrained in terms of tools and toys. Things like memcached, varnish, nginx, redis, mongodb, node, (etc, etc, etc) either only work on NIX, work considerably better on NIX, or come out much earlier for NIX. Microsoft and its [mostly commercial] partners are significantly out-paced/innovated by the OSS world. I don't want to go over each of your points, but I think some of them are silly. Abandon Windows because "if Microsof goes down"..come on. Or, talking about the open philosophy of Unix, and then lumping Apple into Unix on hardware? Apple != Unix. For your product, you should pick the solution that makes sense. And there might be more than one. Cost should probably be a factor, so should funness. Do what feels right, learn from mistake, iterate.
- batista 15y agoand then lumping Apple into Unix on hardware? Apple != Unix Actually, OS X is a certified UNIX (tm). Ironically, Linux is not actually a UNIX.
- CyberFonic 15y agoI pretty much agree with much of what you wrote. But feel compelled to point out a couple of things. Unix was initially widely used on DEC computers - PDP 16 bit and then VAX for 32 bit versions. DEC management were less than impressed so they scrambled to improve on Unix and released VMS. The key designer of VMS was lured by Microsoft and thus NT came about. Once you strip away the GUI, a lot of Windows server is quite a bit like Unix. In the world of heavy duty servers, Unix and its many derivatives were there first - by a long shot. The key players were Sun - Solaris / SunOS, IBM with AIX and HP with HP/UX. More recently IBM have been building super-clusters using Plan9 which is a descendent from Unix and created by same guys. The increasing performance of x86 multi-core CPUs and the freedoms of GNU/Linux effectively negated the early advantages of the proprietary Unix based systems and that is the core reason for their decline, not any competitiveness from Windows server. Windows Server won a lot of support because it was easier to click around on a GUI than to remember commands. Of course, the real Windows gurus use command line stuff and scripts. But they are the minority when it comes to Windows sysadmins. The vast majority of big systems, think Google, Amazon, et al. use Linux systems. Now for a fun fact. Back in the 1980s, when Microsoft only had MSDOS, they actually licensed Unix from AT&T and sold it as Xenix. Once Windows gained a foothold, they sold Xenix to Santa Cruz Operation (SCO) who marketed it quite vigorously through the later 1980s and 1990s. A lot of office servers ran Xenix on IBM PC/AT hardware - some tricked out with larger disks and extra memory cards. You have to wonder how things would have panned out had Microsoft kept Xenix and wrapped their Windows GUI around it. That same strategy worked out pretty well for Apple with OS-X which is Mach/BSD at the core with a very nice GUI on top.