<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>