[Info-vax] DCL and scripting

John E. Malmberg wb8tyw at qsl.net_work
Wed Dec 12 09:47:35 EST 2018


TL;DR:

My vote would be to keep DCL the way it is, but to provide a good 
interactive Python shell for scripting that needs to be 64+ bit aware, 
with applications designed to handle serialized objects.

Imagine a SHOW DEVICE/TO_XML or /TO_YAML, etc command in VMS that could 
be invoked by by interactive python or other scripting languages.

Or a set foobar/from_xml command etc.

On 12/11/2018 10:30 AM, Stephen Hoffman wrote:
<snip>
> If you're not already looking at it or similar tools, interactive Python 
> (IPython) is a different approach with different design compromises and 
> different strengths, and focuses more toward scripting and data access: 
> https://ipython.org   For broader usage beyond Python and ilk, bash and 
> maybe fish or another interactive shell would be more commonly 
> encountered.   Microsoft also wishes PowerShell to be more widely 
> installed and more commonly available, though the success of that 
> open-sourcing effort remains to be seen.  For embedded scripting, prolly 
> Lua.

You keep mentioning PowerShell.

Have you done any significant coding in PowerShell?

Last time I was using it, I was spending a lot of time fixing scripts 
migrated to PowerShell to work around bugs and omissions in PowerShell.

There are massive easy ways to get your self into trouble.  There were 
significant gaps in the methods available for PowerShell to do simple 
basic operations used for system configuration and testing.

For example, operations on Powershell on mapped drive letters are 
incompatible with the DOS commands for doing the same thing and the 
PowerShell API is incomplete.  But there is also a COM interface to 
Powershell, and a COM interface to the mapped drive letters.

It of course is totally incompatible with the documented PowerShell API 
that should do the same function.  That they are incompatible is not 
documented of course.

Trying to use COM from PowerShell to fill in the gaps will result in 
days spent trying to figure out why the simple scripts for concept 
testing worked, but the long running tests that use them periodically 
randomly go into the weeds until you find out that is simply a 
feature/bug of the COM interface that can not be disabled, so everything 
with the drive mapping has to be converted back to DOS commands.

And it would help if someone at Microsoft would issue an edict that an 
application can not ship unless it can be installed and configured 
completely by PowerShell over a network connection.

For some reason Microsoft wants the only installation for several 
products to be through logged in user at the GUI for what they call the 
"Out of the Box" experience, where you have to play 20 questions to get 
the system setup.  And they seem to be actively trying to break any 
automated way of installing / configuring, even for testing purposes 
with each new release.

Is the grass greener there?

And what is the big feature of Powershell?  Passing objects.

How are the objects passed between independent applications?  They are 
serialized into a format like XML, or read in as XML.  I Seem to 
remember there being two options, one of them being XML.  You can 
specify them as options to the PowerShell commands.

Powershell aware applications can know in a pipeline they should default 
to write the output in XML or other serialized format, and the same for 
reading, but when run interactively to format the output in a human 
readable form.

That feature could be added to DCL commands and system utilities on VMS.

> It's utterly absurd that single-user mode is even remotely necessary for 
> basic system and cluster configuration maintenance work; for the 
> password-reset and for licensing-related "fun", and for user-startup 
> troubleshooting.  The world has moved past the use of command line for 
> these and similar maintenance tasks.

Linux still needs single user mode for recovery of a system where you do 
not know the root password, especially with the current practice of not 
setting a root password at all.

Almost all automatic and large scale system setup and maintenance is via 
the command line under the covers at the implementation point.  Remote 
GUI console access is way too expensive when a "small" collection of 
systems is in the middle double digits and a typical collection is much 
larger.

All debugging is over serial connections.

Linux is also covering a mass of backward [in]compatibility with layers 
of symbolic links and scripts in an attempt to hide distro differences.
Each application of course uses a different method.

Regards,
-John




More information about the Info-vax mailing list