Re: Computer Programming Career

From: Malcolm (malcolm_at_55bank.freeserve.co.uk)
Date: 03/21/04


Date: Sun, 21 Mar 2004 22:58:26 -0000


"Michael Wojcik" <mwojcik@newsguy.com> wrote in message
>
> Utter rot. In theory, certainly all TC languages are equivalent.
> In practice, language choice and the programmer's expertise in it
> often make a huge difference. The abysmal quality of most
> software today is ample evidence that understanding basic
> operations and algorithms is not sufficient to produce decent
> software, since the vast majority of bugs are in implementation or
> insufficiently-mature design, and not in choice of algorithm.
>
I think you have two classes of software problem. The first is where you are
trying to get the computer to do something which is inherently difficult,
like reading car registration plates. Here the algorithm is all. The second
is where you are trying to get the computer to do something which is
well-understood, such as sending bills to everyone caught in the congestion
zone without a ticket, but is difficult to manage (because you've got so
many terminals, so many people with legitimate excuses for not paying,
foreign cars and inevitable mis-reads, and so on).
>
> Knowing these will not produce a good C programmer. As
> evidence I offer the vast stretches of extant crap C code publically
> available which were written by people who knew all of them.
>
"crap code" can be a very subjective definition. There's code which performs
on spec, there's code which does the right thing most of the time but not
for some degenerate inputs, and then there's code which is definitely
bugged. There's also code with a nice interface, and horrible code which
defines Bool.
>
> Malcolm, how long have you been reading comp.lang.c? There are > loads of
C programmers who have used the language for *years*
> and still make fatal pointer errors. Why do you think van der
> Linden devotes so much of _Expert C Programming_ to clarifying
> pointer and array confusion?
>
It shouldn't be confusing. Indirection is a fundamental programming concept.
C syntax is a little grotty, but it isn't so bad that it is unusable.
>
> "[K]nock[ing] out a competent 'twenty questions'" does not qualify > as
professional programming where I come from. Maybe it does in
> the world of video games, but around here people have to write
> code that does actual work, and does it correctly.
>
Programming isn't a profession. If you can write "twenty questions" in C
then you can write a working program, and you can easily extend your
knowledge to donkeywork problems. To understnad complex algorithms or to
manage a big system, the two software problems I mentioned, is another
matter. it's the difference between being able to write and having a book
under your belt.
>
> > It depends where she wants to work. Most of the more
> > interesting jobs will require C.
>
> What's your evidence for *this* claim?
>
Well a book called "Graphics Gems" was published and people in the computer
graphics community invited to submit code. Any language was accepted, but
every single contributor chose C. That tells you something about computer
graphics. Graphics isn't the only area where this applies. If the
programming problem is to devise an algorithm to do something, then you can
expect all your sources to be written in C, unless the problem is so
specialised that a general-purpose language isn't useful.
>
> It's particularly hard to get [C] right when you have to write grown-> up
code, with correct resource management and error handling and
> resistance to malformed input and robustness against exceptional
> conditions.
>
C isn't a perfect language. You use it when efficiency is important, when
you need portability, or when you need to communicate an alogrithm to
another programmer. However, sure, if you're calculating tax returns then
COBOL could easily be a better choice.
>
> Outside of c.l.c, I generally cringe when I read C source; nearly all
> of it is bug-ridden, nonstandard, poorly documented, and sloppy.
>
And many of these people are earning a living as programmers. Knowing enough
C to write programs in it and being a really good C programmer are two
different things. You have to go through stage 1 to rise to ascended master.
But C isn't the only language like that - for instance C++ lends itself far
more readily to abuse and horrible kludges.



Relevant Pages

  • Re: object system...
    ... for that you need machine language. ... isn't even as fast as other systems programming languages. ... Stroustrup's stated design goal was to enable ... all manner of elegance or abstraction can be sacrificed for speed, ...
    (comp.object)
  • Re: DirectX in HLA
    ... I guess that you have a great knowledge of DirectX ... > understanding by looking at them in assembly language... ... > actually represents, really, is a means to "undo" the OOP so ... > is NOT an "OOPL" (object-orientated programming language), ...
    (comp.lang.asm.x86)
  • Re: DirectX in HLA
    ... I guess that you have a great knowledge of DirectX ... > understanding by looking at them in assembly language... ... > actually represents, really, is a means to "undo" the OOP so ... > is NOT an "OOPL" (object-orientated programming language), ...
    (alt.lang.asm)
  • Re: LSP and subtype
    ... What is the class of problems solvable using UML? ... the language of physics cannot describe. ... whatever paradigm equivalent to 2GL/3GL ... there is still a great need for reuse and generic programming. ...
    (comp.object)
  • Re: Computer Programming Career
    ... a great image-recognition algorithm won't be ... >> evidence I offer the vast stretches of extant crap C code publically ... This problem is not limited to C, of course, but that's the language ... Arithmetic is a fundamental programming concept. ...
    (comp.programming)