<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>Most real-time embedded programming is in C, but in lots of applications you sacrifice efficiency for safety, like weekly payroll accounting.</div>
<div><span class="gmail_quote">On 3/19/07, <b class="gmail_sendername">Robert G. Brown</b> <<a href="mailto:email@example.com">firstname.lastname@example.org</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:email@example.com">email:firstname.lastname@example.org</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>