Steve Brewin (JIRA) schrieb:

For me, this is a prime example of why people have said we need to discuss 
first, achieve consensus, then act.

There is a patch, that we can discuss. If it makes sense it should be included.

I'm afraid I don't understand why this wasn't discussed first on the lists. Is 
it something we need to do? What is the motivation for such a major 
refactoring? We all know that major changes are prone to creating new issues. 
What functional issues are being solved? Are they of sufficient importance to 
outweigh the risk of destabilisation such a radical change engenders? What 
additional features are provided?

The argument for change seems to be "Current FetchMail code is really hard to read and 
manage". Others have commented how well structured it is (I don't have time to look up the 
references). This is a matter of style. I'm biased as I refactored the original code into the 
structure you see now and added a heap of functionally. I don't want to get into an argument about 
style or how virtuous having "removed 2200 lines of code (50Kbytes of code)" is.

I think that the changes are so radical that we are in effect replacing the current implementation of fetchmail and need to ask why? Unlike when I refactored it, it isn't broken and no new features are added so we are not satisfying any user requirements.
In making these changes, without even a safety net of unit tests, we are 
destabilising a component for no more than a matter of style. To me, this 
doesn't seem wise. There are no obvious benefits that outweigh the risks.

I think saving time is a very serious argument. This is my own experience: Sometimes there are components which aren't subject of big changes but you always have to go through of them and maybe make small changes. And when the code is hard to read and hard to understand it costs a lot of time. At the end you could have rewrite it from scratch and you would have saved much time and that means a lot of money in the commercial world. Sometimes I do this step and refactor/rewrite and sometimes I am annoyed that I haven't done it. Yes it can be reasonable touching code without bringing features for the end user. Of course there are risks and it has to be discussed that things don't get worse. So demanding unit tests maybe an argument. On the other hand keeping hard to manage code is a risk, too, because it is error-prone when you have to do changes. Time isn't money in the open source world although time of volunteers it the most valuably. We should not waste it.

I haven't had my hands in the fetchmail code so I only can do a fast review. And the patch makes sense to me. For example there are getters an setters for variables only used locally in one method. If you don't have them local you always have to check for references and side effects when reading that code. IMHO it looks a bit over-designed to me.


Joachim

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to