On 15/10/11 2:59 PM, Fred Cisin wrote:
On Sat, 15 Oct 2011, Toby Thain wrote:
In C*, you can do that, indeed. In C*, it is
possible to write code
Is C* like C# ?
without buffer overflows, memory leaks, or
segfaulting bugs of any kind,
if one cares to invest enough effort.
The point is that it's a lot of unnecessary work for no real payoff.
"unnecessary"????????
"no real payoff"???????
HARRUMPH!
I think that having an Operating System, AND having applications, that are
reliable IS a major payoff, and whatever work it takes for THAT is
extremeley NECESSARY.
You completely misunderstood. I am saying that doing general
applications programming in C incurs unnecessary work micromanaging for
reliability. A good part of this is "unnecessary" because it is obviated
by making different choices.
Higher level languages lets one turn attention
sooner to the problem
domain (and besides, typically offer more powerful modelling abstractions).?
That is at the expense of extreme slowdown from runtime error checking
that includes checking for situations that could not occur. For example,
if the divisor is going to be either 12 or 16, is it really necessary to
have runtime code on the nature of:
Y = 12;
if (y == 0) . . . . .
Z = X / Y;
This isn't the kind of high level distinction that I am talking about.
An example of the kind of leap forward that I have in mind is garbage
collected memory management*, which enables a bunch of other things,
such as reliable, general exception mechanisms.
C lets you put in all of the error checking that you
need, and lets you
leave out the error checking that you don't need. But, obviously, SOME
people employed as programmers don't know the difference, and really
should be using "padded cell" high level languages, instead! Some of
them are incompetent when it comes to understanding what kinds of
exceptions need to be planned for.
I don't think only "incompetents" should avoid C. I think anyone should
avoid it, who is interested in solving *their* problems efficiently, and
not re-inventing badly those supporting facilities that C does not provide.
There a category of incompetence in not choosing the right tool. Even
Dave agrees!
Does this really need spelling out??
Naah.
I think that we agree on all of the truly important stuff.
Phew!
--Toby
--
Grumpy Ol' Fred cisin at
xenosoft.com