Dave Mason On GTK+ 2.0, Pango, Gtk And More
Ur@eus writes: "We [at Linuxpower] have just put up an interview with David Mason of Red Hat Labs.
David answers questions on plans for GTK+ 2.0, Pango, GtkFB, GNOME and Orbit 2.0. Lots of interesting info if you want the scoop on
whats moving on the infrastructure front of GTK+ and GNOME." There's a lot here on the immediate future of those projects here, including some information on what features will distinguish GTK 2.0, and unfortunately only a teasing reference to adapting the ultra-cool aRTS project for GNOME. (That in particular makes me drool.)
Let me preface this by saying the flamers will tell me to rip out my code profiler and start doing it myself. To them I say, I am already working on it. But my limited knowledge of Gnome/X programming means I have to teach myself how to do it before I can be productive.
My biggest complaint about Gnome and GTK is that it is getting extremely bloated extremely quickly.
For example, I have a Dual Pentium 100 machine with 64 megs of RAM. I was running what started out as a bare bones RedHat 6.2 install. I then proceeded to download X 4.0.2 from XFree86, and Helix Gnome (Now Ximian Gnome) which is better then the stock Redhat 7 install, but still quite bloated.
On this system, all 64 Megs of RAM were consumed by Gnome and X, and a substantial portion of the virtual memory. However, on my Dual Pentium III 500 system with 256 megs of RAM, everything runs so nicely. About 180-190 Megs of RAM is consumed with 1-2 megs of virtual memory used.
The kernel was upgraded to 2.4.0 custom compiled for each machine.
My point is, someone really has to sit down with the GTK and Gnome libraries and start optimizing them for size and speed. Its starting to get worse then Windows. Windows 2000 runs nicely in 64 megs of RAM on a K6/266 laptop.
However it is normal to make source freely and immediatly available just to cut the administrative overhead of fulfilling your obligations under GPL at a later date.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
On this system, all 64 Megs of RAM were consumed by Gnome and X
One of the fastest forms of interprocess communication under Linux is shared memory. However, top reports shared memory use incorrectly. For example, if two programs are loaded into RAM, and each is using 16 MB (8 MB for itself and 8 MB shared between the two), top will report 32 MB in use instead of 24. Under Linux, processes and threads are pretty much the same except that threads share memory; top barfs on multithreaded applications such as Mozilla. When X is running, top also reports your video card's RAM as in use by X and whatever apps are using MIT Shared Memory for their pixmaps.
someone really has to sit down with the GTK and Gnome libraries and start optimizing them for size and speed
Another example of the shared memory bug in top is in libraries. Under Linux, a library's code segment is marked read-only; it can be shared among several processes, making top misreport the memory the library is actually using.
Like Tetris? Like drugs? Ever try combining them?
Will I retire or break 10K?
IMHO, bith GNOME and KDE are not being very creative in the definition of a modern GUI, but following the old path already walked by Xerox/Smalltak, Apple, X11 and Windows.
What's new up in the desktop and user interface? Themes? Is that the most notable achievement?
Indeed, companies as Helixcode are not very innovative in their products. The only really new thing they've created is their new trendy name -Ximian.
It's not only me saying that, in every Icasa's interview he _himself_ says that they are reproducing icon by icon, step by step, cell by cell, MS programs (bloats and bugs...).
The GUI is going the change drastically in the following years, and OS companies are copying very old user interface paradigms and adding bloat and bloat: super colourful icons, themes, skins, gadgets, widgets and the slashdot news strip. But the basics are still the same, square windows and a 3 buttons mouse (well, sometimes) that still is useless for copying 7 bits ASCII text from a text editor to a text box in the browser.
What's about smart popups, sound, speech recognition, touch screens, smart desktops with really new capabilities (it seems that Apple is going in this direction) to organise documents in a more useful way to the user than the old and annoying tree-like folders and files and the always hidden trash bin?
What's about a CSCW desktop where you can share your documents, calendars, music, photos with your colleagues without starting 18 different programs and FTPing files to a server because your mailserver doesn't accept more than 3MB?.
GTK, GNOME, KDE or Ximian, still _very_ old paradigms with nicer memory eating and eyes hurting icons.
I see the next innovation will be the task bar in diagonal instead of the oldfashioned horizontal or vertical one.
--ricardo
sgis ddo ekil t'nod i
I don't want a lot, I just want it all!
Flame away, I have a hose!
Only 'flamers' flame!
One thing unix people seem not to realize is that the look of Windows (and Mac before it) is constrained by the need to be usable on very low quality monitors and by people with limited vision. (On unix, users of low-quality monitors tend to just stick to the CLI.) Both companies did a great deal of research on usability of this sort, and it's a professional touch that is seldom recognized by GUI amateurs. Black checkmarks against white backgrounds, for example, are designed to be visible on 2-color monitors, or by people with very poor eyesight. "Graceful degradation".
It's not surprising that the platform that expresses the greatest scorn for the value of GUIs shows the least understanding of them. Nevertheless, Linux GUIs are growing up. Clearly, people with real GUI expertise are joining the kernel experts who started this new platform, and I have every reason to hope that eventually Linux may boast the best GUIs of any platform. (I say this because I think Win & Mac really need to stick with a single, consistent GUI, while Linux can fork into the OS for all sorts of devices with different constraints and different high-quality GUIs for different users with different needs.)
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
I am currently working on a fork of GNOME that replaces the broken UI concepts from Windows with sound UI concepts from the macintosh (e.g. alt command keys instead of ctrl, global menubar, obeyance of fitts law, etc). So far, I've gotten it to the point where recompiling code that uses gnomeui macros produces mac shortcuts, gets rid of those underline accelerators that clutter menus (yes, I'll come up with a better non-mouse solution), and puts the cancel button in dialogs on the left and ok on the right, as is consistent with the western concept of negatives being on the left and positive being on the right. Cancel and OK should be replaced with more descriptive terms, but first things first. As for the problems with consistency between applications, I'm also working on "porting" (for lack of a better term) the code of many GNOME programs to a usable and consistent state. All menus, keyboard shortcuts, dialogs, for similar features will be consistent across apps. I'm screwing with people's code because they didn't screw with it enough.
Why am I doing this? Isn't forking counterproductive? Of course it is. But I am very greatly disturbed by Miguel et. al duplicating many of Microsoft's UI mistakes. When Microsoft designed the windows UI, they made a lot of decisions that were based on being different from(and in some cases, the exact of opposite) apple. The problem with this was that Apple put many years of HCI research into the design of the MacOS UI. By doing the exact opposite of apple of what apple did, Microsoft was going directly against interface designs that were scientifically proven in usability labs to be more effective, efficient, and intuitive. For example, it has been proven that an application menubar at the top edge of the screen can be accessed much faster than a menubar on the window of each application. This is not UI dogma or personal opinion, it's proven fact. But microsoft didn't care about end user's experience, they cared about their legal status. So they ended up throwing efficiency and usability out the door and doing the opposite of what was proven to work. The list goes on an on, ad nauseum. And when GNOME blindly copies the Microsoft (Where do you think the "Exit" menu item came from? The 'Q' in ctrl+q stands for something), they are perpetuating UI mistakes that need to be put to rest. GNOME should be about creating and designing new and improved user interfaces, not perpetuating bad decisions made in the past. I won't be party to putting users through another 10 years of UI misery to keep backwards compatibility with a backwards design.
I'm not saying that my ultimate goal is blindly copying MacOS. The mac interface certainly can be greatly improved upon. But I believe that when a UI builds on someone else's design, that someone else should be someone who knew what the hell he was doing. Microsoft does not fit that description, and Apple fits it better than anyone else who has yet come along.
I know that talk is cheap until you back it up with code, so no one will probably take me seriously. But it won't be too far into the future that I'll post a devel version of the modified gnome-libs and gnome-core on freshmeat. This UI insanity has to be stopped.
In five seconds the PenguinCow revolution will begin...
Most people don't realize Windows uses twot oolkits
What are you jibba-jabbering aboot?
`Windows' meaning the average Windows users applications, not the Windows itself. I thought the meaning implied was obvious.
I don't want a lot, I just want it all!
Flame away, I have a hose!
Only 'flamers' flame!
GTK 2 will have a different default look; to get an idea what it will be like, try the "Raleigh" theme Owen released for GTK 1.2, which is sort of a prototype for the GTK 2 look. It removes some of the Motif-esque ugliness and looks cleaner. Still a simple, fast theme, no MacOS-X snazziness, but of course the point of themes is that you can switch them. ;-) For the default we want something that will be fast over a remote X display (and fast in general), not use too much memory, and reasonably conservative overall.
I think it's fair to say that the primary focus of GTK 2, aside from a few major features (Unicode/Pango, text/tree widgets) was API usability. GTK 2 should be a good bit easier to program. Basically as soon as we notice a FAQ or a question with no good answer on the support mailing lists, we file a Bugzilla bug and try to fix that problem via API enhancements. Better to eliminate the need to ask a question than to add it to the FAQ.
There are also various end-user usability enhancements, such as improved focus handling, etc.
Specific suggestions are welcome in Bugzilla.
Doh, I meant http://www.gtk.org/~otaylor/gtk/ui
He who knows not, and knows he knows not is a wise man
I think I am speaking for the large number of GTK+ users when I ask for a more modern default look for the toolkit. As it stands, GTK+ is a mish-mash of Motif, MacOS and Windows. I'm sorry, but even the QT/KDE look is more original in places. If GTK+ is going to make it big, some serious work needs to go into improving the usabilility of the widgets, as well as the API (I want to see a standardised C++ API for GTK+!)
Looks like KDE and Gnome might come closer together in the end...
Arts has been what esd was for Gnome (only more ambitious...). If Gnome were to switch to arts, that would be cool, as all apps would use the same sound server. At the moment you can run an esd with an artsdsp wrapper, but that is a hack.
Also if GTK2.0 with Inti (?) becomes more C++ caqable, things like gtkembed and so on in QT, could make merging parts of the project easier.
Great news, I hope the Gnomes will do that.
--
Moritz
Not quite what you're looking for, but a start: GTKSwing.
Actually, better yet is Java-Gnome.
Amazing what you can find on Google with a couple of well chosen keywords, isn't it?
--
--
The Internet is the Suppository of All Knowledge. You get it in the end.
This is at best stupid and at worst counter to the spirit and word of the GPL. There's no point in refusing license to people who won't accept the GPL, because accepting the GPL only grants rights. It's not as though users gain some advantage by denying the GPL- although that also means that adding "you must accept the GPL" is hardly an imposition. After all, as long as the user doesn't try to redistribute the software it's impossible to tell if he's actually accepted the GPL or not. Hell, the GPL itself states explicitly that:
That means that you can't violate the GPL just by running the program, so if you accept that you've agreed to the GPL so long as you comply with its terms, simple use of the program can't constitute a violation.
There's no point in questioning authority if you aren't going to listen to the answers.
Perhaps you should RTFL. The GPL states:
[emphasis is mine]That makes it pretty clear that the GPL does not restrict you from running the program. If you don't want to copy, modify, or redistribute the software you can just ignore the GPL, because it applies only to those areas.
There's no point in questioning authority if you aren't going to listen to the answers.
I am not a lawyer, but I've been here for a while and heard this all before, several times.
--
Fuck the system? Nah, you might catch something.
There's absolutely no reason why the user the GNOME and KDE projects are aiming for will pick all their applications based on toolkit. In fact, far more likely is that they will piock them based on quality.
Unfortunately, GTK and QT loook different. Consistency is one of the key ways of getting a user used to your system. There's no reason why a user should change the look and feel of half their application from one program, and the other half
with another.
Once that occurs, both projects should write a common set of human unterface guidelines and hash out a set of common controls, UI standards, etc. This may (will) mean modifications to the toolkits to support the samre variety of widgets.
The GNOME team should focus on making KDE applets integrate into their desktop. The KDE team should focus on making GNOME apps behave the same.
Both projects are doing fine. Unfortunately, both projects are enhancing the Linux desktop at the same time they are damaging it. MOst people don't realize Windows uses two toolkits - but over time, MFC and Borlands VCL have merged to look and feel acactly the same. Nobody undertands the value of a style guide when the first app is produced. When the second m thirs, and forth app is produced they do. Consistency is important
Unfortunately both teams seem to have no idea about this, from my investigations and discussion with various GNOME developers and one KDE developer. This is the biggest problem with GNOME and KDE.
AFAIK there are no efforts to fix it.
I think he is saying that he will not "license" the program to you unless you agree to the GPL.
The GPL gives the aRTS project right to do a very interesting things: they have the right to distribute the program to only the people they wants to distribute it to. It does nothing to force anyone to give anything to anybody. If they want to distribute aRTS only to vegetarians, or registered republicans, or people who have given them $1,000,000.00, that's completely within their rights (at least, as far as the GPL is concerned).
However, the GPL also says You may not impose any further restrictions on the recipients' exercise of the rights granted
herein. So, although the original licensor may have restrictions on who he will give the program to, once he gives it away under the GPL, any recipient under the GPL is explicitely allowed to stick the who thing up on a public archive to allow anyone who wants to pull it down -- whether those future recipients want to agree to the GPL or not.
Since I'm obviously not a lawyer, I have no idea if the blurb on the front page qualifies as some type of restriction on use, or if the aRTS project is themselves in violation of the GPL just by virtue of their public misunderstanding of the license of thier own software.
Slashdot is jumping the shark. I'm just driving the boat.
I stand corrected on that point. I've never actually used Debian, but had heard from somewhere that it shipped with Gnome as the default.
----
Celebrate the finer things in life
Not true. There are at least 3 major Linux distributions that ship with Gnome as the default (Redhat, TurboLinux, and Debian), IIRC. Also, HP and Sun have both made announcements that they will be shipping with Gnome as the default environment replacing CDE on HP-UX and Solaris respectively. Dell has also made an agreement with Eazel to ship Gnome + Eazel's NUE (Network User Environment) based around Nautilus on it's Linux desktop and notebooks offerings. With these announcements and others including the fact that Sun, Eazel and others are unifying around Gnome's component architecture, Gnome's future is quite bright.
----
Celebrate the finer things in life