Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #16643
| From | "Rod Pemberton" <do_not_have@notemailnotz.cnm> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: I Don't Make Mistakes. I Use C |
| Date | 2012-10-24 06:55 -0400 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <k68h73$mlv$1@speranza.aioe.org> (permalink) |
| References | <e1c3e806-7d00-4d8c-92c2-b83d328057bc@googlegroups.com> |
<visualforth@rocketmail.com> wrote in message news:e1c3e806-7d00-4d8c-92c2-b83d328057bc@googlegroups.com... ... > I was recently at Design East in Boston. The show is changing > with more of a slant towards software and hardware tools. I > met with a number of companies like AdaCore and LDRA. > One topic we always tend to talk about is the challenge of > convincing C/C++ programmers that static and dynamic analysis > tools are more than expensive tools or that Ada is more > than a military programming language. > > One idea that came up a number of times in slightly different > terms is that many programmers think other people make > mistakes [...] They do. Everyone does. > [...] but if they do then they can find and fix them [...] That depends entirely on the circumstances. a) Is the error immediately obvious? E.g., crash, corrupt text, ... b) Does the programmer understand what the code and data should be, or is someone else confirming the results? E.g., an accountant or an engineer ... c) What type of testing is being done? E.g., incremental as-you-go, static, dynamic, ... d) Is the program simple enough that the programmer understands it? e) Is the error the result of some complex interaction of code changes by multiple programmers? Etc. > [...] or they will be unimportant. That can be either true or false or even change. The error may be unimportant for a decade, then it's not. It depends on the circumstances, e.g., the first virus ever to exploit the mistake, or the accountants finally asked why a number was negative on the report, etc. > The bottom line is "I don't make mistakes." I think you misunderstood. I doubt anyone was actually claiming they don't make mistakes. More likely, they know their company's process and believe it's robust enough that few errors are made. > Of course no one would admit to this. If it's a major error, they could get fired. But, more typically, they have a process in place to detect errors, have users report errors, and to fix errors as they are found. > Anyone who has programmed knows that mistakes occur > and that bugs can cause major problems. They also know there are many different types of coding mistakes, not just syntax errors. > The problem with tools like C and C++ is that they are powerful > but it is all too easy to shoot oneself in the foot... ... > The cost of finding and fixings bugs has not really changed a lot. > Figure a factor of ten in cost for each step software moves away > from the programmer. ... > The big difference is that it is now possible to significantly reduce > the number of bugs in the field. It has to do more with using the > right tools rather than whether you don't make mistakes because > you will. ... > So what about Ada? You tell us. > I know that few C/C++ programmers will switch but it is not as if > I have not made the recommendation before (see C Programmers, > Time To Try Ada [link] ... > ... Ada is what I would pick over C or C++ for embedded projects. > Let's exclude the "without bugs" claim below. Why? Bugs are generally not a consideration as to why you'd pick a language for an embedded environment. The ability to generate code for the embedded environment is the primary concern. C and Forth are both well suited to that. C++ is not, IMO. Most other languages aren't either. So, other than supposedly fewer bugs, why would you use Ada in an embedded environment? What features does Ada have which makes it good for embedded projects? Pointers? Good fit to the machine model? What features does it have that C and Forth don't have? What features makes Ada better? > Why? Because it is easier to write programs without bugs with Ada > compared to C++ and definitely better than C. 1) Is Ada actually available for an embedded target? (non-military) 2) Something must be substantially better than other solutions, and at a lower cost point, to be adopted. Ada may be - arguably - better at allowing programmers to "write programs without bugs", but are the costs of hiring an Ada programmer less than that of a C programmer? No. Forth? No. COBOL? No. Fortran? No. Lisp? No. Etc... Most companies only measure two things: the immediate short-term cost of something, and the timeliness of hourly workers. That's it. They don't measure quality. They don't measure performance. They don't measure intelligence. The measure the immediate cost because it comes out of cash flow and like most families have little or no savings to make expensive purchases without financing. Why they measure the timeliness of hourly workers is beyond my comprehension. I've seen companies fire skilled, long-term, well trained employees simply because they were a few minutes late to work. It's impossible to replace such a person without incurring large costs. I.e., they'll choose the short term low cost solution over the solution which is best for the company every time. They'll lease a $1000 server for $5000 total if they can afford the monthly lease payment. They'll hire 3 inexpensive C programmers to do the job of one expert programmer in another language. They'll fire the most intelligent employees the company has because they currently have no work for them. They'll keep the cheap and "dumb" employees because they have work for them. > Excerpt from "I Don't Make Mistakes. I Use C" > Source: [link] The second link at least lists some of the ways to reduce bugs for C. You didn't mention them in this thread and discounted them in your earlier statements. Also, were you quoting your own articles or someone else's? > What about Forth ? Forth should be far worse for bugs. Interpreted Forth has no error checking whatsoever. I.e., few or no bugs will be detected. If it's compiled Forth, the errors which are detected is entirely up to the compiler author. One Forth compiler might detect everything whereas another won't check anything. C compilers check for incompatible types and a fairly standard set of various other common C coding errors. Rod Pemberton
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
I Don’t Make Mistakes. I Use C visualforth@rocketmail.com - 2012-10-23 16:09 -0700
Re: I Don’t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-23 16:43 -0700
Re: I Don’t Make Mistakes. I Use C jacko <jackokring@gmail.com> - 2012-10-23 16:50 -0700
Re: I Don’t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-23 18:58 -0700
Re: I Don’t Make Mistakes. I Use C jacko <jackokring@gmail.com> - 2012-10-24 15:12 -0700
Re: I Don’t Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-23 14:02 -1000
Re: I Don’t Make Mistakes. I Use C Bernd Paysan <bernd.paysan@gmx.de> - 2012-10-24 02:51 +0200
Re: I Don’t Make Mistakes. I Use C Mark Wills <forthfreak@gmail.com> - 2012-10-24 04:23 -0700
Re: I Don’t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-23 19:20 -0700
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-24 05:04 -0500
Re: I Don?t Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-24 08:04 -1000
Re: I Don?t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-24 13:11 -0700
Re: I Don?t Make Mistakes. I Use C Pavel Klinkovsky <pavel.klinkovsky@gmail.com> - 2012-10-24 13:21 -0700
Re: I Don?t Make Mistakes. I Use C Fritz Wuehler <fritz@spamexpire-201210.rodent.frell.theremailer.net> - 2012-10-25 20:00 +0200
Re: I Don?t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-25 11:30 -0700
Re: I Don?t Make Mistakes. I Use C Anonymous <nobody@remailer.paranoici.org> - 2012-10-26 09:00 +0000
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-26 05:01 -0500
Re: I Don?t Make Mistakes. I Use C Brad Eckert <hwfwguy@gmail.com> - 2012-10-26 08:46 -0700
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-25 23:05 -0500
Re: I Don?t Make Mistakes. I Use C Anonymous <nobody@remailer.paranoici.org> - 2012-10-28 15:35 +0000
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-28 12:06 -0500
Re: I Don?t Make Mistakes. I Use C Bernd Paysan <bernd.paysan@gmx.de> - 2012-10-28 21:38 +0100
Re: I Don?t Make Mistakes. I Use C jacko <jackokring@gmail.com> - 2012-10-28 16:34 -0700
Re: I Don?t Make Mistakes. I Use C Anonymous <nobody@remailer.paranoici.org> - 2012-10-29 10:56 +0000
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-29 06:11 -0500
Re: I Don?t Make Mistakes. I Use C rickman <gnuarm@gmail.com> - 2012-10-29 13:51 -0400
Re: I Don?t Make Mistakes. I Use C Anonymous <nobody@remailer.paranoici.org> - 2012-10-29 20:45 +0000
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-30 04:20 -0500
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-30 04:16 -0500
Re: I Don’t Make Mistakes. I Use C rickman <gnuarm@gmail.com> - 2012-10-25 10:04 -0400
Re: I Don’t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-25 14:16 -0700
Re: I Don’t Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-25 15:51 -1000
Re: I Don’t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-25 20:14 -0700
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-25 23:11 -0500
Re: I Don?t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-25 21:53 -0700
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-26 01:27 -0500
Re: I Don?t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-26 07:06 -0700
Re: I Don?t Make Mistakes. I Use C Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-10-26 11:34 -0500
Re: I Don?t Make Mistakes. I Use C Bernd Paysan <bernd.paysan@gmx.de> - 2012-10-26 19:13 +0200
Re: I Don?t Make Mistakes. I Use C Alex McDonald <blog@rivadpm.com> - 2012-10-27 04:49 -0700
Re: I Don?t Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-25 21:20 -1000
Re: I Don’t Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-25 21:23 -1000
Re: I Don’t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-26 00:53 -0700
Re: I Don’t Make Mistakes. I Use C "Stanley Daniel de Liver" <notagoodone@invalid.org.invalid> - 2012-11-21 16:21 +0000
Re: I Don't Make Mistakes. I Use C "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-10-24 06:55 -0400
Re: I Don't Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-24 08:17 -1000
Re: I Don't Make Mistakes. I Use C "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-10-25 00:23 -0400
Re: I Don't Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-24 22:18 -0700
Re: I Don't Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-24 21:47 -1000
Re: I Don't Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-25 11:21 -0700
Re: I Don't Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-25 08:43 -1000
Re: I Don't Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-25 12:18 -0700
Re: I Don't Make Mistakes. I Use C "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-10-26 19:55 -0400
Re: I Don't Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-26 17:38 -1000
Re: I Don't Make Mistakes. I Use C Brad Eckert <hwfwguy@gmail.com> - 2012-10-26 09:07 -0700
Re: I Don't Make Mistakes. I Use C "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-10-26 19:56 -0400
Re: I Don't Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-26 17:47 -1000
Re: I Don't Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-26 22:04 -0700
Re: I Don't Make Mistakes. I Use C visualforth@rocketmail.com - 2012-10-27 07:27 -0700
Re: I Don't Make Mistakes. I Use C Bernd Paysan <bernd.paysan@gmx.de> - 2012-10-27 19:14 +0200
Re: I Don't Make Mistakes. I Use C Brad Eckert <hwfwguy@gmail.com> - 2012-10-24 11:48 -0700
Re: I Don't Make Mistakes. I Use C rickman <gnuarm@gmail.com> - 2012-10-25 19:14 -0400
Re: I Don’t Make Mistakes. I Use C Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-10-24 10:41 -0700
Re: I Don’t Make Mistakes. I Use C Pavel Klinkovsky <pavel.klinkovsky@gmail.com> - 2012-10-24 13:10 -0700
Re: I Don’t Make Mistakes. I Use C "Elizabeth D. Rather" <erather@forth.com> - 2012-10-24 14:00 -1000
Re: I Don’t Make Mistakes. I Use C Pavel Klinkovsky <pavel.klinkovsky@gmail.com> - 2012-10-24 23:54 -0700
Re: I Don't Make Mistakes. I Use C "Rod Pemberton" <do_not_have@notemailnotz.cnm> - 2012-10-25 00:29 -0400
Re: I Don't Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-24 22:25 -0700
Re: I Don't Make Mistakes. I Use C Pavel Klinkovsky <pavel.klinkovsky@gmail.com> - 2012-10-24 23:57 -0700
Re: I Don't Make Mistakes. I Use C Pavel Klinkovsky <pavel.klinkovsky@gmail.com> - 2012-10-25 00:11 -0700
Re: I Don’t Make Mistakes. I Use C visualforth@rocketmail.com - 2012-10-24 16:14 -0700
Re: I Don’t Make Mistakes. I Use C Paul Rubin <no.email@nospam.invalid> - 2012-10-24 17:16 -0700
Re: I Don’t Make Mistakes. I Use C visualforth@rocketmail.com - 2012-10-24 17:47 -0700
Re: I Don’t Make Mistakes. I Use C rickman <gnuarm@gmail.com> - 2012-10-25 10:17 -0400
csiph-web