[Info-vax] Programming languages on VMS
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Wed Jan 31 21:42:20 EST 2018
On 2018-02-01 01:02:11 +0000, seasoned_geek said:
> On Wednesday, January 31, 2018 at 2:26:38 PM UTC-6, Stephen Hoffman wrote:
>> As for file versions, vanishingly few folks uses those outside of>
>> OpenVMS, and file versions don't work all that well on OpenVMS, and>
>> source control using file versions as implemented on OpenVMS are a>
>> trouble flag.
>
> While I agree about source control, file versions are growing in use,
> not shrinking. Sadly, they are half-assedly done in Linux and
> Weeendoze. When you download the same file twice or copy it twice,
> depending on the tool, you aren't prompted to rename, instead you see:
Who cares about bad implementations, except to learn from? if you
want to use a bad implementation, you have your choice of bad
candidates here, too. You can use a bad implementation from Windows,
or a bad implementation from Linux, or a bad implementation from
OpenVMS.
Somebody please explain the use case for versions on OpenVMS?
>From what I can tell of it, it's because there's no log management
system for log files and crashes and such, and because the text editors
from antiquity were constrained and various of those text editors
haven't had anybody even take a serious look at them in most of thirty
years. It was just easier back to centralize versioning in one spot —
RMS — and leave dealing with the fallout to the end-user. But is that
what we really want or need? Seriously, what problems do the RMS
versions solve? Reverting to past revisions when editing files is
probably the most common solution cited, yet — outside of trivial cases
— you end up with disconnected selections of uncoordinated and
poorly-allocated files scattered around, and — if you need to fall back
to a previous edit — you need to clean up the mess and figure out which
versions of which files are the associated versions yourself.
Manually. How quaint. Aren't we using computers here, and aren't
these computer thingies good at this sort of checkpointing and
coordination? I mean, even various of the old editors have the
ability to journal activity. The just don't journal across exits. So
is it better to journal across exits? Because what we have means we
have to clean up the mess ourselves, even if we never end up rolling
back because more than a few editors and more than a few other tools
just leave these versions scattered around. Like the turd files that
they so often are.
This also all without even something as simple as a delta applied to
compress the amount of data stored across what are often
not-all-that-different versions, but that's fodder for another
discussion. The end-user gets to deal with it, and few tools even
bother with a roll-over when the architectural version limit is
reached, too. There's some "fun" here in the RMS parser, but that's
fodder for another day. There's also that more than a few of us
deliberately use ;32767 to block creations of new versions of
unnecessary files — changes coming from VSI will break that, IIRC — and
there's that the whole of the operator and logging and crash-handling
support on OpenVMS is positively archaic.
We use logs and log versions and editor versions because that's what we
have. Not because it's even remotely good.
So who would design and use OpenVMS-style versions as they are now, and
why? And if you did have your choice here, would you implement
versions as was done on OpenVMS, or would you look to have and to use a
framework or library to allow the user to roll back coordinated
versions within the particular tooling? Or for other apps that create
multiple versions, would you even bother scattering dump files or log
files all over the place, or would you prefer to use a competently
designed framework that actually solves your problem and doesn't leave
you with a completely half-baked screwed up hack job as is the case
with OpenVMS? The ability to roll back to a previous version is a
great idea. That there's just one implementation of versions on
OpenVMS is wonderful. But tell me what problem does the current
implementation solve, and what problems does it introduce? More
importantly, would the existing design be your choice, or — like most
of us — do you spend more time dealing with the results?
Seriously. Versions as implemented are far inferior to editors or
(increasingly common) IDEs that can use — for instance — system
frameworks and/or revision-control systems to roll back to previous
change sets. But RMS versions are what we have. And they're kind of
bad at what they're supposed to solve. Use app-specific revisions
based on a common framework — as is implemented on some other platforms
— and deal with logging and crashes with a console app and centralized
and distributed-capable logging frameworks.
RMS file versions were great idea and a wonderful implementation in the
1970s and 1980s, but tools and expectations have moved on. Many of
the new developers are smart folks, and they have better tools and
frameworks than those available on OpenVMS, too. Yeah, some of you
are fond of text editor that can't track multiple file versions in
parallel, but that's a solved problem in many (other) text editors, and
some of the available IDEs make this whole application-development and
UI development sequence vastly easier, including integrating the
editor, the compiler, the "fun" that is the usual build file, the
linker, the debugger, the source code control access, and other tools.
It's several decades past time to drag versioning support and the text
editors and logging and app orchestration, installation, upgrades,
patches, dumps, and related topics forward. Because what we have now
is poor, if we really take a look at RMS file versions and at what
problems that solves and what problems that creates and at what
alternative approaches are available that might better address those
requirements. But it's what we have.
Roll OPCOM and auditing and accounting and the rest forward a
generation or three, create frameworks that allows tools to manage file
versions better whether for logging or for development, get an IDE and
updated editors available for developers, and roll the whole of the
OpenVMS environment forward a couple of decades.
TL;DR: RMS file versions are a pain to use, require the user or the
system manager explicitly manage them, and don't particularly solve the
problems that we even say that RMS version files solve. Not well. If
at all.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list