<div dir="ltr">Hi Alan,<div><br></div><div>Neither Rust nor Go really need C to speed things up at all; Go has structured concepts which are broadly similar in capability to OOP, Rust has more traditional OOP as well, both are compiled (or "AOT") languages with good optimisation. Both also have the kinds of "batteries included" libraries in the standard environment, so there's little advantage in setting out to make a Python/Go (for example) application from scratch.</div><div><br></div><div>C++ is no slower than C these days either, and rather surprisingly code that looks shockingly complex in C++ compiles down as well as, if not better than, C.</div><div><br></div><div>For better or worse - and broadly I think better - C has become a legacy language, used only where the existing codebase already used C. And even then, Rust (in particular) is sneaking in in some cases. I say this as someone who spent the larger part of a decade coding exclusively in C - and it's a handy skill when I have to hit OpenSSL's low levels yet again.</div><div><br></div><div>That's also not to say that Python isn't useful, with or without some native code underneath - I write a lot of Python (even on my current contract which is mostly a Go/C++ shop). It's broadly taken the place of what we used to use Perl for a decade or two back. And of course, JavaScript for web things - though I've used it for backend systems a lot as well.</div><div><br></div><div>Dave.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 24 Oct 2024 at 13:51, Alan Gray via Swlug <<a href="mailto:swlug@mailman.lug.org.uk">swlug@mailman.lug.org.uk</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><div dir="auto">Hello Dave,<br><br>I am not sure Pascal ever had much of a market except education. It was taught to encourage good structuring after many had spent time with the early Basics The version we used was good internally, but pretty useless dealing with the  outside  world. I do not think C had any bearing on it's demise.<br><br>Most languages exist because they are strong in a specific niche: JavaScript with html, Go in network systems, or Rust and C++ in a systems environment.<br><br>The discussion so far recognises all the strengths and weaknesses of these languages, but hasn't considered  their use in combination. In that situation 'C', rather than the extended versions, remains useful. I can certainly see, say, Python being used to handle a complex object oriented program with some modest routines in 'C' to speed things up. I am not sure how Rust and Go compare in this sort of environment. My best guess is that 'C' remains ahead.<br><br>Regards<br>Alan Gray</div><br><br><div class="gmail_quote"><div dir="auto">On 23 October 2024 22:44:15 BST, Dave Cridland via Swlug <<a href="mailto:swlug@mailman.lug.org.uk" target="_blank">swlug@mailman.lug.org.uk</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">The obvious "modern" replacement for C is Go, which was essentially designed as a "C for bad programmers" - that's not really as bad as it sounds, as you do need to be an astonishingly careful programmer to write C that's both safe and good. Go has quite a lot more to it than C, but it is at heart a Structured Programming language - the paradigm that most modern C is written in - and its general "feel" is much the same.<div><br></div><div>Rust is more of a replacement for C++, but it lacks so much of C++'s power that it's really quite the tradeoff. There's finally the beginnings of a serious movement to bring a lot of the core Rust concepts to C++ - if this happens, then it'll be very good news for C++ (where you still can end up with a null pointer dereference, or a buffer overrun, or a dangling reference).</div><div><br></div><div>Pascal died out really because of C; though as a teaching language, Python has taken it over.</div><div><br></div><div>JavaScript - and TypeScript ("JavaScript but it looks a bit like.NET") - are pretty weird languages. It's generally best not to look too closely at them, as they turn out to be a pile of weird behaviours and strange hacks layered unevenly on each other.</div><div><br></div><div>Dave.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 23 Oct 2024 at 20:15, Alan Gray via Swlug <<a href="mailto:swlug@mailman.lug.org.uk" target="_blank">swlug@mailman.lug.org.uk</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><div dir="auto">Hello Huw<br><br>Nicely said. I started on 6809 then 6502. Like you, it helped understanding pointers.<br><br>Wasn't Erlang developed for use in telephone exchanges?<br><br>Computer languages are tools. As always it is best to select the right tool for the job. Without knowing the job it's all speculation.<br><br>As a first serious language I am reminded that years ago in college I was taught 'C' and Pascal. They had quite different characteristics and were considered complementary. Probably Python would replace Pascal, but I am not so sure about 'C'. Maybe Rust, but there are others that could be considered.<br><br>Regards<br>Alan Gray <br></div><br><br><div class="gmail_quote"><div dir="auto">On 23 October 2024 18:52:53 BST, "Huw Ford (ConceptPC) via Swlug" <<a href="mailto:swlug@mailman.lug.org.uk" target="_blank">swlug@mailman.lug.org.uk</a>> wrote:</div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

    <p>Hi,<br>
    </p>
    <p>I agree that C might not be the ideal 'first' serious programming
      language, but after 40 years of programming, I’m still not
      entirely sure which one would be.</p>
    <p>I started with assembler on the 6502 CPU, then moved on to the
      68000. From there, I learned K&R C (Kernighan and Ritchie). My
      background in assembler, especially with memory addressing, helped
      me make sense of C’s pointers. Later, I transitioned to ANSI C.</p>
    <p>After that came C++. Once I got my head around object-oriented
      programming (OOP), I really fell in love with it.</p>
    <p>Eventually, I got into PHP and JavaScript, both of which are
      syntactically similar to C in many ways.</p>
    <p>But the language that really expanded my thinking was Erlang. It
      was so different from anything else I’d ever used. That said, I
      wouldn’t recommend Erlang unless you had a specific use case for
      it.</p>
    <p>I’ve worked with people who recommend Java as a good first
      language—it’s quite similar to C but without the headaches of
      manual memory management. However, I haven’t had any first-hand
      experience with it myself.</p>
    <p>Hope this helps.</p>
    <p>Huw</p>
    <p><br>
    </p>
    <div>On 23/10/2024 10:16, Neil Greenwood via
      Swlug wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="auto">
        <div>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">On Wed, 23 Oct 2024, 10:04
              Morgan Green via Swlug, <<a href="mailto:swlug@mailman.lug.org.uk" target="_blank">swlug@mailman.lug.org.uk</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>
                <div dir="auto">Hi,</div>
                <div dir="auto"><br>
                </div>
                <div dir="auto">I am very new to programming, but I want
                  to start out on C to grasp the fund<span>amentals of
                    all programming lan<span>guages. Can anyone
                      recommend me any paperbooks on C programming that
                      is suitable for complete beginners?</span></span></div>
                <div dir="auto"><span><span><br>
                    </span></span></div>
                <div dir="auto"><span><span>Ki<span>nd regards,</span></span></span></div>
                <div dir="auto"><span><span><span>Morgan Green</span></span></span></div>
              </div>
            </blockquote>
          </div>
        </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Hi Morgan, </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">I'm not sure C is the best language for a
          beginner. You have a lot of extra work to do managing memory -
          my first C program (after I had 8 years experience with 2-3
          other languages) just segfaulted, and I never fixed it! </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">If you are just starting out, my recommendation
          is to look at Python - apart from the strict indentation
          requirement, it's much more friendly. This will give you a
          good understanding of the fundamentals that are present in
          most languages.</div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">If you want dead-tree books, Pragmatic Press
          make a good series of introductory titles for both C and
          Python, as well as a wife range of other languages. </div>
        <div dir="auto"><br>
        </div>
        <div dir="auto">Hope this helps, </div>
        <div dir="auto">Neil</div>
        <div dir="auto">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
              <div>
                <div id="m_-5247537804129167372m_-2741978334735178536m_-1858114475879792213ms-outlook-mobile-signature" dir="auto">
                  <div><br>
                  </div>
                  Sent from <a href="https://aka.ms/AAb9ysg" rel="noreferrer" target="_blank">Outlook for Android</a></div>
              </div>
              -- <br>
              Swlug mailing list<br>
              <a href="mailto:Swlug@mailman.lug.org.uk" rel="noreferrer" target="_blank">Swlug@mailman.lug.org.uk</a><br>
              <a href="https://mailman.lug.org.uk/mailman/listinfo/swlug" rel="noreferrer noreferrer" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/swlug</a><br>
            </blockquote>
          </div>
        </div>
      </div>
      <br>
      <fieldset></fieldset>
    </blockquote>
  </blockquote></div></div>

-- <br>
Swlug mailing list<br>
<a href="mailto:Swlug@mailman.lug.org.uk" target="_blank">Swlug@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/swlug" rel="noreferrer" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/swlug</a><br>
</blockquote></div>
</blockquote></div></div>-- <br>
Swlug mailing list<br>
<a href="mailto:Swlug@mailman.lug.org.uk" target="_blank">Swlug@mailman.lug.org.uk</a><br>
<a href="https://mailman.lug.org.uk/mailman/listinfo/swlug" rel="noreferrer" target="_blank">https://mailman.lug.org.uk/mailman/listinfo/swlug</a><br>
</blockquote></div>