[Info-vax] DCL's flaws (both scripting and UI)

VAXman- at SendSpamHere.ORG VAXman- at SendSpamHere.ORG
Mon Jan 19 17:08:27 EST 2015


In article <m9h815$i3f$1 at dont-email.me>, Simon Clubley <clubley at remove_me.eisner.decus.org-Earth.UFP> writes:
>I think it's time once again to build a list of DCL's flaws now that
>VSI are around. Don't forget however that DCL is both a scripting
>language and a UI. My initial list is below.
>
>Some of DCL's UI flaws:
>
>1) You can't edit commands across line boundaries. Even Windows CLIs
>can do this.

Yes and no.  The default behaviour is an issue with the terminal driver;
not DCL.


>2) You can't save your command history automatically, bash style, and
>have it restored automatically at the next session.

A simple hack.



>With bash, you can have multiple shells active at the same time and
>only the commands entered during a specific session will be added to
>the history file when that session exits even though the shell has the
>full command history from previous shells available (up to a user
>defined limit).
>
>Any implementation needs to think about the multiple shells active at
>the same time issue before proposing a solution to this.
>
>3) No filename completion. This is _really_ annoying especially since
>it even exists (after a fashion) in the command prompt on current
>versions of Windows.

I just double-click MB1 and click MB2. ;)



>4) No elegant incremental search through the command history (bash
>Ctrl-R style).

Another simple hack.



>Some of DCL's scripting limitations:
>
>1) No structured programming constructs such as (for example) while
>loops.

That could, IMO, be easily added.



>2) No ability to iterate cleanly over a list of items (bash "for i in"
>style)

See:  F$element()



>3) No ability to add site specific lexicals.

I once hacked such a beast.



>4) The output from the lexicals should be an immutable collection of
>objects which you can then iterate over without having to worry about
>the state changing during iteration.

Why?  Use a programming language if this is important.



>5) No regex support (this is also a UI issue).

Perhaps, useful.  I loathe the cryptographic nature of regex in unix-born
or C-born lingos.



>6) Pathetic limits on the maximum size of symbol contents.

Yeah, it should be infinite.  :rolleyes:



>7) No array or collection of objects support. (In addition to normal
>arrays, DCL should also support associative arrays.)

Why?  Use a programming language if this is important.



>DCL has absolutely no way to group related variables together in the
>way you can with structs in C or objects in other languages.

Use a programming language if this is important.



>8) You cannot delete a directory tree in one go.

$ HELP DELETE file /TREE



>9) differences is very limited by today's standards. The functionality
>in GNU diff, with (for example) it's ability to find differences in
>whole directory trees and produce patch files for the differences
>in an entire tree, should be the minimum baseline for functionality
>these days.
>
>I also find the unified diff output to be a _lot_ more readable than
>the output from the DCL differences command.

I prefer DIFFERENCE/PARALLEL so don't muck with my DIFFs! ;)

-- 
VAXman- A Bored Certified VMS Kernel Mode Hacker    VAXman(at)TMESIS(dot)ORG

I speak to machines with the voice of humanity.



More information about the Info-vax mailing list