Emmanuele
Bassi has
summarized a discussion that happened on IRC after my Gtk+
3.0 post.
His blog entry starts by saying that we should not use
blogs to discuss and then goes on to discuss. I agree with
the sentiment, but IRC is not a good place to do the meeting
either as we do not even have IRC logs for whatever channel
they were on discussing.
It is about the ISVs
Emmanuele seems to think that this is a marketing
problem. It is not.
This is about the effect that the current Gtk+ 3.0 plan has
on ISVs.
KDE has almost no ISVs, Qt does.
GNOME has almost no ISVs, Gtk+ does.
Most likely because anything beyond the core toolkit is too
unstable in both cases, and because things are too quickly
flagged as deprecated with no roadmap in place.
The Qt situation is much better, as it is commercially
designed, and they have existing customers that are paying
them money to solve problems for them, not introduce new ones.
Qt is also designed to be bundled with your application,
and you can make your proprietary application not break if the
user upgrades his Qt. This is not the modus operandi for
Gtk+.
Having an "abandoned Gtk 2.x" and a "maintained, but API
and ABI incompatible 3.x" which will not be available
everywhere at the same time is a major turn off for ISVs.
Creating an ISV ecosystem is incredibly hard, and
somehow the new generation of Gtk+ developers is now "OK"
to throw away years of work of those that had to work
with fewer resources than Gnome has today, fewer developers, a
smaller community, slower computers, bigger challenges and
yet, managed to keep Gtk+ 2.0 API compatible.
Perhaps it is not a matter of being "OK", but the new crop
of Gtk+ developers does just not appreciate just how much
value ISVs are for Gtk+, Gnome and the Linux desktop in the
first place. They did not have to fight to get those guys on
board on the first place.
The premises and the conclusions of Imendio's paper would
not hold if you were to consider application developers in the
mix. But in particular, it seems that the mindset is
dangerously close to the rationalization used recently by a
KDE spokesperson
and lampooned
by the Linux Hater Blog.
What bothered me last night
What bothered me last night after I blogged was the
realization that most of the Imendio developers have switched
to OSX as their main desktop operating system (At least rhult,
hallski and kris).
These are great developers, but for their day-to-day
activities, they have given up on the Linux/Gnome desktop.
Their concern is no longer to attract ISVs, as long as the
source compiles with some changes, they will be OK.
There are certainly some developers at Imendio that still
use Linux, and I am sure they have a "Linux partition" to test
things out. But when it comes to ensuring the viability of
the Linux desktop ecosystem, I do not feel comfortable about
wiping out the ISV ecosystem that we have.
Discussion
Emmanuele says:
for instance, I would have loved to have Miguel at the gtk+
team meeting of Tuesday at GUADEC: it would have been a great
discussion, I’m sure of it, and we might have had a different
state of the union talk.
I mentioned this problem in
my previous
blog entry. Even if I had made it to Istanbul on
Tuesday, I am merely one of the voices concerned about API
stability. "Tuesday Meeting at Guadec" is hardly inclusive:
There was no Adobe.
There was no VMware.
There was no Medsphere.
There were no Eclipse folks (who have complained previously
about the ABI/API issues).
There was no Gnumeric.
And these are the ones I can think of the top of my head.
Senior voices from our own community were missing, like
Morten
Welinder who has expressed his opinion in a shorter post:
The best thing about tabs that I can think of is that it will
keep certain people from doing more harmful things like
changing the gtk+ api for no good reason.
I do not know who attended the Gtk+ planning on Tuesday,
but it was not inclusive, and I suspect it was heavily tilted
towards the Nokia-ecosystem.
From a Nokia standpoint, I understand the desire of
dropping older code, get a smaller version of Gtk+ out there,
and be able to get a very flashy system at all costs. The
iPhone and OSX are strong UIs, and I can understand the desire
to compete, but lets not throw the baby with the bathwater.
Decisions about the future of Gtk+ can not be done without
all the stakeholders, and specially without those that have
worked for years in keeping the API stability under duress and
have built applications on top of it.
Features
Emmanuele says:
Yes, 3.0.0 might not have features. is this bad marketing?
probably. so we need to fix this. a way1 to do this would be
keeping the 3.0.0 in alpha state, call it 2.99.02 and add
features to that until we get to a 3.0.0 that developers will
want to migrate to, like the new scenegraph API or the new
style API. let’s break with 2.x in style
As I said previously, I would endorse such a plan if it is
shown that fundamental new features could not be implemented
in an API/ABI compatible way. Nobody has yet refuted my
assessment of the various areas that would not break
compatibility, and that covers most of the new
features.
Although I am not the only stake holder, nor the only ISV,
nor the only developer.
Communication
Emmanuele says:
communication: there’s a certain lack of communication between
the gtk+ team and the users of the library. in my opinion,
it’s due to the small number of active developers and to the
fact that ISVs don’t really get involved into shaping the
platform they are using. they have the source code, and
sometimes it’s easier to fix in-house than to communicate and
go through the proper process — and this is a structural
problem that is caused by the small number of people involved
in the said process as well. the gtk+ team needs to open up
more, and at the same time the ISVs need to get more
involved. sometimes it feels to me that the team is waiting
for features, direction and help in the development, while the
users of the library are waiting for the team to come up with
the perfect plan to fix all the bugs and warts while retaining
the whole API and ABI.
I agree with Emmanuele.
We setup the GNOME Foundation for things like this; Lets
use the GNOME Foundation organizational powers to reach out to
ISVs; to organize a platform and Gtk+ summit as it is now
clearly needed; Lets include all the stakeholders, not only
the active developers.
Process
Emmanuele says:
process: this is connected to the first point - we have a lot of
channels, and it might be daunting to actually follow them all; but
we're also open in terms of discussion and revision. this is our
strength. so please: if you want to discuss, join the IRC meetings on
the #gtk-devel channel on Tuesday at 20:00 UTC or send an email to
gtk-devel-list with your points. get involved. help shaping the
future. don’t stand idly by, and wait for stuff to break to complain.
Casual discussion on IRC is OK, but that should not be the
repository for decision making for such a fundamental
component of GNOME and the Linux desktop.
Perhaps the discussion can start on IRC, but minutes,
summaries and decisions should be posted to the Gtk+
developers and users mailing list and given enough time
for
all the stake holders to participate.
Additionally, you can not expect that your blog has now
reached all the ISVs, not even the gtk-devel-list (which is
presumably a mailing list for the developers of Gtk+ not for
its users).
We need to have a mailing list discussion, and then we need
to have an outreach program to get to all stakeholders,
including the ISVs to formulate a plan.