Re: first draft of my response to Linux Format magazine



Hey Sri,

Thanks for taking this on! This looks really good.

Sriram Ramkrishna wrote:
Please check for accuracy and if there  is anything that needs to be
added, please edit and send back to me:

A few minor comments... (do what you want with them ;) )

1. What advantages does GNOME 3 offer to application developers?


Well I think it depends on where you are coming from.   For the
purpose of this question, let's restrict ourselves from moving a GNOME
2 application to a GNOME 3. 


For the most part, a GNOME 2 application can exist in a GNOME 3
environment.  We continue to maintain the same GTK+ api from GTK+ 2
although they are deprecated while providing newer API for application
programmers to use.  The advantage is that applications developers can
move to GNOME 3 at their discretion.  This is in contrast to the GNOME
1.x to GNOME 2.x where we broke all APIs and application writers had
to re-write their applications from scatch.

Great to get the compatibility point in first. That sets things up
nicely.

The number of libraries that are required for a typical GNOME 3 has
been cut down.  A lot of the GNOME UI libraries and the VFS library
have been moved into GTK+ proper.

If you're code in GObject, then the new GOBject introspection will
enable much easier bindings integration.  No longer will there be a
discrepency between the different language bindings of a library.
Providing a consistent experience in whatever language bindings you
use across all GNOME related libraries.

I'd separate GObject Introspection into its own paragraph. It's clearer.

We have integrated Cairo as a new display backend over the more
primitive GDK.  Cairo gives us flexibility in how we want to display
our windows.  We can now draw GTK+ windows on any number of hardware
devices from smart phones to flat screen displays to touch screen.
 Cairo is the free software version of "Display Postscript"
popularized by NeXT computers.

It also allows performance and portability improvements... but maybe
that's not relevant. Is it worth talking about the kind of experience
developers will have using this stuff? It simplifies the technologies
they have to work with, right?

GTK Theming has changed to use css style syntax rather than the
confusing gtkrc system that was used before.  This provide a much
improved theming experience for those who want to create new themes.

Be more specific about how it has improved, perhaps? The syntax style
makes theme development quicker and easier. You can also do more
visually - you can make better looking themes, and there is now support
for animated state transitions.

GTK+ improves how applications stores the configurations by using the
GSettings which you can access through a number of backends, DConf
being the most popular although you can use anything you want
including a simple disk backend.

From a developer point of view, the new settings API is much friendlier.
From my notes: "You can bind class properties to configuration settings
with very little code." (And DConf/GSettings is much faster, of course.)

These are just a number of changes that will be visible to developers.

Great stuff. I wonder: can we (should we) summarise the overall
improvement to the developer experience? Simpler, quicker, more modern
development environment... something like that?

(I'm continuing to dump the platform notes that people have helped me
with onto the wiki [1], btw. It's filling out nicely, though there are a
few holes that need plugging.)

2. In your work with Rhythmbox, does GNOME 3 require you to do things
differently than they have been done in the past?


This is the response from Jonathan Matthews maintainer of Rhythmbox:
GNOME 3 offers better defined ways for applications to work with the
desktop, which means you don't need to spend time worrying about
whether you want a panel applet or whether close-to-tray makes sense.
Since there's less emphasis on custom themes and user appearance
settings, you can be more confident that end users see things the way
you designed them, and you can worry less about poor interactions with
obscure gtk themes.


So far, moving to GNOME 3 hasn't involved much of a change in how I do
things. It's a different environment for an application to live in, so
there is some adjustment involved, but at least in my case it's
forcing me to do things I wanted to do anyway. I'm also using it as an
opportunity to make more drastic internal changes, and to update to
newer glib and gtk APIs without having to think about backwards
compatibility.

This is excellent. Many thanks to Jonathan. Could we get his permission
to reuse these quotations elsewhere?

Best,

Allan

[1]
http://live.gnome.org/TwoPointNinetyone/ReleaseNotes#What.27s_new_for_developers


-- 
Blog: http://afaikblog.wordpress.com/
IRC: aday on irc.gnome.org




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