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.