<div>Beautiful paean to C Bob:-)</div>
<div>I&#39;d just add that some languages, I think Ada and COBOL, are designed in part to minimize certain classes of programmer errrors. Those languages are sorta like the safety codes for wiring public places; they prevent the worst errors, but do not necessarily well enable the Inner Artist.
</div>
<div>Most real-time embedded programming is in C, but in lots of applications you sacrifice efficiency for safety, like weekly payroll accounting.</div>
<div>Peter<br><br>&nbsp;</div>
<div><span class="gmail_quote">On 3/19/07, <b class="gmail_sendername">Robert G. Brown</b> &lt;<a href="mailto:rgb@phy.duke.edu">rgb@phy.duke.edu</a>&gt; wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On Mon, 19 Mar 2007, Mitchell Wisidagamage wrote:<br><br>&gt;&gt;<br>&gt;&gt;&nbsp;&nbsp; a) Learn C.&nbsp;&nbsp;No matter what you do, if you plan to be a &quot;real coder&quot;
<br>&gt;&gt; you will sooner or later need to learn C.&nbsp;&nbsp;Sane people don&#39;t write<br>&gt;&gt; operating systems in Fortran or C++ or Lisp, and there are damn good<br>&gt;&gt; reasons for this.&nbsp;&nbsp;Also you can do amazing things with C and actually
<br>&gt;&gt; understand what the computer is doing when you do them (because C has<br>&gt;&gt; been described on this very list as &quot;a thin veneer of upper-level<br>&gt;&gt; language sensibility on top of raw assembler&quot;, a phrase that I just love
<br>&gt;&gt; that is SO true even though I can&#39;t remember who actually said it.&nbsp;&nbsp;I<br>&gt;&gt; wish it were me but it wasn&#39;t:-).&nbsp;&nbsp;Who knows what LISP is actually doing<br>&gt;&gt; and how it is doing it? Not even the developers...
<br>&gt;&gt;<br>&gt;<br>&gt; I&#39;m a c fan myself. However when I was doing the &quot;safety-critical systems&quot;<br>&gt; module I was deeply disappointed to learn that c isn&#39;t &quot;safe&quot; and sometimes<br>&gt; &quot;not recommended&quot; (by IEC 1508 when developing safety critical systems).
<br><br>C for damn sure isn&#39;t &quot;safe&quot;.&nbsp;&nbsp;Neither is assembler.&nbsp;&nbsp;Very few compilers<br>could be called safe in the sense that it is impossible to write buggy<br>code that is vulnerable to various exploits or at risk of crashing an
<br>application, but C is arguably more dangerous than most because with<br>pointers and inlined assembler you can do &quot;anything&quot;.<br><br>Total power and complete control is never safe.&nbsp;&nbsp;C is like an M-1 tank<br>
armed with pocket nukes and with a built in levitation system and<br>antimatter propulsion system -- misuse it and you can blow up whole<br>worlds, but it can solve lots of problems very quickly.&nbsp;&nbsp;Safe is a kiddy<br>bike with training wheels -- not fast, not powerful, but if you pedal
<br>long enough you can get where you want to go.<br><br>Unless you get run over by a tank, that is.<br><br>&gt; I can understand why c is considered naughty but isn&#39;t it bad programming<br>&gt; (systems development) to blame rather than the flexibility of the language?
<br><br>Absolutely.&nbsp;&nbsp;With great power comes great responsibility.&nbsp;&nbsp;Neurosurgery<br>is not safe.&nbsp;&nbsp;Consequently Neurosurgeons require immense amounts of<br>training and have to work extremely carefully -- and people still die.
<br>However, far more of them live!&nbsp;&nbsp;Putting band-aids on is safe.&nbsp;&nbsp;However,<br>try putting a band-aid on a brain tumor.<br><br>&gt; I&#39;m wondering what languages are actually used when developing critical<br>&gt; systems (such as aviation and missile control systems?).
<br>&gt;<br>&gt; My uni&#39;s LAN is protected but I found a similar lecture series at another uni<br>&gt; on the net.&nbsp;&nbsp;See page 25 on:<br>&gt; <a href="https://www.cis.strath.ac.uk/teaching/ug/classes/52.422/programming_languages.pdf">
https://www.cis.strath.ac.uk/teaching/ug/classes/52.422/programming_languages.pdf</a><br>&gt;<br>&gt; Full lecture series:<br>&gt; <a href="https://www.cis.strath.ac.uk/teaching/ug/classes/52.422/">https://www.cis.strath.ac.uk/teaching/ug/classes/52.422/
</a><br><br>Got me.&nbsp;&nbsp;Whatever it is, it is perfectly capable of being buggy.&nbsp;&nbsp;And<br>whatever it is, the compiler itself was very, very likely written in --<br>C.<br><br>&nbsp;&nbsp;&nbsp;&nbsp;rgb<br><br>&gt;<br>&gt; Regards,<br>&gt; Mitchell
<br>&gt;<br>&gt;<br>&gt;<br><br>--<br>Robert G. Brown&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.phy.duke.edu/~rgb/">http://www.phy.duke.edu/~rgb/</a><br>Duke University Dept. of Physics, Box 90305<br>Durham, N.C. 27708-0305
<br>Phone: 1-919-660-2567&nbsp;&nbsp;Fax: 919-660-2525&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:email:rgb@phy.duke.edu">email:rgb@phy.duke.edu</a><br><br><br>_______________________________________________<br>Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org">
Beowulf@beowulf.org</a><br>To change your subscription (digest mode or unsubscribe) visit <a href="http://www.beowulf.org/mailman/listinfo/beowulf">http://www.beowulf.org/mailman/listinfo/beowulf</a><br></blockquote></div>
<br>


!DSPAM:45febbf2176432004121031!