Re: Moving to *Avahi* over howl


Regarding #1, avoiding a implementation switch in your code. This is a side-effect of the implied neccessity of #2.

Regarding #2, swapping out implementations. This is the only concrete reason you give for needing an abstraction, and the only reason you give for needing it is Gnome-on-OSX.

Regarding #3, better integration with Glib/GObject. Avahi uses a similar library split to DBus to support this. It isn't a problem.

Please, please tell me Gnome-on-OSX is not the only reason we are so scared to commit to Avahi.


Callum McKenzie wrote:
On Thu, 2005-09-15 at 20:07 -0700, Alex Graveley wrote:

Does anyone have any sort of convincing argument as to why an API abstraction in this case is *needed*?

("I like abstractions" is not an argument.)

Here are some arguments:

1. So I don't have to have a series of #ifdef statements to support
various implementations.
2. So we can swap out the preferred implementation.

3. So we can integrate it into the normal glib way of doing things
(signals, gobjects, etc.) regardless of which implementation is used.

The counter-argument is of course "why don't we just pick one". Then
obviously you don't need to abstract the API unless the chosen API
doesn't fit in well with normal GNOME code (point 3).

One of the main reasons I accepted the patch for bonjour support when I
already had howl support was because it makes more sense, when running
the MacOS X port of GNOME, to use the "native" library. So that's one
reason why not.

The other reason I see for supporting multiple implementations is that
it isn't yet clear what is the best way to go. If it was clear I don't
think this thread would have started [1].

 - Callum

[1] I predict that whichever implementation is first supported by the
wrapper will quickly become the default because it has the nice
abstraction and no one is afraid to use an abstraction, thereby removing
any need for an abstraction because we have effectively made our choice.
This is of course pure cynicism and not an argument for any particular
course of action.

desktop-devel-list mailing list
desktop-devel-list gnome org

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