On 12/1/18 1:52 PM, Norman Wilson wrote:
Bill's half right. I didn't invent a
language; I used what was there.
Can I ask what language you did use? Was it m4 or something else?
I decided that the best way to deal with
Sendmail's own configuration
language was to treat it as I would the assembly language for a
specialized, irregularly-designed microprocessor:
1. Understand as well as possible what the instructions actually do;
2. Write the simplest possible program that will get the job done;
3. Avoid extra layers of macros and so on that hide the details, because
that also hides the irregularities and makes it harder to understand
and debug;
4. By the same reason, don't just copy someone else's program that does
something complicated; write your own and do things simply.
Sendmail has plenty of design flaws (not just in the language), as
I'm sure Eric will acknowledge; but I think the biggest problem people
have had with it that most people copied the rather-complicated sample
configuration files shipped with the source rather than just reading
the manual, doing a few experiments to understand the behaviour, and
writing something simple.
I see the same lack of understanding in a lot of things.
On the other hand, I've never quite understood
why so many people
treat device drivers as scary and untouchable, copying an existing one
and hacking it until it seems to work rather than understanding what
the device actually does and writing a simple program to control it.
So perhaps my brain just doesn't work normally.
For me, I don't know where to get good documentation of what the device
actually does and how to make it do it. I also don't have a good (read:
any) understanding of the OS / kernels that I'd connect the device to.
So, writing software to connect the device (I don't fully comprehend) to
the OS / kernel (that I don't fully comprehend) in a language (that I'm
not fluent in) is an uphill battle for me. I have great respect and
gratitude for the people that do write device drivers.
I don't create the Lego bricks. But I do try to build interesting and
useful things out of the Lego bricks that others have built.
--
Grant. . . .
unix || die