I think the key issue is not as much minimalism as composability. BSD often prioritized
convenience over composability. Each command doing one thing well and doing line oriented
makes them more composability. You can always package up convenient combinations in a
script. Plan9 has lc which prints like unix ls -C but it is an rc script. Trying to
achieve composability can result in leaner systems.
On May 5, 2017, at 8:20 AM, Clem Cole
<clemc(a)ccc.com> wrote:
On Thu, May 4, 2017 at 7:14 PM, Larry McVoy
<lm(a)mcvoy.com> wrote:
some of those Berkeley flags (not specifically for cat, but almost certainly including
those for cat) were really quite useful.
Amen!!! I think that this is key point. What is in good taste or good style?
Doug's distain for the results of:
less --help | wc
is found in bad design, a poor user interface, little fore thought, etc. Most of what
is there has been added over Eric Scheinbrood's original more(1) I do not believe
are used that often, but some of them are of course, and you can not tell who uses what!!
So how do you decide what get rid of?
How do you learn what people really need -- IMO: much of that is experience and this
thing we call 'good taste.' As opposed to what I think happened with less(1)
and many others similar programs (programmers peeing on the code because they code and the
source was available -- I can add this feature to it and I think it is cool. As opposed
to asking, what do really get and not having a 'master builder' arbitrating or
vetting things).
The problem we have is that we don't yet have a way of defining good taste. One
might suggest that it takes years of civilization and also that tastes do change over
time. Pike's minimalistic view (which I think is taken to the extreme in the joke
about automobile dashboard on Brian Kernighan's car) sets the bar to one end and
probably one of the reason why UNIX had a bad reputation, certainly by non-computer
scientists, when it first appeared as being difficult. Another extreme is systems that
put in you a box and never let you do anything but what we told you do; which I find just
as frighten and frustration builds there when I use them. Clearly systems that are so
noisy that can not find what really want, or need is another dimension of the same bad
design. So what to do? [more in a minute...]
Larry is right. Many of the 'features' added to UNIX (and Linux) over time
have been and are useful. Small and simple as it was (and I really admire Ken, Dennis
and the Team for its creation), but in 2017 I really don't want to run the Sixth
Edition for my day to day work anymore - which I happily did in 1977. But the problem
is, as we got 'unlimited address space' of 32 and 64 bits, and more room for
more 'useful' things, we also got a great deal of rubbish and waste. I am
interpreting Doug's point about less --help | wc is that is that are so many thorns
and weeds, it hard to see to see the flowers in the garden.
I'd like to observe that is that most college courses in CS I have seen talk about
how to construct a programs, algorithms, structures - i.e. the mechanics of some
operation. But this discussion is about the human element. What we feel is good or bad
and how it related to how to use the program.
I think about my friends that have degrees in literature, art and architecture. In all
cases, they spend a lot of time examining past examples, of good and bad - and thinking
and discussing what makes them so. I'm actually happy to see it was Professor
McIlroy that is one of the folks taking a stand on current craziness. I think this is
only going to get better if a new crop of students that have been trained in 'good
taste.' So, I wonder do any of the schools like Darthmouth and the like teach
courses that study 'style' and taste in CS. Yes, it is a young field but we
have been around long enough that we do a body of work good and bad to consider.
I think there is a book or two and a few lectures in there somewhere. Thoughts?
Clem