More comments on UNIX
Dan Strick
dan at idis.UUCP
Tue Oct 11 08:43:13 AEST 1983
This flame presents a point of view different from that presented in
the summary in net.unix-wizards of the article in the current issue
of the magazine, The Dec Professional. My opinions are based on my
experiences working as a systems and applications programmer on UNIX
systems for the last seven years and as an applications programmer
on a few other systems (IBM TSS and MVS; DEC TOPS-10, RT11, RSTS, and
RSX) at various times during the last twelve years. I admit that
I am biased in favor of UNIX. For good reasons.
Another Opinion: UNIX Realities
by Daniel Strick
1. UNIX is a good environment in which to develop and run
applications.
UNIX is not oriented towards any one application at the cost
of any other. The file system has no difficult to use and even
more difficult to avoid record management system or special
file formats. Simple problems have simple solutions.
Take a good look at a DECUS catalog sometime. Many of the
programs available from DECUS are rather complicated utilities
that would be trivial to implement or even unnecessary in a
UNIX environment.
Some operating systems include subroutine libraries that provide
support for indexed sequential files and similar notions. Such
subroutine libraries are only occasionally valuable. Few (i.e.
much less than 50% of) applications benefit from them. It is
sometimes nice if all programs can communicate directly with
one of these rare applications (by reading the fancy files),
but this benefit is overrated. The specialized application can
include a translation utility.
Using such subroutine libraries does have some drawbacks. Since
there is no standard for such libraries, programs that use them
are not portable. Since the libraries are intended to be usable
by as many applications as possible, their specifications tend to
be quite complicated (kitchen sink design). This makes them
difficult to understand and to adapt to specific applications.
Problems of medium complexity are often more easily solved with
exclusively home grown software; and the solution may be portable.
Unix is basically a multiple language system. UNIX systems
have historically included large numbers of languages and
other useful utilities that are seldom available for other
operating systems. The failure of many binary UNIX vendors
to include traditional UNIX utilities in their UNIX derived
offerings is a failure of the vendors and not a failure of UNIX.
Major hardware vendors do not have a better record. Remember
the bowling ball.
Layered products, such as forms management packages, or dbms can
in some cases be acquired only from the hardware vendor, forcing
a problem in support. Have you ever tried to get a large vendor
to fix a serious problem? I have. Unless your problem affects
most of their other customers, you might as well not try. The
usual software maintenance contract entitles you to submit
Software Problem Reports and to get new major versions (if any)
of the software without having to pay additional fees. If you
have submitted an SPR, the fix may or may not (usually not) have
been made in a new version.
Most applications can also run efficiently on UNIX systems. The
exceptions are things like real time process control. Other
operating systems may provide complicated system facilities that
have the potential for improving performance but are seldom used
because they are so complicated and are often not even accessible
to applications programmers writing in high level languages.
Does your FORTRAN I/O library provide control over disk block
clustering or asynchronous I/O? UNIX automatically does things
like disk file read ahead and write behind. As a result, UNIX
applications run efficiently even if the application programmers
lacked the time (or the knowledge!) required for tuning.
2. With UNIX, you always get a UNIX person (i.e. wizard).
With other operating systems you get a five foot stack of manuals
that always seems (after about a week of furious perusal) not to
cover the important stuff. If you pay extra, you can have the
manufacturer of your hardware send over an employee to help you
set up your system. If he had understood software he would have been
in software development or software support rather than customer
support.
Other operating systems also have wizards. The big difference
between UNIX and the other operating systems I have used is that
the other systems make doing even slightly nonstandard things very
difficult. It is often impossible for non-wizards to do things
not specifically foreseen by the designers of non-UNIX systems.
UNIX is so simple that even average users can perform magic.
This leaves UNIX wizards with time on their hands so they end
up making unnecessary customizations to their environment which
require nontrivial support. Perhaps they should be restrained.
3. UNIX systems look alike.
I switched from UNIX V6 on a pdp11 to UNIX 32V on a vax without
having to spend weeks or months learning the new system. It only
took me a few hours to figure out how to start making unnecessary
customizations to the 32V kernel. I think I can move to any
reasonable approximation of a V6 or later UNIX on any kind of
hardware and start getting useful work done immediately without
reading any manuals first.
There are such things as severely hacked UNIX systems. If they
have mutated so far that things which used to work no longer
work (e.g. ed commands don't behave like they used to), then
these systems are no longer UNIX systems.
It would be useful if there was a UNIX standard so that one could
take advantage of obscure operating system facilities without
sacrificing portability. I believe people are working on this.
4. UNIX does not break.
There used to be a problem with broken file structures way back
in v6 and v7 days. It seems to have gone away. I have not had
to perform surgery on a disk pack since file structure writes were
carefully reordered and the fsck program was developed. This was
done several years ago.
5. UNIX is user friendly.
UNIX tends not to enforce mysterious restrictions that can only
be understood and circumvented by wizards. UNIX is so simple that
even casual users can successfully use the system in ways unforeseen
by its designers.
There is a class of users who don't use their computer system enough
to become familiar enough with it to benefit from the flexibility of
the UNIX user interface. These people are easily satisfied by simple
menu systems set up for them by others. There are commercial menu
systems available for UNIX, but they have not been generally accepted
because they are not universally useful.
Show me a command system that even an inexperienced user
can use, and I will show you a command system that only an
inexperienced user would want to use.
It would be nice if there were consistent conventions for specifying
arguments to system programs. UNIX is pretty good about such things,
but it could be better. I bet that if UNIX commands were made more
consistent, the people who are now complaining about inconsistency
would instead complain about the lack of stability. You can't win.
It would be convenient, especially for users of binary UNIX
distributions, if the manuals were more extensive. People are
working on this. I fear that brevity (which is a virtue) will
suffer and that only speed readers will be able to digest the
result.
6. UNIX look-alikes usually don't.
Big deal. I bet this isn't the first time a salesman lied to you.
Dan Strick
[decvax|mcnc]!idis!dan
More information about the Comp.unix.wizards
mailing list