[comp.os.vms] Does everyone wear blinkers around here?

hjm@cernvax.UUCP (hjm) (05/02/88)

Dear Rest-of-the-World,

     I've been following the rantings and ravings of the UNIS v. VMS flame-show
and I feel that I want to put in my share, but rather more of an oil-on-water
type comment.

     I am a VAX sysmanager and a UNIX user, and, quite frankly, I find both
     systems far too complicated for my liking!  I find the UNIX style
     flexible and most annoying because of the alt-control-shift-meta-coke-
     bottle featurism that is evident throughout.  I also find VMS has some
     really nice bits, but again it's too damned complicated.

(An aside: everyone else spends their time arguing about the applications that
run under the two OS's, but noone seems to know about how the two things are
put together.  If you are going to argue, try telling the authors of the
applications that, and don't burn up my time with junk.  If you want it better
or different, then WRITE IT the way you want.  Both systems allow you to do
what the hell you want, so do it and don't gas off.)

     This is really a cry from the heart addressed to the rest of the world
     just asking for a simpler life for all of us.  Next time you are going
     write or design anything, try thinking about the following items FIRST:

     1)  Everyone wants code that is efficient and fast, compact, easy to use 
         and understand, is bug free and is as flexible as possible.  Agreed?

     2)  The secret of good design is to make the right generalisations.  If
         everything can be treated in the same elegant and efficient fashion
         then the following rules apply:
     
            o  Less special cases implies less IF statements;

            o  Less IFs implies smaller code;

            o  Less IFs implies less testing effort and bugs;

            o  Less IFs implies easier understanding; and

            o  Less IFs makes the things more flexible and general.

     3)  So, avoid "features" at all costs.  Maintain orthogonality between
         functions and also between data, and KEEP IT SIMPLE.

     4)  Make life easy for yourself by writing less code and thinking before
         you design, not after or during.

     5)  If you're writing something low-level like the core of an operating
         system, or the lowest levels of a network system, or a filing system,
         then don't try to write all of your users applications for them in the
         kernel.  For instance, try to reduce the number of fundamental 
         functions that you provide to a minimum, and choose them so that the
         application programmer can do what he/she/it wants (remember, only they
         know what they want!).  Push everything into the application,
         especially error handling, as only the application knows what it 
         wants to do about errors (like arithmetic overflow etc.).

Enough of MY ranting ... just to say that both VMS and UNIX let you do want you
want if you're prepared to do it for yourself, which is how it should be.  If it
isn't what you want, then write it, but please make a good job of it, or we'll
be saying just the same things about YOUR program on a news board somewhere!

< *** Flame off *** >


Phew,... Just a few of my thoughts to try and make the world a:

    F E A T U R E   F R E E   Z O N E

(Usual disclaimer about this being my own personal vendetta and not my v. nice
employer's etc. etc.)

	Hubert Matthews
	CERN
	Geneva
	Switzerland

--------------------------------------------------------------------------------

VMS  is a reg. tm. of Digital Eqpt. Corp.
UNIX is a reg. tm. and well known footnote of AT&T.