Hello to you all.

As the initiator of the thread "Where is GGI heading?", I want to
express my own feelings about the GGI project.

First of all: the thread has brought good things to think about, what is
a very good thing... Even a IRC meeting is being requested. That
demonstrates that GGI isn't dead, it's just in a process of rethinking,
and having ideas before coding...

Secondly, mi own ideas about the project:

I have always had interest in the success of Linux and in general of the
Free Software. I hate the dominance of Windows in the desktop world. But
how can that be changed? The Gnome and Kde projects are making enormeous
efforts to change this. But their success is not going to happen without
the help of something like the GGI project. We (can I say we here?, I
hope so, ;-)) have to make this clear to all the Linux Community (or the
Free Software community in general). Why is this? Many reasons:

Have you look the MAC OS X page in www.apple.com?. Apple is designing a
new operating system built over Open Sources (in part) that is looking
awesome (please, take a look at those pages, because there is
interesting information there). They are building it over a Mach
retouched kernel, and BSD commands, but most importantly, they are
building a GRAPHICS LAYER onto the operating system, over which will go
a GRAPHICS SERVER (a kind of X Server, but much much improved), that
supports curves, antialiased text, etc... and OpenGL.
So, why so much talk about MAC OS X?. Because it demonstrates than a
modern operating system needs a GRAPHICS LAYER foundation over which is
easy to design graphics servers, accesses to the framebuffer, etc...
Even the evil and ugly Windows has that DirectX thingy (yes it's ugly),
but that allows the programmer take a certain control over the input
(DirectInput), the framebuffer (DirectDraw), and 3D graphics (Direct3D).

And BeOS equally has better support than Linux in this terrain...

The equivalent in Linux: The X Server. But Xlib is NOT suited for
accessing the framebuffer. In 3D the DRI project hasn't still proved
anything to me. In 2D, the DGA system is NOT the way to go (suids
programs etc.).
New extensions are being developed in the Xfree86 project. Have a look
at http://xfree86.org/~keithp/render
They are trying to simulate the translucency in the X Server.
So X=Xlib+Xt+DRI+DGA+Extensions+Gtk/Qt+Gnome+.... Just too big for
anything.

The conclusion here: Linux sucks in the graphics section (in the
multimedia section in general...), and new operating systems are going
to kill Linux in the desktop arena if the community doesn't do anything.

How in hell are the Gnome or KDE projects going to take the desktop, if
the operating system can't offer a good graphics layer for games,
multimedia, translucency, graphics servers, etc...?

Another issue here for the X Server:

Linux is quite stable, much more than Windows is. But this is only
partly true. Yes, it's stable in text mode, but the X Server crash quite
easily, and will crash much more with DRI, and of course with DGA. Just
take much memory from the system, and the Server starts to disobey your
orders... So in the end, a quite stable operating system is exposed to
many crashes just by X faults...


Promoting GGI:
As you can see, I'm using here the same method used by Miguel de Icaza
to promote Gnome: saying that UNIX sucks (there is an article in
Slashdot i think about this), and that Gnome is going to fix this.
Well, we CAN (and MUST) use this technique with GGI and the Linux
community. We must explain to the community all of the above, we must
say that Linux isn't going to take the desktop unless something is done
in the multimedia arena (specially in the graphics arena). But we aren't
just criticizing, because we have a solid foundation: GGI+KGI. So we
should spread those feelings over the community. How? I'm open to
suggestions here. But as somebody suggested, the news are a good place.
More ideas: another article on Linux Journal, or in Slashdorg, Linux
Today, BeOpen, whatever. And also exposing the news on the Web site.


Now for the problems of GGI:

For me, the main problem of GGI is that is focusing excessively on
making many different rendering targets. While this is good, it gives
the casual user the idea that GGI is just a library for rendering on
different platforms.
I prefer this image of GGI: KGI taking over the mess created by Virtual
Consoles, FBDev, X, and the input methods on Linux. The GGI team must
put some efforts on talking everybody about the excellencies of KGI for
building a good graphics layer in Linux. A layer that makes possible a
thinner X Server (or even graphics without a graphics Server), easy
building of new graphics drivers, secure Console Switching, etc... And
these things are being requested by the Linux people, believe me.

Now GGI must develop libraries on top of KGI to provide mechanisms to
handle (and facilitate) all this power: good framebuffer access (even
support for alpha channels, z-buffer, w-buffer, overlays, TV-tunners,
multi-head, etc...), some libraries to handle 2D operations easily (with
hardware acceleration, etc...). Much of this is done I believe. Just
some clean up of the sources and targets and we are on the correct way.
The 3D model should reside in creating a kind of DRI (i mean, direct 3d
hardware access) but over KGI (how about talking with the DRI
development team at sourceforge. I think that Brian Paul, the Mesa-3D
maintainer is working in DRI too). That's all. Supporting 3D primitives
should reside in a OpenGL library using those facilities. Don't
complicate too much here trying to create another 3D graphics library,
because no game programmer is going to spend time learning a new
3D graphics library that only supports Linux. OpenGL is the standard,
and it's a quite good one.

With respect to the packaging of GGI, I propose:

GGI+GII core in one package.
Every target in its own package.
KGI can't actually be a package because it needs to patch the kernel. I
think another talk with the Kernel people about KGI is in order (at
least after 2.4 arrives).

This way of packaging is great for two reasons:

1) the GGI core looks more thin.
2) The targets look thinner too, and may be choosed individually by the
people.


Well, and as I'm becoming tired of writing in English, I end this
document in the hope of making my points come into the project.

So keep the good work and thanks for trying to make Linux (and others)
better...

Reply via email to