Re: Proposed Modules, My Take



On Thu, 20 Jan 2005 13:49:18 +0000, Mike Hearn <mike navi cx> wrote:

> It was a policy decision made a long time ago that GNOME should be
> usable by proprietary software, that's why it's LGPL, that's why ABI
> stability is seen as important, etc.
> 
> So I'll reiterate that I don't see the point of the bindings release as
> you can't make any assumptions at all about what the user has if they
> claim to have GNOME bindings 2.8 - it could quite literally be any set
> of ABIs at all. Likewise users can't say "Hmm, I have bindings 2.8 but
> this app needs 2.6, so it should work".

Okay, let me explain what I view the point of the bindings release as.

It would be great if it could, as you say, guarantee that an app
released against a certain version of the bindings would work under
all future releases of that binding.  Currently, that doesn't appear
to be possible with the given state of programming languages we are
dealing with, and is also difficult just because the bindings are
fairly new and are relatively unexercised (compared to the gnome
libraries written in C, that is).

So, let's look at the polar opposite--not having any bindings platform
and thus no guarantees.  Let's say I release an app that works with
foobinding 2.4, and someone else releases an app that works with
foobinding 2.6.  The two versions will likely be incompatible.  Now,
since they are incompatible, there's an issue with whether the user
can use both apps.  If the two versions of foobinding are not parallel
installable (which is possible and perhaps even likely), then the user
will have to choose which app they want to use.  If the user installs
foobinding 2.6, then it will probably overwrite foobinding 2.4 and
break my app.  If the user tries to install foobinding 2.4, then they
first have to uninstall foobinding 2.6 and break the other person's
app.  Nasty headache.  The only way to resolve is to rewrite my app as
soon as the new binding is released.  That really sucks.

The bindings release is a set of requirements that ensures something
better than this above worst case scenario, while not providing
everything that you want yet.  The user will be able to use both
applications by having both versions of the bindings installed at the
same time.  Further the bindings do discourage the breaking of API and
ABI, and thus discourage the number of parallel installations needed
(not as much as gtk+ does, but even with gtk+ we have 1.x and 2.x
installed).  No, it's not perfect, but yes this is very useful (to me,
at least).  Hopefully things will improve as the bindings and
languages are used more so that hopefully we can provide better
guarantees.

Cheers,
Elijah



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