Re: Shipping Vera with 2.4



Jody Goldberg wrote:
On Wed, Mar 05, 2003 at 02:11:13PM +0000, Sander Vesik wrote:

Havoc Pennington wrote:

If you had shared IPC, then you could have just specified a message to
add a new file, and a broadcast when the list changed, and that's it.


Saying 'and to add entries into the recently used files list you need to link to this stack of libraries and use these APIs' is in fact coinsiderably more complex code wise than specifying file locking. And also raises teh question of how much impact will various bugs in the layer you are linking to exposing you to and how you test it and so on.


I've got to disagree with you there Sander.  In my experience it is
far far better to have a single implementation that can be
fixed as new subtleties arise, than a myriad of one off versions.
There are two key advantages to a shared implementation :
    1) fixing 1 bug fixes all programs
    2) having several programs using the same code accelerates the
       finding of bugs.

Look at something as deceptively simple as opening a stdio FILE for
output and saving things.  Most apps did not handle things like
setgid directories, or symlinks smoothly.  Gedit added some support
for them but it did not work well on Solaris.  I raided the code and
with lots of assistance polished it up and stuck it in libgsf.  Now
all the apps using gsf get to benefit.

Having a librecentfiles that exposed a trivial interface and
handled file locking and contention smoothly seems like a much
better choice than waving our hands at the issue by writing a
detailed specification that boils down to
    'do the right thing (please)'


If the librecentfiles - or similar - is a simple self contained library that does one thing, does it well, does not contain non-trivial amounts of copy-paste code and can be used with dlopen with no major hurdles from one place, then I obviously agree. This changes largely for linking to a multipurpose stack of libraries to get (essentialy) one function.

I'm not exactly a fan of everybody linking to a static expat library, but its a sort of workable solution - the same would not apply to an evolving infrastructure.

Not that a spec is a bad thing, but a solid implementation trumps it.


You normaly need a spec for a solid implementation, otherwise, how do you tell its is doing what it is supposed to?

__________________________________________________
Do You Yahoo!?
Everything you'll ever need on one web page
from News and Sport to Email and Music Charts
http://uk.my.yahoo.com



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]