From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Haertel Message-Id: <200307100610.h6A6AaBt072083@ducky.net> To: 9fans@cse.psu.edu Subject: Re: [9fans] Fork: useless and painful? In-Reply-To: <20030709210515.A6186@edinburgh.cisco.com> Date: Wed, 9 Jul 2003 23:10:36 -0700 Topicbox-Message-UUID: f220a8ac-eacb-11e9-9e20-41e7f4b1d025 >> The only thing I've noticed about it is that they've >> changed around the default sorting order, and I can't find a way to >> get the traditional behavior. Actually, it's really irritating. > >I find it really bloody annoying, however 'LC_ALL=C ls' put's things >back the way they should be... I've seen this on Solaris too, so it's hardly a Linux thing. In fact, I saw it on Solaris before I ever saw it on Linux. So by the time it started popping up on Linux, I knew what to do. I am pleased to report that the disease has not yet spread to FreeBSD, at least. I think the root of the problem is that in Unix-family operating systems (including Plan 9) the shell and utilities have tried to serve two different masters, which is always hard. On one hand, they form a programming language, for which well-defined behavior is a paramount consideration. But on the other hand, they are a user interface. And people like their interfaces to conform to their prejudices and comfort zones, rather than having to conform their behavior to fit a logically minimal interface. This tension has been in Unix for a long time. An early example was the multi-column support in Berkeley "ls" which changed its behavior depending on whether it thought it was talking to a human or not. The recent disease of making all kinds of utilities default to using locale-specific sorting rather than native machine sorting is just the latest in a long line of plagues. The recent Unix/Posix changes are especially ironic and ill-conceived because they are attempting to change command-line interfaces to be more "user friendly" at a point in history when all the users who need "friendliness" are pretty much exclusively using graphical interfaces anyway. On the other hand, it would be fair to say that a lot of the power of Unix as a programming environment comes from developing familiarity, through routine interactive use, with tools that one can subsequently incorporate into programs. So if you can get people to use things interactively you may be able to turn them into programmers, and that may justify trying to engineer the command line environment in fuzzy human friendly ways. But while having logically unnecessary but supposedly human-friendly features may be reasonable, it's surely NOT an goal that justifies any design no matter how awful.