[prog] Sample implementations of UNIX utilities.

Meredydd Luff meredydd at everybuddy.com
Fri Dec 27 21:24:07 EST 2002


Although I'll state straight-out that I'm not an academic computer scientist, 
and that I have a natural bias in favour of C, some of which may well be 
masochistic, I do think C is very relevant indeed to modern programming. For 
one, a "portable assembly language" is a very good way of teaching how 
computers actually *work*.

Hmm...having read that link, I'm interested in why you call it a "rant," 
really - I think it's quite a nice summing-up in as far as it covers stuff I 
know about (I don't know much in the way of what (s)he calls "theoretical 
languages," and so can't comment on those specifics), and it's certainly not 
biased - bits of it are quite poetic descriptions of the sheer fun you can 
have in C... :-) It must be something in me, really - I *enjoy* the sensation 
of being able to tell my machine *exactly* what to do, and no messing. Why 
play with string objects and a good couple of kilobytes of memory when I can 
chop up a string in situ by plonking a null zero in each space and 
initialising an array of char *s? Of course it's not always the right tool 
for the job, but it teaches you how things work. At this point, you really 
*appreciate* going to, say, Java, and not having to worry about freeing up 
memory. It also lends an understanding, as I have mentioned earlier, about 
what's actually going on - also explains why you feel that performance hit 
when you use a GC'ed and memory protected language like Java (you're right in 
saying that the memory latency and bandwidth are one of today's biggest 
throttles, which is precisely why Java's heap-happy attitude slows it down so 
much. Performance problems ain't dead).

Also, the performance thing *does* matter. Why does Zeus sell? Because it can 
beat Apache on raw speed. What do Oracle crow about more than anything else 
in their print ads? The sheer performance advantage over competitors. Even if 
you go on to write non-performance-critical applications in a "sensible" 
high-level language for the rest of your career, I'm pretty sure that the 
*ability* to do raw speed and efficiency, and the understanding of how it all 
works under the surface, are pretty valuable. And this does not apply solely 
to the "low-level drivers and VM code" shoebox that you seem to believe is 
all C is good for ;-)

Oh yes, and while I'm at it - about that list of write vs run times for the 
mathematical algorithm whose name I can't remember (d'oh): that's a tad on 
the misleading side. Of *course* the C++ one is going to take bloody *ages* 
to do, if you're doing weird things with constructors so as to do most of the 
compilation at compile-time. I call unfair test! :-P

Right, I've just spewed a whole load of stuff, and I'm not quite sure how 
comprehensible it is to people here, and whether anyone will agree. Thoughts? 
Responses? Grammar corrections?

Meredydd

On Monday 23 December 2002 16:08, Robert J. Hansen wrote:
> > The GNU implementations of most utilities is much too complex for my
> > purposes (teaching C).
>
> First--no, I don't know of any simple implementations.  I imagine you'll
> have a very hard time finding them.  Most production code is infamously
> hairy, to handle infamously hairy problems that only exist in production
> environments.
>
> That said--if you have any discretion in what language you're teaching,
> have you considered Python, Java or LISP?  C has its place, usually for
> hard realtime systems or kernel hacking, but other than that... the
> bottleneck in most systems nowadays is in memory/network latencies and
> bandwidth; we stopped being primarily processor-bound some time ago.  Given
> that, it seems only rational to move away from portable assembler language
> as our systems language.  :)
>
> A rant on C and its relevance:
> http://home.earthlink.net/~cortana/c_relevance.html .  Feel free to read it
> and flame me into oblivion.  :)
>
> _______________________________________________
> Programming mailing list
> Programming at linuxchix.org
> http://mailman.linuxchix.org/mailman/listinfo/programming

-- 

MSN Developer, Everybuddy project
http://www.everybuddy.com/

MSN:     blip109 at hotmail.com
AIM:     blip109
Yahoo:   modula7




More information about the Programming mailing list