[Info-vax] portable sequential file formats (was: Re: Couple of questions on VMS -> world)

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Thu Mar 19 11:16:31 EDT 2015


On 2015-03-19 14:31:23 +0000, David Froble said:

> Stephen Hoffman wrote:
>> On 2015-03-19 05:44:49 +0000, David Froble said:
>> 
>>> So, what's wrong with using Bliss?  It's there.  It works.  It was 
>>> designed for this kind of stuff.
>> 
>> Bliss is not a language that most folks have used or even know about, 
>> and is not particularly available on platforms beyond DEC-related and 
>> not commonly used on those, and Bliss suffers from some of the same 
>> issues as C around memory management, pointers (keep removing dots 
>> until the dereference crashes and then add one dot back, etc) and 
>> memory management and/or garbage collection support.  Bliss has a 
>> massively better preprocessor and macro capabilities than does C, 
>> though the value of an improved preprocessor might be the subject of 
>> some debate with certain folks.
>> 
>>> I won't say MACRO-32, since I have to beat myself with an ugly stick to 
>>> look at some of my old code.  That's not something you do as a hobby. 
>>> Either lots of it, or none of it.
>> 
>> Macro32 does very well, particularly with the eponymous macros support, 
>> that for better and for worse.  As for garbage collection and memory 
>> management and the rest, most of the Macro32 is issues are similar to C.
>> 
>> Macro32 and C both require far more glue code than I'd prefer.
>> 
>> Rust language is more interesting (to me), though that compiler is 
>> probably far too new for many folks to use.  Then there's that the 
>> availability of Rust isn't widespread.  (Yet?)  And Rust is not yet 
>> available on VMS AFAIK.
>> 
>> 
> 
> Bliss is available on VMS, and I'd guess that most people at VSI have 
> some knowledge about it.

Most folks that were in OpenVMS Engineering would.

> If there is no language that does things as well as desired, perhaps 
> Bliss is the language that VSI can modify to solve the perceived or 
> real deficiencies.

VSI has better things to do, at least for the near term.

> Or, re-engineer Basic for the purpose and then use a simple easy to 
> understand language ....
> 
> :-)


Here's a package with ease-of-use 
<http://scratch.mit.edu/scratch2download/>  <http://scratch.mit.edu/>  
:-)  Alas, Scratch can require installing some bits of software that 
various folks won't want to install.

More seriously, by the time the heap memory usage was reworked or 
removed, and lower-level hardware access akin to the C built-ins added, 
and memory management sorted out (pushing BASIC downward), or by the 
time that OOP features and related were added (pushing BASIC upward), 
it'd look very different than it does now.  And VSI would effectively 
have themselves another Bliss; another OS-specific[1] language that all 
but a few folks have never seen or used.

There's some Bliss code for a simple "Hello World" program at 
<http://www.itec.suny.edu/scsys/vms/vmsdoc/72final/5843/5843pro_003.html>. 
 (That Bliss code would have been shorter with the use of the Bliss 
%ASCID or $DESCRIPTOR syntax, but it'll still give you an idea of what 
you're dealing with.)  There's also an example 
<sys$examples:VMS$PASSWORD_POLICY.B32> around that might be worth a 
look.

Hauling Bliss forward would be no small effort, as well.  About a 
decade ago (maybe longer?) a decision was made to move most new OpenVMS 
code over to C.  With C99 and C11 and a library with the current 
selection of strn and strl calls available (and more importantly, 
used!) and with deprecation warnings for sketchy C library calls 
available and enabled in the compiler, C does decently well.  Folks 
that are stuck and for whatever reason at ancient pre-ANSI C, 
K&R-vintage, VAX C code, well, not so much.  Giving VAX C a proper 
burial under a few meters of concrete would probably collectively 
resolve a number of security bugs for customers, but I digress.   C on 
OpenVMS is not particularly modern (yet?) and the environment is 
effectively stuck ~fifteen years back, unfortunately.  As for security 
and integrity, OpenVMS could learn much from current BSD 
<http://en.wikipedia.org/wiki/OpenBSD_security_features> 
<http://www.openbsd.org/security.html> here.

For a look at another and more recent approach to system-level 
programming, here's Rust <http://www.rust-lang.org>.  FWIW, you can 
experiment with Rust right in any modern web browser from that Rust web 
page.  No need to install Rust, when you first want to see how it 
works.  Rust supports useful capabilities that BASIC has never had to 
deal with, such as threading, and it's designed to make linking with 
existing C interfaces easier.

————
[1] Yes, I'm aware that Bliss is available on a select few other 
platforms beyond OpenVMS.


-- 
Pure Personal Opinion | HoffmanLabs LLC




More information about the Info-vax mailing list