<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>
      <blockquote type="cite">
        <div><br>
        </div>
        <div>Indexing from zero - who ever heard of zero of a thing.
          Damn quiche eaters.</div>
      </blockquote>
    </p>
    <p>I've heard it explained this way: Index zero requires zero offset
      from the start of the array's memory address, so the index
      presents how many offsets the item is away from the start of the
      array.</p>
    <p>Makes more sense when you think of it that way. But again, it
      makes more sense in lower languages like C than it does in
      "higher" languages like Fortran and Python where memory addressing
      details aren't exposed to the programmer. <br>
    </p>
    <p>Prentice<br>
    </p>
    <div class="moz-cite-prefix">On 10/20/20 4:00 AM, John Hearns wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAPqNE2W-nWWEWOsiLGP2+N-+QnQRgKR=72PFxv4QxhrbHtmF_Q@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">> Most compilers had extensions from the IV/66
        (or 77) – quoted strings, for instance, instead of Hollerith
        constants, and free form input.  Some allowed array index
        origins other than 1<br>
        <div><br>
        </div>
        <div>I can now date exactly when the rot set in.</div>
        <div>Hollerith constants are good enough for anyone. It's a gosh
          darned computer, not your nearest and dearest whispering in
          your ear. It still thinks it is talking to a thundering line
          printer and getting its input from a real Teletype.</div>
        <div><br>
        </div>
        <div>Indexing from zero - who ever heard of zero of a thing.
          Damn quiche eaters.</div>
        <div><br>
        </div>
        <div><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Mon, 19 Oct 2020 at 22:27,
          Lux, Jim (US 7140) via Beowulf <<a
            href="mailto:beowulf@beowulf.org" moz-do-not-send="true">beowulf@beowulf.org</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div style="overflow-wrap: break-word;" lang="EN-US">
            <div class="gmail-m_-3174744868416875074WordSection1">
              <p class="MsoNormal">Yes, the evil-ution of languages
                proceeded at a much more stately pace in “arpanet” days.</p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal">Typically, you’d have a bunch of
                vendor specific versions, and since PCs per-se didn’t
                exist, you bought the compiler for the machine you had. 
                And then, maybe you paid attention to the notes in the
                back of the manual about deviations from the Fortran IV,
                66, or 77.  Most compilers had extensions from the IV/66
                (or 77) – quoted strings, for instance, instead of
                Hollerith constants, and free form input.  Some allowed
                array index origins other than 1 (handy for FFTs where
                you wanted to go from -N/2 to N/2).  Most also had some
                provision for direct access to files, as opposed to
                sequential, but it was very, very OS dependent. 
              </p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal">Probably by the 80s and early 90s,
                with widespread use of personal computers, and the POSIX
                standard, you started to see more “machine independent,
                standards compliant” Fortran. And, you saw the idea of
                buying your compiler from someone different than the
                computer maker, i.e. companies like Absoft and Portland
                Group (now part of nvidia), partly because the
                microcomputer manufacturers had no interest in
                developing compilers for cheap processors, and sometimes
                to accommodate a specialized need.  Hence products like
                Fortran for 8080 under CP/M from Digital Research.  ( I
                ran Cromemco Fortran IV in 48k of RAM on my mighty
                Cromemco Z80 at 4MHz, which I believe was a variant of
                Fortran-80 from DR)</p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal">But even then, it was a pretty slow
                evolution – the Fortran compilers I was running in the
                80s on microcomputers under MS-DOS wasn’t materially
                different from the Fortran I was running in 1978 on a
                Z80, which wasn’t significantly different from the
                Fortran I ran on mainframes (IBM 360, CDC 6xxx, etc.)
                and minis (IBM 1130, PDP-11 in the 60s and 70s. What
                would change is things like the libraries available to
                do “non-standard” stuff (like random disk access).</p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal"> </p>
              <p class="MsoNormal"> </p>
              <div
style="border-right:none;border-bottom:none;border-left:none;border-top:1pt
                solid rgb(181,196,223);padding:3pt 0in 0in">
                <p class="MsoNormal"><b><span
                      style="font-size:12pt;color:black">From: </span></b><span
                    style="font-size:12pt;color:black">Beowulf <<a
                      href="mailto:beowulf-bounces@beowulf.org"
                      target="_blank" moz-do-not-send="true">beowulf-bounces@beowulf.org</a>>
                    on behalf of "<a href="mailto:beowulf@beowulf.org"
                      target="_blank" moz-do-not-send="true">beowulf@beowulf.org</a>"
                    <<a href="mailto:beowulf@beowulf.org"
                      target="_blank" moz-do-not-send="true">beowulf@beowulf.org</a>><br>
                    <b>Reply-To: </b>Prentice Bisbal <<a
                      href="mailto:pbisbal@pppl.gov" target="_blank"
                      moz-do-not-send="true">pbisbal@pppl.gov</a>><br>
                    <b>Date: </b>Monday, October 19, 2020 at 12:21 PM<br>
                    <b>To: </b>"Renfro, Michael" <<a
                      href="mailto:Renfro@tntech.edu" target="_blank"
                      moz-do-not-send="true">Renfro@tntech.edu</a>>,
                    "<a href="mailto:beowulf@beowulf.org"
                      target="_blank" moz-do-not-send="true">beowulf@beowulf.org</a>"
                    <<a href="mailto:beowulf@beowulf.org"
                      target="_blank" moz-do-not-send="true">beowulf@beowulf.org</a>><br>
                    <b>Subject: </b>Re: [Beowulf] ***UNCHECKED*** Re:
                    Re: [EXTERNAL] Re: Re: Spark, Julia, OpenMPI etc. -
                    all in one place</span></p>
              </div>
              <div>
                <p class="MsoNormal"> </p>
              </div>
              <p>That's exactly what I suspected. I guess 13 years is
                like an eternity in the modern "Speed of the Internet"
                world we live in, but may not have been such a slow
                evolution time of the pre-Internet days.
              </p>
              <p>Prentice</p>
              <div>
                <p class="MsoNormal">On 10/19/20 2:53 PM, Renfro,
                  Michael wrote:</p>
              </div>
              <blockquote style="margin-top:5pt;margin-bottom:5pt">
                <p class="MsoNormal">Minor point of pedagogy from my
                  place in the "learned FORTRAN 77 in 1990" crowd: your
                  instructor's options would have been:</p>
                <p class="MsoNormal"> </p>
                <ul style="margin-top:0in" type="disc">
                  <li
                    class="gmail-m_-3174744868416875074MsoListParagraph"
                    style="margin-left:0in">standard FORTRAN 77
                  </li>
                  <li
                    class="gmail-m_-3174744868416875074MsoListParagraph"
                    style="margin-left:0in">vendor-specific dialect of
                    FORTRAN (VAX or otherwise)
                  </li>
                  <li
                    class="gmail-m_-3174744868416875074MsoListParagraph"
                    style="margin-left:0in">maybe a pre-release of
                    FORTRAN 90? Wasn't released and standardized until
                    1991-92.
                  </li>
                </ul>
                <p class="MsoNormal"> </p>
                <p class="MsoNormal">Never mind the availability of
                  texts for same.</p>
                <p class="MsoNormal"> </p>
                <div
style="border-right:none;border-bottom:none;border-left:none;border-top:1pt
                  solid rgb(181,196,223);padding:3pt 0in 0in">
                  <p class="MsoNormal" style="margin-bottom:12pt"><b><span
                        style="font-size:12pt;color:black">From:
                      </span></b><span
                      style="font-size:12pt;color:black">Beowulf <a
                        href="mailto:beowulf-bounces@beowulf.org"
                        target="_blank" moz-do-not-send="true">
                        <beowulf-bounces@beowulf.org></a><br>
                      <b>Date: </b>Monday, October 19, 2020 at 12:06 PM<br>
                      <b>To: </b><a href="mailto:beowulf@beowulf.org"
                        target="_blank" moz-do-not-send="true">beowulf@beowulf.org</a>
                      <a href="mailto:beowulf@beowulf.org"
                        target="_blank" moz-do-not-send="true">
                        <beowulf@beowulf.org></a><br>
                      <b>Subject: </b>Re: [Beowulf] ***UNCHECKED*** Re:
                      Re: [EXTERNAL] Re: Re: Spark, Julia, OpenMPI etc.
                      - all in one place</span></p>
                  <p class="MsoNormal" style="margin-bottom:12pt"><br>
                    On 10/19/20 10:28 AM, Douglas Eadline wrote:<br>
                    > --snip--<br>
                    ><br>
                    >> Unfortunately the presumption seems to be
                    that the old is deficient<br>
                    >> because it is old, and "my generationâ€
                    didn't invent it (which is<br>
                    >> clearly perverse; I see no rush to replace
                    English, French, â€¦ which are<br>
                    >> all older than any of our programming
                    languages, and which adapt, as do<br>
                    >> our programming languages).<br>
                    >><br>
                    > I think this has a lot to do with the Fortran
                    situation. In these "modern"<br>
                    > times, software seems to have gone from
                    "releases" to a "sliding<br>
                    > constant release" cycle and anything not
                    released in the past few<br>
                    > months is "old."<br>
                    ><br>
                    > How many people here will wait a 2-6 months
                    before installing<br>
                    > a "new version" of some package in production
                    to make sure there<br>
                    > are no major issues. And of course keep older
                    version options<br>
                    > with software modules. Perhaps because I've
                    been at this a while,<br>
                    > I have a let it "mellow a bit" approach to
                    shinny new software.<br>
                    ><br>
                    > I find it odd that Fortran gets placed in the
                    "old software box"<br>
                    > because it works while new languages with their
                    constant feature<br>
                    > churn and versions break dependency trees all
                    over the place,<br>
                    > and somehow that is good thing. Now get off my
                    lawn.<br>
                    ><br>
                    > --<br>
                    > Doug<br>
                    ><br>
                    Now we're starting to veer of course a little here,
                    but what the hell...<br>
                    <br>
                    I think that one of the problems with Fortran is a
                    complete<br>
                    misunderstanding of it's purpose. People are always
                    shocked when I tell<br>
                    them the scientists I support are "still" using
                    Fortran. Many people<br>
                    think that C and C++ replaced Fortran, but that is
                    not true. C was<br>
                    designed to do low-level programming for tasks like
                    writing operating<br>
                    systems, and C++ is just an extension of the C
                    language to support<br>
                    Object-Oriented Programming. Both C and C++ are
                    lower-level and more<br>
                    general purpose than Fortran.<br>
                    <br>
                    Fortran is a domain-specific language, meaning it
                    was meant for a<br>
                    special purpose, which in this case is doing
                    mathematical operations,<br>
                    and it's very good for those sorts of things. It's
                    trivial to create<br>
                    multidimensional arrays in Fortran, which is useful
                    for many math<br>
                    operations, but C doesn't even support anything
                    beyond 1D  arrays. Sure<br>
                    you can mimic multidimensional arrays by keeping
                    track of stride length,<br>
                    etc., but that's a lot of work, and I'm betting
                    that's work a lot of<br>
                    scientists would rather not do. That's just one
                    example of Fortran being<br>
                    friendlier for science. I'm sure there are other
                    examples, but I'm not a<br>
                    programmer, and definitely NOT a Fortran programmer.<br>
                    <br>
                    I think the main reason most people look at Fortran
                    as an old and<br>
                    outdated language is because it stuck to the "punch
                    card" formatting<br>
                    long after punch cards and punch card readers
                    disappeared, but I'm not<br>
                    sure who to blame for that. Do I blame my freshman
                    "Programming for<br>
                    Engineers" instructor who taught me Fortran 77 in
                    1991, or do I blame<br>
                    whoever maintains the Fortran standard for not
                    updating it before then?<br>
                    (I honestly don't know what the latest version of
                    Fortran was in the<br>
                    fall of 1991).<br>
                    <br>
                    Prentice<br>
                    <br>
                    _______________________________________________<br>
                    Beowulf mailing list, <a
                      href="mailto:Beowulf@beowulf.org" target="_blank"
                      moz-do-not-send="true">Beowulf@beowulf.org</a>
                    sponsored by Penguin Computing<br>
                    To change your subscription (digest mode or
                    unsubscribe) visit <a
