[Info-vax] Access to _all_ VMS system services and library functions from DCL ?

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Mon Jul 10 12:21:02 EDT 2017


On 2017-07-10 08:26:00 +0000, mcleanjoh at gmail.com said:

> I'm sure we've been around this block on other occasions but given how 
> memory has expanded enormously since VMS v1.0, why not simply return 
> ALL the relavent data in one large data structure and let the users 
> deal with whatever fields they want to use?
> I'm sure there's some smarts in the processing of what might be 
> multiple item codes but simply copying all the relevant data into a 
> single data structure for the user has to surely be the simplest.

Ayup.  Traditional DCL is not the path forward.   Sure, access to 
system services is nice, but that's just not competitive.   Easier 
access to system services looks wonderful in comparison to where we are 
now, certainly.

But then we start looking at dealing with modern text encodings, with 
the minutia of the system service APIs, and the rest of the knock-off 
effects — well, why not integrate and use Python.   Maybe Lua or some 
other choice, if there's some problem perceived with Python or some 
benefit to offering an alternative.

This whole approach — accessing system services — utterly stinks of 
decades-old thinking, decades-old designs, decades-old processing.   
Which works great if you're (only) solving the sorts of problems that 
OpenVMS has always dealt with, but DCL and the system service 
abstractions are a huge code slog, and code slogs are expensive and 
tedious and lots of user-written code to debug and maintain.

If VSI decides to fund more than some nibble around the edges of the 
existing command interface, and to overhaul the text handling and 
traditional APIs. then a shell that's more competitive PowerShell is a 
much better target than an increasingly-encumbered DCL shell.  Passing 
around entire (opaque) objects, and not atoms of data and fields 
embedded in fixed-format seas of characters.  Much nicer abstractions, 
and easier for VSI to adjust and extend going forward.   We've long ago 
found better ways of dealing with password fields than fixed-format 
records and fixed-length system service itemcodes for the password 
hashes, for instance.   Give folks a reason to move forward.  Leave DCL 
to do what it has always done, and to slowly and further fade from 
relevance.

Beyond PowerShell, some other discussions...
https://unix.stackexchange.com/questions/4495/object-oriented-shell-for-nix
http://ipython.org

This same approach is just all over the place in existing DCL code, too:
https://unix.stackexchange.com/questions/169716/why-is-using-a-shell-loop-to-process-text-considered-bad-practice 


We can either get DCL dragged forward kicking and screaming into the 
early part of this millennium and with a near-inevitable morass of 
UTF-8 hackery and the requisite technical debt inevitable with 
upward-compatibility, or we can get something better aimed at what 
we're going to be doing in 2027, and leaving DCL to quietly graze out 
in some code-pasture out behind BoltonHQ.   Well, that for those of us 
that aren't already or aren't planning to retire in place, and with 
apps that are similarly retired.

TL;DR: DCL and traditional system services APIs just aren't going to be 
interesting for folks looking for platforms for new apps.


-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list