Re: A note on personal corruption as a result of using C
- From: spinoza1111 <spinoza1111@xxxxxxxxx>
- Date: Mon, 18 Feb 2008 19:23:43 -0800 (PST)
On Feb 18, 3:47 pm, "Clive D. W. Feather" <cl...@on-the-
train.demon.co.uk> wrote:
In article
<76de8262-19bb-4f07-9337-6d36520e2...@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,spinoza1111<spinoza1...@xxxxxxxxx> writes
THE LIES OF C
Addressed elsethread.
A personal note: in Seattle, in the 1980s, I successfully implemented
a safety critical system for hydrostatics working with a professional
engineer who gave me the choice between C and "True Basic"
Good luck to you. You picked a language you were competent in and got a
good result.
The lower middle class is constantly forced to be candidates for
posts, and this is why you express this this way. You think
instinctively in lower middle class categories. The fact is that Brian
Kernighan judged Pascal in part based a (correct) judgement of Pascal
on his inability to complete "software tools in Pascal"
satisfactorily.
My own experiences with Fortran and water systems can be read at:
<http://www.davros.org/misc/ambridge.html>
A bit later I was engaged to write a system for real estate appraisal
and chose C: but this project failed because (1) I found myself having
to write all of modern Excel from scratch
Why? Were you contracted to write a complex spread***? Or did you just
choose to do so? Why not use what was already available?
There was nothing available in 1986 to in general link fields together
with the sort of complex logical expressions found in real estate
appraisal.
and (2) because of the need
to remedy hundreds of C gotchas, I spent more time in my library than
on the problem.
This sounds like you made some bad design decisions.
I made a bad language choice: but again, the lower middle class
research technician is, in Adorno, collectively stupid because he's
always a candidate for a post, whether his own, a new one, or a
client relationship.
I felt ashamed of myself when I billed the client. I'd encapsulated a
string with Nuls in a struct with a long length,
Why did you feel the need to handle NULs in strings? If it was a serious
need, why did you choose C? I can't see what about "real estate
appraisal" needs to ability to handle a code originally meant to
represent blank tape. As I said, it sounds like you made some bad design
decisions.
Because I preferred not to sacrifice my technical integrity: it was
possible that the input data contain Nul characters.
and was spending too
much time on proto-OO code, because once you have the struct you need,
in debugging, a toString() method and an inspect() method. In the
latter, I actually traveled the string in a try-catch structure, if I
remember correctly, to see if there was a memory exception.
Boggle.
I also saw C "experts" saying one thing and doing another. I was asked
to fix code written by Fat Bastards who'd loudly trumpeted their
belief that you shouldn't code "magic constants": whose actual code
allocated arrays as globals using constant and non-symbolized values.
So there are people who don't practice what they preach. This is meant
to be a Great Revelation?
A bad programmer can recreate Fortran in any language.
You et al. are obsessed with what an abstract "bad programmer" does
and the "bad programmer" in fact takes the place, in your thinking, of
the Kantian subject, who is assumed to be able to know and indeed
constructs reality.
The "bad programmer", in fact, is an operator which allows you to
short circuit thought because he defines the person you need not
serve, who, for example, submits an overlapping memory copy.
It appears that no C maven has read a history of mathematics.
It troubled mathematicians that the square root of minus one seemed to
be undefined, and only the incompetents and the thugs tried to
legislate the trouble away.
The square root of minus one *is* undefined in R. Just the same as 1/0
is undefined in C and sqrt(2) is undefined in Q.
The true mathematician knows that some things are undefined and has no
problem with that. It so happens that sqrt(-1) can be given a consistent
meaning, but only by extending R to C. 1/0 can't be given a consistent
meaning in any field; though you can construct algebras with an
"infinity" value in, they aren't completely consistent.
Or, put it another way, mathematicians know full well that functions
have a domain and are invalid outside that domain. The same is true for
C.
No, mathematicians are troubled by such rules, whereas nasty little
clerks love them because they "save time" and allow them to conduct
campaigns of personal destruction.
Your attitude enables bugs, because any time you don't want to think,
you make cases undefined.
Using a length code makes it simple to model ultralong strings using
arrays of strings, or tree-structured ropes: whereas forbidding Nul
creates two distinct families of abstractions (str vs mem).
--
Clive D.W. Feather | Home: <cl....@xxxxxxxxxx>
Tel: +44 20 8495 6138 (work) | Web: <http://www..davros.org>
Fax: +44 870 051 9937 | Work: <cl....@xxxxxxxxx>
Please reply to the Reply-To address, which is: <cl...@xxxxxxxxxx>
.
- References:
- A note on personal corruption as a result of using C
- From: spinoza1111
- Re: A note on personal corruption as a result of using C
- From: Clive D. W. Feather
- A note on personal corruption as a result of using C
- Prev by Date: Re: Results of the memswap() smackdown from the thread "Sorting" assignment
- Next by Date: Re: Results of the memswap() smackdown from the thread "Sorting" assignment
- Previous by thread: Re: A note on personal corruption as a result of using C
- Next by thread: Re: A note on personal corruption as a result of using C
- Index(es):