[Info-vax] Programming Languages (was: Re: VMS - The new file system. What do we know about it?...)
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Mon Nov 14 10:58:41 EST 2016
On 2016-11-14 00:23:14 +0000, Simon Clubley said:
> On a more serious note, I do hope that any new work to VMS is being
> done purely in C at a minimum (with maybe even a better higher level
> language for the userland code). I think the days of Bliss and
> especially Macro-32 are long past for any new code (or at least for any
> new source code files added to VMS from now on).
The shift from Macro32 or Bliss to C happened a couple of decades ago,
within OpenVMS development. There was a large project to allow the
use of C for system programming, both for use within OpenVMS
development and by customers. That involved removing register-based
calls and expunging dependencies on constructs such as co-routines from
the external and many of the internal APIs. Part of that project work
included the move from the older VAX-ish "step 1" device drivers to the
"step 2" device drivers and interfaces. This project wasn't in the
initial OpenVMS Alpha releases, but was in place and in use starting
around OpenVMS V6.1; at the so-called "functional equivalence" release.
As for ~2021 to ~2026 and the future and as much as I like and use C
for system-level development work, it has problems and issues.
Locally deprecating specific calls from the standard library is a
common start toward more reliable C code is a start, as are knobs such
as QUESTCODE. Tools for scanning C code for errors, vulnerabilities
and for dependencies on undefined behavior are increasingly common
practice too, both by the original authors of the code involved and
also by folks looking for weaknesses in the code.
Accordingly, I'd be looking past C for system-level work. Probably
not to C++, though there are large system-level and application
projects using (usually a subset of) C++ for development. Definitely
not to BASIC, Fortran or such, though those are fine choices for
various applications. Quite probably toward Rust for wholesale
rewrites or wholly new system-level work, though that'd be a major
shift for VSI and for OpenVMS end-users that might follow, and there
are trade-offs there, too. Rust avoids various of the worst of the
holes within C, and Rust code is intended to interoperate with C
libraries and frameworks. There are some definite downsides to
choosing Rust, not the least of which are its recent advent (such
newness being major-scary for many organizations using OpenVMS), and
that Rust isn't presently available on OpenVMS. I would also look at
Rust for application-level work, though there are other languages I'd
consider there and that might be better choices than Rust and that are
better choices than C, C++, BASIC and such.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list