[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