Le samedi 29 avril 2006 à 18:29 -0500, Rod Engelsman a écrit : > Having said that, though, I disagree with the characterization that this > would be creating this whole thing from scratch. One of the beauties of > OOo is the code reuse, and a whole lot of the pieces to a PIM already > exist in the form of useful APIs, particularly if the thing is built > around HSQLDB.
However, there are many forms of "code reuse". One form is the one which has been suggested in this thread, ie improve bridges to existing external apps to provide integration without duplication. Another is to take a big lump of external code (it's FOSS after all), copy it in the OO.o tree, and start modifying it from there. The second option has the lowest initial costs, and is somehow traditional in the proprietary closed software world (since everything comes with a price tag, and if you don't ship the code you paid for you can not point your users to somewhere they can get it). And after all you have three-year windows cycles, so why bother updating it in the meanwhile. However there are *many* examples in the FOSS world that show the second option is self defeating, since fixes are not propagated from one copy of the code to another (the copy option was taken to avoid coordination costs after all), so you end up with many instances of the same code all broken in different ways, since every project will have fixed different things and made different mistakes. Usually at one point one of the projects has to decide its copy will go (and a lot of its fixes lost), or it will just NOT FIX some things since it has diverged too much. (oh yes and the meanwhile you have users screaming their pet boog is fixed in one of the other code copies, that your app is eating too much memory since it's unable to take advantage of the other different copies of the code already in memory, etc) An awful lot of the work in OO.o was to try to use external components unchanged, and drop the rotten internal instances OO.o 1 used (this is why Linux and WinXP widgets look native now for example). And this work is far from finished (unix printing...) -- Nicolas Mailhot
