Author: Michael Haardt Date: To: exim-users Subject: Re: [Exim] Adding eciscan to exim
> Interesting reasoning. Although it possibly doesn't hold now, rewriting > the internal structure in what is effectively a different language (and
> certainly a different conceptual model) would be, IMO, an incredibly bad
> idea. Exim's code is really very very clean compared to many open source
> projects, and the advantage of it being written by one person is that it
> is consistent, which makes it, mostly easy to read. I've just caught up
> on this thread, and I have to say that I view it with some trepidation.
I agree entirely. I have contributed a number of Exim patches over the
years and always enjoyed working on it, because the code is easy to
understand and easy to hack. That's indeed not common among open source
projects.
As far as common platforms are concerned, C++ is probably as available
as C, and possibly even as portable, but Exim is also available for
various older and uncommon machines. Moving to C++ might force users
of such machines to use a different MTA.
Put differently, what could be gained by C++? Internally, Exim is
already somewhat object oriented, just as much to be easy to extend.
The manual reflects that by "generic router options" and "xyz router
options", xzy extending the abstract generic router. It may not be
obvious, but extending Exim is really very easy for exactly that object
oriented approach.
If someone rewrote Exim to be twice as easy to understand due to a even
more object oriented approach, that would be a true reason to forget
about C. I just don't see it.