Hey,
Is there a reason we don't just put this in the core?
One of the reasons is that from my experience the MediaWiki core dev community is not very open to such things. I think Tim is illustrating the point pretty well, by implying what I did is total nonsense. Having tried to get this into core would have lead to more insults getting thrown at my head. Of course this is nonsense, as I'm sure some core developer will point out in a reply.
Another reason is that although this is a rather generic diff utility, the number of extensions that could make use of this seems rather limited. And I don't think we want to just put any generic component into core without good reason.
It has about 50 lines of useful code wrapped in 1600 lines of abstraction. I don't think it is the sort of style we want in the core.
Unsurprisingly I'm going to Agree with Denny that this is rather harsh. This kind of attitude is not very welcoming to other developers, especially if you make such comments where they are not applicable.
And yes, I'm going to maintain it's not applicable. Being the genius that you are, I challenge you to put your money where your mount is to write a 50 line extension that offers the same functionality as this extension.
One might discuss the suitability of using a class hierarchy to
represent different DiffOps. But then again, that is the same class design as in the DairikiDiff engine, included in core as well.
Although you find small things to nitpick over, I'm confident the overall design is sound. The Diff and DiffOps are following the composite pattern, which seems very much like the right choice to me. I would not mind being proven wrong or having other constructive discussion though.
"This is crap" is not constructive.
Cheers
-- Jeroen De Dauw http://www.bn2vs.com Don't panic. Don't be evil. --