Unix advocates often say Unix is great because it has all these powerful tools. And yet practically every Unix tool has been ported to Windows. So why not just run Unix tools on Windows so that you have access to both tool sets? Sounds reasonable, but hardly anyone does that. People either use Unix tools on Unix or Windows tools on Windows.
Part of the reason is compatibility. Not binary compatibility, but cultural compatibility. There’s a mental tax for shifting modes of thinking as you switch tools.
I think the reason why few people use Unix tools on Windows is a sort of negative space. Artists use the term negative space to discuss the importance of what is not in a work of art, such as the white space around a figure or the silence framing a melody.
Similarly, part of what makes an operating system culture is what is not there. You don’t have to worry about what’s not there. And not worrying about something frees up brain capacity to think about something else. Having too many options can be paralyzing. I think that even though people say they like Unix for what is there, they actually value what is not there.

{ 11 comments… read them below or add one }
Yoav 12.23.08 at 11:01
makes sense, people say that they like things because it is just as in the right place for them on the complexity / simplicity scale in terms of their needs
Sohail 12.23.08 at 11:20
The first thing I used to do was to install all the Unix tools on Windows. I’ve stopped that practice in the hopes of giving the default Windows tools a chance.
Oh it is painful. So painful.
John 12.23.08 at 11:58
I started out programming on Unix. When moved over to Windows, I brought my favorite Unix tools with me: emacs, grep, etc. I soon decided that it was easier to go native. Every so often I’d try to come up with a best-of-both-worlds synthesis, but it never worked. It’s easier to use one tool chain or the other.
gappy 12.23.08 at 13:43
I admit I have not used the fabled Powershell, but many Unix tools on Windows leave a bitter aftertaste, mostly because they were thought and implemented in a bash/tch/korn context. ipython, for example, feels like a hack. MINGW is not nearly as well integrated in Windows. Try to add libraries: in Linux, adding ATLAS is one click away, in windows, it’s complicated. I could provide more examples, but you get the point. Powershell is built from the ground up, hence the difference. However, I venture to say that a lot up people used bash/pithon/perl for their scripting needs, and very few use the Powershell (I learned about it on this blog, and I work for an IT Big Multinational…).
To every OS its role and strengths. Windows is not very friendly toward ported tools, but has the best consumer applications.
Sarah 12.23.08 at 20:06
Fascinating point.
A lot of people continued/continue to do stuff from the command line using old DOS commands. I’m not sure whether that’s even still possible in modern Windows OS? But in, say, Windows 95 it was still often easier to pop open the command window and fix a problem there rather than to try to navigate the gui.
John 12.23.08 at 20:17
Sarah,
It’s funny, but Microsoft has discovered the command line and created an object oriented shell, PowerShell. It’s becoming easier to do administration via scripts, especially things like working with Active Directory and Exchange.
Daniel Lemire 12.25.08 at 11:50
Does Powershell comes with Vista by default? I think not.
You can get Windows to be Unix-like, as you could get any OS to mimick any other OS… however, the devil is in the details. Small things that you will never get working like you need to.
John 12.25.08 at 18:18
Daniel,
You’re right. Making Window Unix-like or making Unix Windows-like is never going to be satisfying. When in Rome, do as the Romans do.
I’m surprised nobody has brought up OS X. Apple goes a great job of managing negative space.
As for PowerShell, it did not ship with Vista by default, but it is supposed to ship with Window 7. And it ships with servers.
Alexandre Dulaunoy 12.27.08 at 03:48
“I think the reason why few people use Unix tools on Windows is a sort of negative space”
Yes, Windows is a negative space especially for the Unix tools. Just have a look at the file(system) naming scheme under Windows that broke all the standard Unix tools. Cygwin tried to circumvent such behaviour but you can forget to move a script from any Unix-like operating system to the Windows. It’s better to stay under Unix.
John 12.27.08 at 14:47
I didn’t mean “negative” to have a pejorative connotation. “Negative space” is just the term artists use. It’s an unfortunate term; simply saying “space” would be more accurate. I guess it’s “negative” in the sense of a photographic negative, inverting your usual perception. In any case, more is not always better, and what’s not there can be valuable.
Lee 01.19.10 at 20:19
I will simple add that a Windows port of a large collection of unix tools exists at
http://cygwin.org/
In order to make many of them work, it was necessary to make a
mapping for a lot of underlying concepts (i.e. things like having
a “/dev” included in the filesystem)