Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!duke!unc!mcnc!idis!mi-cec!dvk From: dvk@mi-cec.UUCP (Dan Klein) Newsgroups: net.unix-wizards Subject: Re: From VMS to UNIX Message-ID: <166@mi-cec.UUCP> Date: Tue, 4-Oct-83 11:35:21 EDT Article-I.D.: mi-cec.166 Posted: Tue Oct 4 11:35:21 1983 Date-Received: Fri, 7-Oct-83 02:22:24 EDT Lines: 78 Well, here is my 2 cents worth: I have been working with/in Unix since our center had an 11/34a with 2 RK05's (yeah, that little), and a late V5 distribution (pre V6 and V7!). I have also been working with VMS since it was in Beta release in 1978. I therefore feel qualified to comment on both operating systems without much bias, and certainly without being affected by the "I learned on this one, it's the one I'll stay with" syndrome (since I've also worked with/in TOPS-10, Hydra, RT-11, etc.). 1a) Unix has a great user interface - if you know what you are doing. If you don't, forget it, because the user help interface stinks. There is absolutely no equivocation on this point. 1b) VMS has a verbose, laborious user interface. It is VERY consistant in that all programs talk to the DCL the *same* way (not a random, programmer defined way). The help facility is pretty detailed, so if you don't know what to do, you can probably find out. 2a) Unix documentation is okay (only barely) if you know what you are looking for. There are an *awful* lot of undocumented features. And one big pet peeve: Why the hell is there a BUGS section? If you know about it, then FIX IT, damn it! 2b) VMS documentation tells you *everything*, which is great, but there are cases where you have to *read* everything before you can do *anything*. VMS also has real indices, not this crappy ptx stuff. 3a) The Unix set of primitives is pretty sparse. And also pretty redundant. (i.e. read, fread, getc, getchar, cgetc, fgetc...). Give me *one* primitive to do stream input. You can create macros to get all the syntactic sugar you like, but enough diversity, already. 3b) The VMS set of primitives is very robust, albeit a little complicated at times. You can do most anything, although there are a few bits of bogosity here and there. On the whole, this is VMS's biggest win. 4a) Unix has stream oriented files. They are very nice. What is not so nice is the fact that that is all you get. 4b) VMS has all *sorts* of file types. Unfortunately, they don't really have the easy to use Unix flavor stream oriented files. 5a) C stinks. It is inconsistant, irregular, and generates lousy code. It can also be damn near unreadable. It *is* "portable", though. 5b) Bliss is wonderful. It is consistent, regular, and generates the best code this side of the Pecos. If you don't believe it, try a comparison yourself. I have. It too can be unreadable, but not as badly. Unfortunately, it *isn't* portable. Too bad. 6a) The Unix concept of 14 million little applications programs leaves something to be desired. Why do cat, pr, more, dd, tar, and write all have the ability to dump a file to your terminal? One program to subsume these features might be nice. 6b) The VMS concept of 1 mongo application to do everything leaves something to be desired. Sometimes it is nice to have a few million little programs. But you can get them in VMS by defining aliases that set switches in the mongo program. 7a) Unix is by and large unsupported. 7b) VMS is by and large very supported. 8a) Unix has these *wonderful* things called pipes that can be accessed directly from the shell. It also has a history mechanism and on some systems command completion. Internally, the implementation of the first and last of these is a bit of a crock (a bit?), but they are great. 8b) VMS ain't got no. Pity. 9a) Unix would be *great* if someone wrote real documentation, and tore the whole thing down and started over. The concepts have a *lot* to say for them, but the implementation has been pretty haphazard along the way (translation: crocky). Improving on the primitives and providing a consistant tool set would also be nice. Consider the past 6 years to be an experiment, and now do it right. (Hear that, GNU people?) 9b) VMS would be *great* if someone wrote a real command interpreter for it, like the shell. I would be *very* surprised if this is not in the works now at DEC. Both VMS and Unix have a lot to say for them. Both have negative points. In attempting to remain unbiased (by the way, we run *both* here), I constantly oscillate in choosing a "favorite". Both are bogus, and both are nice. The OS of choice would be a hybrid. -Dan Klein, Mellon Institute, Pittsburgh