Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #16643

Re: I Don't Make Mistakes. I Use C

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>

Show all headers | View raw


<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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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