[Info-vax] DCL's flaws (both scripting and UI)
David Froble
davef at tsoft-inc.com
Sun Jan 18 20:46:10 EST 2015
Simon Clubley wrote:
> 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.
Do you mind if I'm an ass for a bit? I promise to be more reasonable at
the end.
> Some of DCL's UI flaws:
>
> 1) You can't edit commands across line boundaries. Even Windows CLIs
> can do this.
It has been explained in the past that the problem was this stuff was
implemented in the terminal driver. I'd suggest looking at a different
implementation, such as an application that could do the command line
length and buffer and history, and maybe running multiple copies. Yes,
it is a PITA.
> 2) You can't save your command history automatically, bash style, and
> have it restored automatically at the next session.
See above for better implementation, not a patch on the terminal driver.
> 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).
I don't know why anyone would want 2 script processors at the same time.
Isn't that multiple sessions?
I also don't understand retaining the history.
> 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 still remember, with a grin, JF's idea of user name and password
completion.
:-)
:-)
> 4) No elegant incremental search through the command history (bash
> Ctrl-R style).
>
> Some of DCL's scripting limitations:
>
> 1) No structured programming constructs such as (for example) while
> loops.
Learn the mantra,
"DCL is not a programming language".
"DCL is not a programming language".
"DCL is not a programming language".
"DCL is not a programming language".
> 2) No ability to iterate cleanly over a list of items (bash "for i in"
> style)
"DCL is not a programming language".
"DCL is not a programming language".
"DCL is not a programming language".
But, there is GOTO ...
> 3) No ability to add site specific lexicals.
Write your own library routines, and call them from a reasonable
language, such as Basic.
> 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.
"DCL is not a programming language".
"DCL is not a programming language".
> 5) No regex support (this is also a UI issue).
"DCL is not a programming language".
"DCL is not a programming language".
> 6) Pathetic limits on the maximum size of symbol contents.
"DCL is not a programming language".
"DCL is not a programming language".
> 7) No array or collection of objects support. (In addition to normal
> arrays, DCL should also support associative arrays.)
"DCL is not a programming language".
"DCL is not a programming language".
> DCL has absolutely no way to group related variables together in the
> way you can with structs in C or objects in other languages.
"DCL is not a programming language".
"DCL is not a programming language".
> 8) You cannot delete a directory tree in one go.
But, you can have a command procedure to do so ...
> 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.
We know I don't get out much, but when I have something to compare, I
move it to VMS to use DIFF there. Guess I'm missing something.
But yeah, I jump through hoops when I want to compare a bunch of source
programs. I share that pain.
> I also find the unified diff output to be a _lot_ more readable than
> the output from the DCL differences command.
>
> Simon.
>
Ok, sorry, got carried away with the "paste" ...
:-)
DEC used to do this thing, they used to let people vote on desired
enhancements, and then choose projects based upon demand. This might be
a good practice to continue. Doing so on the internet, rather than a
couple times a year at DECUS.
Through all of what you wrote, there is this "feeling" that you are
writing from the perspective of a workstation, not a "server". Things
such the command line recall and length just don't come up when you're
running programs. As a software person, I can appreciate what you're
asking for. But from a production perspective, I don't see that it's
relavent.
Not saying you should not have all that you listed. But, I'd like you
to discuss them not from a development and / or management station, but
from a "running production" perspective.
More information about the Info-vax
mailing list