[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