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