<div dir="ltr"><div>[moving to COFF as this has drifted away from Unix]<br></div><div dir="ltr"><br></div><div dir="ltr">On Sat, Sep 28, 2024 at 2:06 PM Larry McVoy <<a href="mailto:lm@mcvoy.com">lm@mcvoy.com</a>> wrote:</div><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I have a somewhat different view. I have a son who is learning to program<br>
and he asked me about C. I said "C is like driving a sports car on a <br>
twisty mountain road that has cliffs and no guard rails. If you want to<br>
check your phone while you are driving, it's not for you. It requires<br>
your full, focussed attention. So that sounds bad, right? Well, if<br>
you are someone who enjoys driving a sports car, and are good at it,<br>
perhaps C is for you."<br>
<br></blockquote><div>If you really want a language with no guard rails, try programming in BLISS.</div><div><br></div><div>Regarding C and C++ having dangerous language features--of course they do. Every higher-level language I've ever seen has its set of toxic language features that should be avoided if you want reliability and maintainability for your programs. And a set of things to avoid if you want portability.</div><div><br></div><div>Regarding managed dynamic memory allocation schemes that use garbage collection vs. malloc()/free(), there are some applications where they are not suitable. I'm thinking about real-time programs. You can't have your missle defense software pause to do garbage collection when you're trying to shoot down an incoming ballistic missile.</div><div><br></div><div>-Paul W.<br></div></div></div>