<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">On 19/10/2024 14:57, Hairy Pixels via
      fpc-pascal wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGsUGtn7VfP7q13g7ps75txux24hJVc=KSoMCLcb9Jhu+CngcQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Oct 19, 2024 at 7:53:14 PM,
          Rainer Stratmann via fpc-pascal <<a
            href="mailto:fpc-pascal@lists.freepascal.org"
            moz-do-not-send="true" class="moz-txt-link-freetext">fpc-pascal@lists.freepascal.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"
          type="cite"> I feel very safe with freepascal. I don't know
          what you are talking about.<br>
          It depends on the programmer who is in front of the computer.<br>
        </blockquote>
      </div>
      <br>
      <div dir="ltr">We’re talking about new users and programmers that
        don’t have 25 years of experience with manual memory management.
        All news languages have some form of non-manual memory
        management where you don’t have to worry about memory leaks and
        double-frees etc.. leaving Pascal behind. That’s all I’m saying.</div>
      <br>
    </blockquote>
    NOTE: the below is NOT about ARC. It is about the implication that
    ARC == Safety (in the environment that we have)<br>
    ----------<br>
    <br>
    But if you are talking about memory safety for new users, the ARC is
    a drop in the ocean. Sure it might catch some cases...<br>
    <br>
    And, if you add that every variable needs to be initialized safely
    by the compiler, then it catches yet a few more. And at the same
    time you yet again make the compiler less useful for other projects,
    that are better off without this. So you don't gain users, you just
    change which users you have...<br>
    <br>
    But, also it still isn't save. You can still do<br>
      MyObj := TFooClass(Other.Tag);<br>
    <br>
    And since examples exists, new users will do...<br>
    And then, it still goes wrong.<br>
    <br>
    So remove all pointers, all typecasts, all .... <br>
    If you remove all typecasts, then why have types? <br>
    <br>
    Only then we have an entirely new language...<br>
    <br>
    <br>
  </body>
</html>