[Info-vax] Access to _all_ VMS system services and library functions from DCL ?
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Thu Jul 13 11:13:39 EDT 2017
On 2017-07-13 01:18:13 +0000, David Froble said:
> Stephen Hoffman wrote:
>> On 2017-07-12 20:12:18 +0000, David Froble said:
>>
>>> Simon Clubley wrote:
>>>>
>>>> This scheme instead would be pretty close to 0% upwards compatibility.
>>>
>>> Not true at all. All the code you've written, with the exception of
>>> usage of "changed" system services, will still run. No re-build
>>> required.
>>>
>>> The alternative would be to stiffle improvements. Which would you choose?
>>
>> You're rebuilding OO. Badly.
>
> I don't care if it's OO, or something else, as long as it's callable,
> easily, from all VMS languages.
That's certainly a part of the effort. The other part is implementing
those changes in such a way that we don't have to (unnecessarily) keep
revisiting the source code for rebuilds or for rework. It's a
balance, certainly. Total compatibility seems great right up until
you're change-deadlocked and can't fix things, and free-for-all changes
are just as bad.
An OO approach is a completely different approach from what's been
classically used with OpenVMS libraries and frameworks. It's quite
common on some other platforms, and it's something that OpenVMS can
learn from and OpenVMS folks can use. Microsoft .NET and the Apple
Cocoa APIs are two examples. It's something that solves what you're
headed for with your records and data structures, avoids the overhead
of populating a big record all at once as was mentioned else-thread,
and it also avoids the need to deploy component upgrades en-mass. The
approach also has some similarities to how SQL databases work, too. (I
won't go so far as to point to Nix
https://www.linux.com/news/nix-fixes-dependency-hell-all-linux-distributions
as having a clever way to do those incremental upgrades easier, and a
similar approach is certainly workable on OpenVMS, but I digress.)
Any design would need to be integrated with the major OpenVMS
programming languages. A big record requires minimal language
changes, but and some changes in a few places to (for instance) verify
the format of the data structures returned; version compatibility
checks, etc. I wouldn't expect to see some of the programming
languages go OO here, and for various reasons. For those, I'd expect
to see them continue to use the existing system services and RTL calls,
and to be jacketed for any OO APIs. Getting the necessary data into or
out of the Cocoa APIs using Objective C is quite possible, as it's
still C underneath.
As for which languages are the most active on OpenVMS, and where to
concentrate the development effort here... I certainly don't know what
the OpenVMS programming language usage is, and I'd wonder if VSI even
knows anything beyond license sales; there's no instrumentation nor
telemetry to acquire and track these sorts of details after all, and
there are the obvious discussions around confidentiality and
anonymization.
> Now, are you saying if it's not what you want, that it's automatically wrong?
Automatically? Nope.
> Improvements are improvements.
Though some changes are not improvements, and some improvements are
mortgages against future effort, and there are a few
were-once-improvements that could now best be addressed by removal.
> They do not all have to follow some specific guideline.
While I'm in favor of making certain changes that might break app
compatibility for good and specific reasons, improvements that require
repeated app source changes or incremental rework in the same area, or
that require app rebuilds, or system-wide all-at-once upgrades aren't
going to be particularly popular. That's where the approach you're
suggested with a big structure populated with data is headed. That's
basically what we have with SYSUAF right now. That same approach is
also analogous to what happened with the moves from HPE SSL prior to
1.4, to SSL 1.4, and again to SSL1, and what will probably happen again
for the apps with the next big OpenSSL update. That approach does
certainly work, of course. That's not the question. It's just that
there are some other and arguably better ways to implement that. To
learn from what other systems and designs provide. I don't really
want to be maintaining and upgrading data stores using fields stuffed
into RMS record structures now, much less in 2027.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list