href="https://urldefense.us/v3/__https:/nam11.safelinks.protection.outlook.com/?url=https*3A*2F*2Fbeowulf.org*2Fcgi-bin*2Fmailman*2Flistinfo*2Fbeowulf&amp;data=04*7C01*7CRenfro*40tntech.edu*7C8486662b21394e7039e408d8745157c5*7C66fecaf83dc04d2cb8b8eff0ddea46f0*7C1*7C0*7C637387240011631429*7CUnknown*7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0*3D*7C1000&amp;sdata=lpfkkIZiPQ734YkMGHzI3M27w5RmZhkJ8dDbAD765dQ*3D&amp;reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSU!!PvBDto6Hs4WbVuu7!dbjGYkPB4I_e3Mpwg3ymxEHvrBoG1cZSjqXNtiKg304pOV-Gy0YzVZwDH06Ry2bLTDuCUDU$"
                      target="_blank" moz-do-not-send="true">
https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbeowulf.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fbeowulf&amp;data=04%7C01%7CRenfro%40tntech.edu%7C8486662b21394e7039e408d8745157c5%7C66fecaf83dc04d2cb8b8eff0ddea46f0%7C1%7C0%7C637387240011631429%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=lpfkkIZiPQ734YkMGHzI3M27w5RmZhkJ8dDbAD765dQ%3D&amp;reserved=0</a></p>
                </div>
              </blockquote>
              <pre>-- </pre>
              <pre>Prentice Bisbal</pre>
              <pre>Lead Software Engineer</pre>
              <pre>Research Computing</pre>
              <pre>Princeton Plasma Physics Laboratory</pre>
              <pre><a href="https://urldefense.us/v3/__http:/www.pppl.gov__;!!PvBDto6Hs4WbVuu7!dbjGYkPB4I_e3Mpwg3ymxEHvrBoG1cZSjqXNtiKg304pOV-Gy0YzVZwDH06Ry2bL3ZCPgrk$" target="_blank" moz-do-not-send="true">http://www.pppl.gov</a></pre>
            </div>
          </div>
          _______________________________________________<br>
          Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org"
            target="_blank" moz-do-not-send="true">Beowulf@beowulf.org</a>
          sponsored by Penguin Computing<br>
          To change your subscription (digest mode or unsubscribe) visit
          <a href="https://beowulf.org/cgi-bin/mailman/listinfo/beowulf"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://beowulf.org/cgi-bin/mailman/listinfo/beowulf</a><br>
        </blockquote>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Prentice Bisbal
Lead Software Engineer
Research Computing
Princeton Plasma Physics Laboratory
<a class="moz-txt-link-freetext" href="http://www.pppl.gov">http://www.pppl.gov</a></pre>
  </body>
</html>