<div>Beautiful paean to C Bob:-)</div>
<div>I'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> </div>
<div><span class="gmail_quote">On 3/19/07, <b class="gmail_sendername">Robert G. Brown</b> <<a href="mailto:rgb@phy.duke.edu">rgb@phy.duke.edu</a>> 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>>><br>>>   a) Learn C.  No matter what you do, if you plan to be a "real coder"
<br>>> you will sooner or later need to learn C.  Sane people don't write<br>>> operating systems in Fortran or C++ or Lisp, and there are damn good<br>>> reasons for this.  Also you can do amazing things with C and actually
<br>>> understand what the computer is doing when you do them (because C has<br>>> been described on this very list as "a thin veneer of upper-level<br>>> language sensibility on top of raw assembler", a phrase that I just love
<br>>> that is SO true even though I can't remember who actually said it.  I<br>>> wish it were me but it wasn't:-).  Who knows what LISP is actually doing<br>>> and how it is doing it? Not even the developers...
<br>>><br>><br>> I'm a c fan myself. However when I was doing the "safety-critical systems"<br>> module I was deeply disappointed to learn that c isn't "safe" and sometimes<br>> "not recommended" (by IEC 1508 when developing safety critical systems).
<br><br>C for damn sure isn't "safe".  Neither is assembler.  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 "anything".<br><br>Total power and complete control is never safe.  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.  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>> I can understand why c is considered naughty but isn't it bad programming<br>> (systems development) to blame rather than the flexibility of the language?
<br><br>Absolutely.  With great power comes great responsibility.  Neurosurgery<br>is not safe.  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!  Putting band-aids on is safe.  However,<br>try putting a band-aid on a brain tumor.<br><br>> I'm wondering what languages are actually used when developing critical<br>> systems (such as aviation and missile control systems?).
<br>><br>> My uni's LAN is protected but I found a similar lecture series at another uni<br>> on the net.  See page 25 on:<br>> <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>><br>> Full lecture series:<br>> <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.  Whatever it is, it is perfectly capable of being buggy.  And<br>whatever it is, the compiler itself was very, very likely written in --<br>C.<br><br>    rgb<br><br>><br>> Regards,<br>> Mitchell
<br>><br>><br>><br><br>--<br>Robert G. Brown                        <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  Fax: 919-660-2525     <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>