home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.unix.wizards:4666 comp.unix.shell:4682 comp.unix.misc:4148
- Path: sparky!uunet!ferkel.ucsb.edu!taco!gatech!emory!ogicse!news.u.washington.edu!carson.u.washington.edu!donn
- From: donn@carson.u.washington.edu (Donn Cave)
- Newsgroups: comp.unix.wizards,comp.unix.shell,comp.unix.misc
- Subject: Re: The Problem with UNIX
- Message-ID: <1992Nov13.180132.141@u.washington.edu>
- Date: 13 Nov 92 18:01:32 GMT
- Article-I.D.: u.1992Nov13.180132.141
- References: <1992Nov12.193707.27532@chpc.utexas.edu> <1992Nov13.104731.29328@aston.ac.uk>
- Sender: news@u.washington.edu (USENET News System)
- Organization: University of Washington
- Lines: 50
-
- evansmp@uhura.aston.ac.uk (Mark Evans) writes:
-
- |michael@chpc.utexas.edu (Michael Lemke) writes:
- ...
- |: Well, fixing typos is neat but it is not the essential problem. My
- |: main complaint about Unix on the user interface level is that there is
- |: no command line interpreter. What I mean is that after the shell munged
- |: your command line it is *completely* up to the program to interpret the
- |: command line and there is no system function available to parse even
- |: these `standard' options. ...
-
- | Could you say what operating system has this feature.
- | (DOS dos the same, what does VMS do?)
- | Also how the programmer is ment to use it.
- | Does this belong in the operating system (thus resulting in command line
- | options sitting in the PCB, yuck!! add a new 'standard' option rebuild
- | the system)
-
- VMS does in fact have a command interpreter, DCL. From a programmer's point
- of view, it's a callable system interface that yields up the parsed command
- line. From the user's point of view, it's a fairly regular command language
- with consistent rules about abbreviations and optional parameters.
- Unfortunately, it's pretty weak as a programming language, but it does have
- "lexical functions" built in to do things like parse file names and wildcards,
- get system information of various kinds and do some text manipulation.
-
- I'm not strong on VMS internals, but I don't think the command line goes
- into a PCB, but rather is stored in a DCL supervisor area per user - VMS
- may be a little more complex than UNIX in this respect. There's a command
- history, which presumably is also stored there. Changing the command set
- does not require rebuilding the system, and users may adopt their own
- command tables or add their own customizations. Updating the command table
- can be problem, since the change doesn't affect current jobs, but that's
- an implementation issue.
-
- Probably the biggest issue for the programmer is that DCL doesn't expand
- wild cards. VMS applications expand wild cards using file system services,
- which is much harder programming work but gives you a lot more control over
- the semantics of the operation, as opposed to (int argc, const char **argv).
- For example, one may use the file specification in one parameter to supply
- defaults for the specification in another parameter, further controlling
- whether the defaults are to be applied using output (new) file or input
- (old) file semantics. That makes "RENAME *.C .C-DIST" a natural idiom in
- VMS, where in UNIX the same operation ("how do I rename a group of files")
- regularly generates questions on this news group. It does however mean
- that applications accept wild cards only if the programmer invested the
- time.
-
- Donn Cave, University Computing Services, University of Washington
- donn@cac.washington.edu
-