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

Reply via email to