[REBOL] Re: Real programmers? or myopic egotists
From: joel:neely:fedex at: 26-May-2001 17:19
I enjoy a good ramble on a slow weekend! ;-)
Ken Anthony wrote:
> > I think of a router as a very simple thing that takes
> > data in and sends it out. Perhaps it more complicated
> > than that. -- C.M.
> There's a paradox here. On one hand it shows a person
> somewhat out of touch, but on the other hand it shows
> someone that better than most understands the power
> inherent in fundamental abstractions.
Or, for another option, it shows someone who is bright enough
to see the fundamental abstraction, but out of touch with the
world that I live in, where simple sounding ideas get much
more complicated when you have to:
- optimize like crazy (literally! ;-) because of really
extreme performance requirements,
- design for extreme fault tolerance/recovery,
- interface with other people's stuff,
- provide a significant level of dynamic configurability, and
- do all of the above at once!
> Another example, printf doesn't seem foundational to me (C
> programmers probably think this sounds weird, especially
> since it can't be written in C because printf does not have
> a fixed number of parameters...
Not to be picky, but... well, I guess I am. Take a look at
the documentation of <stdarg.h> for the discussions of va_list,
va_start, va_arg, and va_end (usually implemented as macros,
often in a platform/compiler-specific way). printf and sprintf
are, in fact, writable in C, using variable argument lists.
> OTOH, datatypes are another way of supplying a refinement
> that seems closer to doing things the way they should be
> done. It allows the computer to do the housekeeping that
> computers are really good at and frees the programmer
> to think about the fundamentals of the algorithm they are
Excellent summary! I may have to quote you!
> Ok, now on to my fundamental objection to CM's elitist
> attitude: Real Programmers Kluge! They patch! They
> connect things together that no one had considered putting
> together. Real programmers maintain the code that elitist
> programmers didn't have time to get right or have to adjust
> because the specification changed.
Perfectionists never release anything, because there's always
just one more little tweak
Pragmatists try to ensure that it's "good enough" before
release, and then commit to ongoing improvement.
Extremists release multiple times per week (or day), because
shipping one feature at a time helps keep the crosshairs on
the moving target.
I'm glad we have all three kinds, or even the freedom to play
all three roles at different times.
OTOH, slobs compose at the keyboard and put it into production
(or the customer's system) immediately, because they don't
know any better or don't care.
I'm glad that I get publicly embarassed every time I play THAT
Programming languages: compact, powerful, simple ...
Pick any two!