Platform



Hey folks,

I'm taking a hard look at the Platform Overview and how we
can improve our message to ISDs through better documentation.
Our release sets, unfortunately, don't really reflect what we
really recommend to developers.  That role has more or less
been delegated to the Platform Overview.

The problem is that what's in the Platform Overview is based
entirely on what I happened to think was worth mentioning at
some point.  I should not be the arbiter of our platform.

I would like to get people's opinions on what technologies
we should be pushing.  I'm interested both in the here and
now and in what people think the Gnome 3 message should be.

I've organized my thoughts into three categories: Platform
contains technologies that are currently in our Developer
Platform release; Recommended contains thing that we seem
to agree we should push, but are either in the Desktop
release or just in our external dependencies; and Others
contains stuff that I think is cool and could be part of
our core offering some time in the indeterminate future.

The list is what came to mind as I was writing this email.
Please feel free to discuss libraries I forgot.


Platform
========

GTK+ -- The core of how we make graphical applications.

Pango -- Internationalized text rendering system.  You
love it and you know it.

GLib -- The foundation for pretty much everything we do.

GIO -- Part of GLib, but worth a separate mention in the
Platform Overview.

GConf -- Configuration system.  There is talk of a new
system (see below).  But I think it's obvious that we need
to be pushing something here.  So as long as GConf is what
we have, it's what we push.

ATK -- Accessibility toolkit.  Used by GTK+.  Should be
used by anything else that does UIs.


Recommended
===========

Cairo -- Incredible drawing library, used by GTK+.  There
seems to be general agreement that developers should use
Cairo when they need to do custom drawing.

GStreamer -- All things multimedia.  I don't think there's
any argument against GStreamer being the Gnome-blessed way
to do multimedia.

D-Bus -- Inter-process messaging system.  Lots of stuff is
built on it.  How much do we want to push it directly?

Avahi -- Service discovery.  This is used in quite a few
places.  I know some people in the past had talked about
having a simple wrapper in GLib.  How much do we push it?

gnome-keyring -- Storing passwords and other secrets.  I
think this is an important thing to offer ISDs, but this
seems to be languishing as a desktop-only thing.

evolution-data-server -- Address book and calendaring.
I've seen half a dozen projects come and go that aim to
augment or replace e-d-s.  We seem to like the idea, but
I'm not sure we all love the implementation.

libsoup -- HTTP library.  Honestly, HTTP is such a core
thing these days, we need to offer something.  Everybody
seems generally happy with libsoup in general.  Should it
be in the Platform?  Should its functionality just live
in GLib alongside fancy new networking stuff?

libxml2/libxslt -- We put these into the external deps
a couple release cycles back.  Do we want to continue
pushing them as part of our platform?


Others
======

GSettings -- GConf replacement to live in GLib.

Telepathy -- Instant messaging and beyond.  I think
there is a lot of really cool potential here.

Libchamplain -- Wicked cool mapping library.  This is
not something I would have thought of as something we
need to offer.  But now that it's here, it's a really
compelling technology with a lot of potential.

Clutter -- Are we actively embracing Clutter, or is it
just something we're OK with people using?  The message
is unclear.

Tracker -- I don't think we can afford to be without a
search system.  This isn't just about having file search
as a feature.  It's about providing something that ISDs
can leverage to make their applications better.

GNIO -- Networking library for GLib.

WebKit -- More and more applications are finding uses
for an embedded HTML rendering widget.  I think we need
to provide one with a solid API.  WebKit seems to be the
direction people are heading in.

Various D-Bus services and APIs -- DeviceKit, PolicyKit,
ConsoleKit, I think there's something for power management,
etc.  Are these things we expect applications developers
to use directly?  What's our message?


All right, that's what's come to mind so far.  I'd also
like to discuss what we're pushing on the mobile front,
but that's another can of worms.

I'm really curious to hear what the community thinks.

Thanks,
Shaun




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