Re: Separate UI and core processes
- From: Brian Cameron <Brian Cameron Sun COM>
- To: Tristan Buckmaster <tristan buckmaster gmail com>
- Cc: desktop-devel-list gnome org
- Subject: Re: Separate UI and core processes
- Date: Mon, 26 Jan 2009 12:37:17 -0600
Tristan:
Note that the ATK provides interfaces for controlling and getting state
information for all common GUI interfaces. These interfaces are
widget-set neutral and currently both Java and GTK+ work with them.
KDE is on the way, I understand.
Currently libgail (the GTK+ ATK implemention) sits on top of the GTK+
library and provides ATK implementations for the GTK+ widget set. The
current model is that any new widget set would need to write its own ATK
implementation and would then work with the ATK. An alternative
approach would be for programs to not specify their GUI at all via a
specific widget set, and instead use ATK interfaces to specify what
functionalities are available at any point.
Then different UI plugins could be used to specify how those
functionalities are presented to the user. For example, there could be
a GTK+ plugin, a Java plugin, a KDE plugin, etc. Then different widget
sets could be swapped in or out easily for any program. This would
also make it easier to develop applications that use very different
usability models. A user interface for blind users, for example, would
not really need any graphical user interface running. A 3-D user
interface would likely present data very differently than a 2-D one.
Separating the functionality of the program from how it is presented
to the user via a widget set would make it easier to implement such
wildly different user experiences.
I guess I am trying to highlight that much of the infrastructure is
already in place to make this sort of change, but I am sure this
approach would require some significant re-engineering of how GTK+ and
ATK work together, but it is one approach that could be used for
separating the model from the view.
Brian
With the recent shakeup to the computing ecosystem with the addition of
netbooks, ipods, android, gmail, facebook, etc.; I was wondering what
place gnome will have in the future. I was concerned with the platform
inflexibility of programs such as Evolution, which is only really
suitable to be run on a desktop or laptop; Gmail on the other hand works
great on desktops, laptops, android phones, netbooks etc. I can also
run Gmail from pretty much any ones computer, whether it be Linux,
Windows or Mac OS.
Now what I am advocating is not a complete rewrite of Gnome to run on
the web; I believe that this is implausible for the moment. What I
would like to see is a concerted effort to provide greater separation
between the UI and the core of Gnome programs, so the eventually there
is a complete separation, ie. the UIs runs on a completely separate
processes than the cores and so it would be possible to separate UIs and
cores into completely separate development projects.
Such separation would have a multitude of benefits. Most programs
already try to separate UI code, from core code, as this is simply a
good programming practice, so this would just be taking that to the next
step. With the UI being a separate project, it would then be easy to
fork this project and create a plethora of UIs, ones that work well on
netbooks, ones for the web, even windows, mac osx and KDE ones (please
don't shoot me, or start some flame war about using qt). Such a
development effort I think will help future proof Gnome and prevent
Gnome become a collection of monolithic applications that only run
properly on outdated platforms. In the future I don't want to worry
about what computer I am using, I just want to access my mail, music,
documents, ect. in a consistent way no matter where the files are
actually stored or where the core computations are actually done. The
cloud computing dream could become within reach. It would also open
Gnome up to a whole new set of potential open source developers; no
longer will a developer have to understand the underlying architecture
of an application to contribute to it. Programmers would be free to
experiment will all sorts of new UIs, taking advantage of new
technologies such as 'multi-touch', accelerometers, eye-tracking,
speech-recognition, etc. New opportunities would exist for writing
programs accessible for the deaf, or blind. Also, I am sure Intel and
AMD won't mind a few more processes for there future zillion core CPUs
to play with.
Anyway that is just my armchair observer 2-cents, feel free to ignore me :-)
Tristan
------------------------------------------------------------------------
_______________________________________________
desktop-devel-list mailing list
desktop-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/desktop-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]