[Info-vax] Bliss, C, Other Languages (was: Re: BLISS, was: ...)

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Tue Mar 23 13:41:29 EDT 2021


On 2021-02-10 18:53:18 +0000, Robert A. Brooks said:

> On 2/10/2021 1:35 PM, Simon Clubley wrote:
>> On 2021-02-10, Robert A. Brooks <FIRST.LAST at vmssoftware.com> wrote:
> 
>>> Ignorance of BLISS is a character flaw.

It'd be interesting to hear more about your view of the benefits of 
Bliss here, as compared with other programming languages.

Bliss macro processing was astoundingly capable, but macros were not 
usually the code structure that I was looking for.

As syntactic sugar around app-level function calls go, OO is my 
preference to the classic Bliss macro wrappers for functions. OO has 
some big benefits, but adds incremental run-time costs. Itemlists add 
run-time costs, too, etc.

Inside an OS, simpler and faster calls can preferable in 
frequently-executed code paths and macros can be handy for that. C 
macros are weak generally, and are very weak in comparison to those of 
Bliss.

Going forward, Bliss is just never going to become widely popular, and 
its usage on OpenVMS and other DEC-derived platforms will remain niche.

>> Let me guess: you also prefer good old fashioned K&R C and cannot be 
>> bothered with all that newfangled ANSI C stuff ? :-)

VAX C on VMS early on was... fun.  DEC C 4.0 was a substantial 
improvement, well beyond adding ANSI C support.

>   I didn't start writing C until I joined VMS Engineering in 2000, so I 
> mercifully missed the K&R mess.

A number of OpenVMS Engineering folks got to C by way of Bliss.  Others 
were using C well before VMS Engineering. The former were typically 
more fond of Bliss than were the latter.

When you're arriving from disparate DEC assemblers, Bliss looks really 
good. Same as C looks, for those that arrived at C on other platforms.

> Even if I had used C in the 80's, Pascal was my 2nd language I learned 
> (after BASIC).

Some early Pascal was akin to VAX C in terms of... fun. This having 
learned Pascal using the UCSD p-system on Terak. That p-system stuff 
crashed. A lot. Didn't make the greatest impression. The DEC Pascal 
compiler was vastly better, there.

> I was an advocate of Pascal's strong typing, so I suspect I would have 
> continued that style, despite the (older C) compiler allowing misery.

Yeah, I'm fond of enabling the compiler type checking in the VSI C compiler.

That often starts with QUESTCODE, and which usually then evolves into 
/STANDARD=C99 /WARN=( ENABLE=( NOC99, OBSOLESCENT, DEFUNCT, QUESTCODE, 
... ) DISABLE=( ... ))

Oh, and there are a dozen or so C calls which are locally deprecated in 
various projects (e.g. https://github.com/git/git/blob/master/banned.h 
), as well as local deprecation of most uses of the volatile keyword.

As for alternatives to C and Bliss, I'm liking Swift and the available 
frameworks so far. That's for app-level work, and not for driver-level 
work. Different environment than what Rob is usually working on, too. 
Some of the Swift programming constructs are very different from those 
of DEC-derived environments. As for some of those handy concepts, Swift 
supports closures, as does Clang. Can be used for in-line AST-like 
code, for instance. Hopping that the VSI C compiler work brings along 
closures for use in OpenVMS apps, too.

For those inclined to explore further, Crystal just reached 1.0.0.  See 
https://crystal-lang.org

ps: IIRC and this ~Y2K, OpenVMS had ~8 million lines of Bliss, ~8 
million lines of Macro32, and ~8 million lines of C, and with a smaller 
chunk of various other code, with C usage then-increasing 
substantially, and with negligible changes to the Bliss and Macro32 
code.


-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list