<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
On 28-Jan-18 18:38, Hunter Goatley wrote:<br>
<blockquote type="cite"
cite="mid:41f523ae-acee-a0ea-c214-d238c273393b@goatley.com">On
1/28/2018 3:49 PM, Johnny Billquist wrote:
<br>
<br>
<blockquote type="cite">It's more or less a dead language, unless
you are in a very specific environment. So no, most likely it is
not worth learning, if you are thinking that you might work with
it.
<br>
</blockquote>
<br>
</blockquote>
Agree.<br>
<blockquote type="cite"
cite="mid:41f523ae-acee-a0ea-c214-d238c273393b@goatley.com">If
you're writing code that's strictly for VMS and will never be used
anywhere else, BLISS is a fine choice, if you're interested in
learning it.
<br>
<br>
</blockquote>
Agree.<br>
<blockquote type="cite"
cite="mid:41f523ae-acee-a0ea-c214-d238c273393b@goatley.com">
<blockquote type="cite">Compared to C? Well, it is similar, I'd
guess/say.
<br>
</blockquote>
<br>
BLISS-32 was designed as an operating systems language, so you can
easily do things in BLISS that you can't do in C. On VAX, you
could write subroutines that could be called via JSB instructions
in MACRO, for example.
<br>
<br>
</blockquote>
Generally agree. But it's not a bright line. <br>
<br>
IIRC, DECC added #pragma linkage for that. But that only matters in
kernel code - any user mode JSB linkage in the VAX calling standard
has a corresponding CALL linkage. <br>
<br>
But BLISS does it in the language proper; including allocating
storage in specific PSECTs. And with its macros, it is much easier
to do those sorts of things portably. <br>
<br>
The C language standard leaves a lot to the implementers'
imagination - or creative interpretation. BLISS doesn't.<br>
<br>
If I need to access device registers portably, I'll take BLISS over
the varying implementations of C's constant, readonly, and volatile.<br>
<br>
<blockquote type="cite"
cite="mid:41f523ae-acee-a0ea-c214-d238c273393b@goatley.com">On the
other hand, C has the C RTL. BLISS has no RTL, so be prepared for
lots of calls to LIB$ and friends and system services.
<br>
<br>
</blockquote>
Which are problematic/impossible in inner modes. Then again, the C
RTL for inner modes is a late addition, and has restrictions.<br>
<br>
You have to know your environment with either language. <br>
<br>
POSIX C provides a rich user-mode function library. <br>
<br>
BLISS requires that you provide your own. But in the VMS
environment, that's done for you (see starlet.req, lib.req). That's
richer - but hardly portable. Then again, the only other targets
are DEC/OSF1, TOPS-10/20 & PDP-11s. Which, except for this
community, probably aren't of interest.<br>
<br>
If you stick with user mode, the details are different, but the
languages are roughly comparable (especially if you include the
XPORT library for BLISS).<br>
<br>
It's all academic unless you are working in one of the supported
environments.<br>
<br>
<blockquote type="cite"
cite="mid:41f523ae-acee-a0ea-c214-d238c273393b@goatley.com">Hunter
<br>
</blockquote>
<br>
</body>
</html>