Windows favors multi-threading, which means that a service is implemented by one single process.
The challenge with Postfix, or with any piece of software, is to update software without introducing problems.
Qmail out of the box works fine, so people will want to use it regardless of licensing restrictions, even when the software does not ship with their system software.
Postfix keeps running even if one Postfix process dies Windows requires that someone restarts the service.
One bug in an SMTP server can open up the whole machine for intrusion.
My reply is the software has no known bugs, therefore it has not been updated.
Like most people, I am not smart enough that I can design software without having to restructure the software every now and then.
Like all software, Qmail can survive only when it keeps up with changing requirements.
I was going to visit IBM for six months as a visiting scientist. Now, six months is a lot of time, so I came with a whole list of projects that I might want to work on.
I don't expect an overnight change of all desktops to what the US Military used to call B3 level security. And even that would not stop users from shooting themselves into the foot.
For many people my software is something that you install and forget. I like to keep it that way.
Adding functionality is not just a matter of adding code.
Writing software that's safe even in the presence of bugs makes the challenge even more interesting.
However, writing software without defects is not sufficient. In my experience, it is at least as difficult to write software that is safe - that is, software that behaves reasonably under adverse conditions.
At the time the Sendmail program had a very poor reputation with respect to security, with four root vulnerabilities per year for two successive years.
The Postfix security model is based on keeping software simple and stupid.
When I write software, I know that it will fail, either due to my own mistake, or due to some other cause.
Internally, Postfix does use multi-threading, for example, for its scheduler program that hands the mail queue requests to the mail delivery agents.
As of today, the Postfix mail transport agent has almost 50,000 lines of code, comments not included.
In a previous life I wrote the software that controlled my physics experiments. That software had to deal with all kinds of possible failures in equipment. That is probably where I learned to rely on multiple safety nets inside and around my systems.
Defect-free software does not exist.
This will surprise some of your readers, but my primary interest is not with computer security. I am primarily interested in writing software that works as intended.
Sure, but competition is good for the user.
I want to avoid locking people into solutions that work only with Postfix. People should have a choice in what software they want to use with Postfix, be it anti-virus or otherwise.
Most of the effort in the software business goes into the maintenance of code that already exists.