Re: Re: Learning from history - The UNIX-Hater's Handbook (Peter Quirk)

"Jones, Gregory James" <[email protected]>
Newsgroups gmane.linux.usability.annoyances
Message-ID <[email protected]>
> To: [email protected]
> From: Andreas Fuchs <[email protected]>
> Date: Mon, 15 Sep 2003 08:14:19 +0000 (UTC)
> Subject: [Annoyances] Re: Learning from history - The 
> UNIX-Hater's Handbook (Peter Quirk)
> Reply-To: [email protected]
> 
> On 2003-09-14, David Utidjian <[email protected]> wrote:
> >> You will find a wealth of material in the UNIX-Hater's Handbook at 
> >> http://web.mit.edu/~simsong/www/ugh.pdf. This work was 
> published in 
> >> 1994, just as Dee-Ann was getting interested in computers. 
> Little has 
> >> been done to correct the deficiencies described therein 
> except POSIX 
> >> standardization of the shell and some APIs.
> > 
> > I disagree. On what do you base your assertion that little has been 
> > done?
> 
> Facts. Opinions. (-:
> 
> a) applications crash, leaving core dump files lying around 
> (or not). No debugger pops up. If you had unsaved state, it is lost 
> unless you can pry it from the core file, which is nicely named
"core", 
> without any indication of which program left it (BSD names them 
> "program.core", which is a little better)

This is annoying when working with text based programs.  Some Window
Managers are a little better about giving the error report to screen
with an option to send the error report to the appropriate party (if
configured). None are perfect, though.  

If someone has a fix, please share it.

All operating systems could do better in this regard... though I would
be happy with the BSD functionality at least.

> b) Command syntax is garbled (think also shell quoting rules). Nasty
>    command names abound. For which command is "grep" an abbreviation?
>    "sed"? "tar"? "cut"? "paste"?? Are these programs still used for
>    these purposes?

The problem with longer and "understandable" names on the command line
is that you have to type them out.  Save us all from having to type so
much, please don't make the names "friendly."  

You have to admit that typing "tar" is preferrable to typing
"tapearchive," especially if it comes on the heels of having to type
other longer "friendlier" names.

If you want friendlier names, you can create a .bashrc file in your home
directory and make a bunch of alias statements to handle those and then
make sure that your .bash_profile (different if you don't use bash as
your shell) file in your home directory reads through and assigns those
names when you login.

So you would have something like this in your .bash_profile:

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

Then your .bashrc file would have something like:
alias backup='tar'
alias copyfile='cp'
alias renamefile='mv'
alias movefile='mv'
alias ...
... 
...

You see what I mean.  If you don't believe me.  Try working in DOS
copying files for a day.  There is not much of a difference between "cp"
in Linux and "copy" in DOS (only two letters in fact), or even between
"ls" in Linux and "dir" in DOS (only one letter) but you do FEEL the
difference after typing them all day.

As far as switches go, same thing.  The "-" single letter combos can be
a pain, no argument.  Most, but not all, commands have "--" options as
well.  These are usually followed by full words that generally describe
what they do and the are great.  But typing them often could be a pain.

A handy trick that I teach all Linux/Unix newbies is the -h or --help
trick.  Virtually all, but not all commands support it.  These switches
will show you the syntax of the program you are working with and a brief
description of the switches that it can handle.  It can be a lifesaver.

Try it with the "ls" command sometime.  If one doesn't work, try the
other. Some of what "ls --help" brings up includes:

Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuSUX nor --sort.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all                  do not hide entries starting with .
  -A, --almost-all           do not list implied . and ..
      --author               print the author of each file
  -d, --directory            list directory entries instead of contents

Again for single commands or for jarring the memory, the full words are
great.  

ls --almost-all --directory 

is a great command and, except for the "ls" (which could be solved with
an alias, alias directory_list='ls',) is completely readable.
Unfortunately, especially with the alias substitution, it is carpal
tunnel waiting to happen.

directory_list --almost-all --directory

UGH!  I prefer "ls" your mileage may vary.

> c) When you encounter a kernel bug (and subsequent crash), you have
>    lost.

This needs to be fixed in all programs as well.  If you haven't
experienced an "infinite loop" kernel crash in Windows NT/2000/XP where
is reboots to bluescreen over and over and over, you should count
yourself blessed.  I don't know of a fix other than reporting as much
information as you can to your distribution's Bug database and hopefully
they can work with you to find a fix... in a way this is a unique and
wonderful thing.

> d) You get to write programs in languages such as C, which 
> force you to
>    go through a cycle of
>    write-compile(&fix-errors)-run-crash-debug-(&fix-errors). This
>    development cycle, I'm sure, is responsible for "good enough" tools
>    such as make[1] and other berkeley abominations.

This cycle is actually key to finding a lot of bugs.  An programmer's
IDE can help show syntax problems but it can't fix problems with
incomplete programming logic and misplaced assumptions.  Only a rapid
development cycle can.  The write-compile-run-debug-write cycle is a
rapid development cycle in miniature.

I wonder if there is imperical evidence to show any of this?  Does
anyone know?  I bet a case could be made anicdotally for either side.

Better tools are needed all around.  Might I suggest Kylix as an IDE for
Linux to help with some of these tasks... or EMACS or Kdevelop.  I am
sure there are a host of others out there.


> e) The entire Unix Hater's Handbook chapter on X window with the
>    exception of speed issues still holds. As an addition, there is now
>    XAuth and SSH forwarding to worry about.
>    
> And some others. Life does not have to be like this; and it 
> wasn't, for some users of machines, even back in the 1980s. 
> See the amazing videos made by Rainer Joswig (on 
> http://lemonodor.com/archives/000441.html#000441
> - be sure to follow all the links). Also, see 
> http://kogs-www.informatik.uni-hamburg.de/~moeller/symbolics-i
nfo/symbolics.html
> for more resources.
> 

There was a project written in Pascal (I can't remember the name) that
was pretty amazing (considering the time) a while back.  Be was also
great.  Greatness doesn't always necessitate success however... look at
batamax

> Unix or Linux is by far not the last word in User Interface 
> Design. People have gotten it right (or at least, more right) 
> before. And, amazingly, this "getting right" wasn't done in 
> UNIX. There are amazingly useful data structures out there. 
> Why then do we need to use tools that were written in the 
> 1970s, to fix 1970s issues, operating on One data structure, 
> the stream of bytes without structure, most of which focus on 
> working around the issues arising from the use of exactly 
> this data structure?
>

Unix has proven itself over time.  It is incredibly stable (compared to
other OSes and is virsatile enough to allow for graphical systems (many
different ones) to be placed on top of this solid foundation.  Given
that it has taken 30 years to get to a system this stable, most people
are reluctant to work with an OS that may take another 30 years to reach
the same state.  The thinking is to improve that which has been shown to
work already.

That could be faulty thinking... but it exists.  Computer Science is
still a relatively young discipline, as I am sure you know.  It may take
a while for the next great breakthrough to take hold.  LISP machines
are/were amazing.  I am sad to see Be and Amiga go (for the most part)
the way of the dodo.  I don't know what it will take to make things
better AND different.

I understand where you are coming from.

<snip> 

> Andreas Fuchs, <[email protected]>, [email protected], antifuchs
> 
> 
> --__--__--
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.