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...
