Interview w/Jim Gettys
infodragon writes "Linux Power has a really good interview with Jim Gettys, one of the origional X developers and now actively involved with GNOME." He's also done much work with the handheld iPaq.
← Back to Stories (view on slashdot.org)
Kind of ironic that this guy who did so much with X was named after the process that allows you to log into a non-graphic terminal...
Signed: Paul Xdms.
The marketing name 'iPAQ' is used for a variety of products, including a rebadged Blackberry 'pager', a range of legacy-free PCs, and even some servers. Most people associate the iPAQ name with the handhelds, but that isn't all they are.
Paranoia isn't an infectious condition, it's a way of life
I think this is the proper way to do this. For somebody trying to support a program on multiple platforms, it is far more useful to have exact cross-platform identical interfaces, than to have this mythical and worshipped "common look and feel".
I would also like to find that mysterious user who is confused because the edges of the buttons look different between their programs. I think "common look and feel" is a crock, and all examples offered where it confuses people is when one of the options is also a completely stupid user interface (like Athena scrollbars). And this crock is forcing bloated toolkits (both Qt and KDE are bloated, and MFC is horrid) on everybody.
PS: I tried a "common user interface" and was forced to go back (in my case I tried to change all the menu shortcuts to Ctrl+ZXCV away from the Alt keys used before). It is painfully obvious that people easily learn differences between programs, but cannot handle the slightest changes in those programs over time.
The above link for Jim's work on the iPaq should go to http://www.handhelds.org
And oh yes, it's fascinating that he says the network transparency of X is "well under a megabyte". If that's really true, then that's also great news, and a good thing to keep in mind when people go off critizing X for bloat with respect to network capability.
----------
In a real emergency, we would have all fled in terror, and you would not have been notified.
The whole argument in favor of X is based on the assumption that network transparency is essential. However, particularly on slow connections with high latency (typical for mobile networks), the last thing I want to do is to display my ui remote. Instead I want to do that locally (memory/cpu is no longer an issue, Jim's own argument) and only use the connection to send data. The whole concept of single tier, server based applications is dead. These most server apps have at least 2 tiers and an additional client tier.
The added value of running a network transparent xserver over a framebuffer based approach is limited, especially when considering that X alone does not provide enough functionality to do things locally, you need additional stuff like qt/gtk anyway (unless you want to write your programs on top of X). Embedded gtk/qt will be both faster and smaller, which unlike Jim Getty is suggesting is still important in the embedded world.
Jilles
You missed the point. He says that the benefit you gain from using Qt/E or the Gtk framebuffer stuff over X with Qt or Gtk is small. Specifically, it is likely to be outweighed by advantages of network transparency and the ability to use stock Qt/Gtk/X programs.
What's more, comments about KDE as the ultimate platform for developers because of Qt, are misplaced. Qt has only one major problem: it's written in C++. But that one's a problem from which I have never seen a toolkit recover without the marketing dominance of Microsoft. Even the very best C++ toolkits are relegated to the backwaters of the developer world because of the cross-platform difficulties (e.g. even Sun had to pass on Qt because it would require choosing acc (thier compiler) or gcc (the one everyone uses) for the shared library format); towering complexity of any sizable code (try to get an average-skill C++ developer up to speed on a project that's been under development for a year or so, and you'll be spending months explaining why you used the language the way you did); and the algorithm-hiding features of the language (e.g. massive overloading, mind-boggling inheiritance rules, four casting operators, etc).
GNOME is written in C. You know, that language that Linux, X, GCC, BSD, Apache, Bind, Sendmail and most of the rest of the civilized world's software is written in. If you want to use a C library from C++ you can. Or from Python, Perl, Scheme, or any of dozens of other languages. C++ libraries can be bent and twisted at the cost of performance and flexibility to be used with most of these.
Here's a quote from the KDE pages on language bindings for Qt and KDE:Now check out what GNOME has to say about language bindings and you'll find a very different story. The matrix is a little hard to read because there are so many languages in it....
Is KDE/Qt nice? Of course, and I recommend it to anyone who finds that they don't like GNOME. I respect the folks that wrote the tools, because they're good tools. I just don't think that they took some very important points into consideration.
--
Aaron Sherman (ajs@ajs.com)
fucking werd.
How we know is more important than what we know.
99% of the time, X is used on a workstation or desktop machine. (Who installs a GUI on a server?) As such, his comments about X's bloat have apply to only 1% of the population, and have absolutely zero significance. In reality, most of couldn't use TinyX. ('cause if we could, we would already be using it!) It doesn't have a 3D infrastructure like XFree86 (plus it can't use the NVIDIA 3D drivers, the best OpenGL drivers around on Linux), and it doesn't have all the feature necessary to compete with the GUIs of Windows and other OSes. Problems with 'top' aside, there is only one thing that is important. KDE2/X/Linux swaps more than Win2K on my machine, apps start significantly slower (ex. KDevelop takes far longer to load than Visual C++), and while using the UI is lightning fast on Win2K, X is significantly slower, even using simple window managers like WindowMaker. (And that it isn't even a fair comparison, since Win2K has tons more features than WindowMaker/X). It flickers more, the mouse jerks at times (that, in particular is positively uncivilized), and windows switch noticibly slower. *That* is what matters, not some bullshit about how stripped down X can occupy very little space.
A deep unwavering belief is a sure sign you're missing something...
I'm pretty sure that both network transparency and multiple desktops were not pioneered by X. Besides, there are programs that let you do virtual desktops on Windows too. (And, let's not forget that BeOS has the best implementation of virtual desktops available, allowing you to set them to different resolutions, color depths, and referesh rates.) Also, I'm just waiting for X to start copy MS and make the damn thing fast, standardized, and well-integrated with media technologies like OpenGL and high performance audio.
A deep unwavering belief is a sure sign you're missing something...
* Re: Moz stability. its also slow on Windows on an Athlonn 500 / 128, a Pii 400 w/ 128, a PII 300 running at 450 w/ 128. I've also ran it on my friends machines who are Mozilla fans and consider their installations to be fast. I still consider its GUI incredibly slow on these machines, and I think people who look and run mozilla objectively would agree.
* Re: bitching. The GNOME, alogn with KDE, and Linux, and other free software and Open Source projects aim to compete with closed source counterparts. They compare themselves to their equivalents and I have the right to as well. Nobody makes a good user interface who thinks that users pick apps based on price rather than quality. This, believe it or not, is a contribution.
* Yes, media players suck, but there is a MS standard UI `skin' for media player to, and just because they make some bad choices does it mean that OSS is excused.
* Yes, but before Linux runs the world there is.
Re: Shortcuts /usr/local/bin to create a Quake 3 link is fairly poor.
* There's no way to create a shortcut on the desktop withotu navigating to a specific binaries directory and draging it. Having to open Naultilus and navigate to
* There's now way to edit existing launchers.
* I was told both fo the above by a Ximian employee in monkeytalk after I wondered where these features had gone.
My GNOME is Ximian 1.4 with updates as of today on Linux, and regular GNOME 1.4 release on Solaris. And yes, Naultilus is still amazingly, unusably slow on both platforms.
GTKs cross platform bindings are in alpha for both Windows and BeOS. I think they might be for OSX too, but I'm not sure.
And yes, Galeon is good. Everything Mozilla should have been.
This isn't FUD. I use and like both, and I don't think GNOME is going to go away either. There's just going to be twenty times as many KDE users, who will still use a large amount of GTK based apps.
All of them are using 0.9, apart from the Athlon, which is running 0.91 and (since recently) Netscape 6.1 beta.
The rendering engine is fast (hence my comments in favour of Galeon but moving around the GUI isn't very responsive at all, in all ersions I've tried on all platforms.
And yes, the new (0.91 / 6.01) GUI is nice indeed.
Okay, I'll contribute my $0.02. I use KDE and GNOME's latest released frequently throughout my day between four machines across Linux and Solaris, simply because I like to stay current on these things.
As of right now:
KDE has a current stable release that's around two months old. GNOME has a current release that's unstable, and a stable release that's a year and a half old and not particularly capable. Again, on the same note,KDE has a working stable file manager and browser. Nautilus is still massively screwed, Mozilla is slow on an Athlon 900 machine with 384MB RAM, and this is at a 0.91 stage - a little to late to be worried about stability concerns. Galeon, unlike the rest, works properly, but still isn't finished. And GMC is...well, you know GMC.
KDE's desktop can create shortcuts. GNOME's used to be able to do this, but the Nautilus developers decided software antialiasing was more important than the ability to create a launcher without a text editor. This is a bizarre and unusual concept of usability.
Although GTK will be around for a while, QTs cross platform (X,Framebuffer,Win32,Quartz) capabilities make it very popular for anyone writing cross platform apps.
GNOME still doesn't present the window management / desktop as seemlesly as KDE does. End users don't see why they have to configure their look and feel from more than one place. The GNOME control center's `apply' `warning you made changes!' is unnecessarily scary. Sawfishs meta options aren't GNOME ones, and theres still much duplication in functionality between the two.
AFAIK there's no GNOME application design guidelines similar to the Windows / MacOS / KDE ones. Feel free to correct me otherwise.
Outside the Unix world (which is the world Linux needs to win over for the World Domination), C++ is vastly more popular than C - not that QT doesn't work with C (or that GTK doesn't work with C++ for that matter).
Both are severely broken in that they don't work with each other properly, and GTK/QT apps pened in KDE/GNOME look and work poorly. Not that they're in the menus to find or anything...
And both can't install standard packages graphically in a useable way (ie, multiple packages, retrievable from multiple sources with dependencies). GNOME's actually much better in this regard than KDE with Red Carpet, but I' not sure how easy it is for third partis to create Red Carpet `channels'.
If you read the interview you'll see that Jim Gettys points out that X is not bloated. More precicely, it gets the bloated reputation from moron unix users who dont know how to read top or ps correctly.
Further, he points out that the full X implementation for the ipaq runs in less than 700k of ram. (if you want Xrender extensions that'll cost you about 300-400k).
So lets cut the crap, X is not bloated. If you were trying to be funny.. ah well. nice try, but no cigar.
I encourage people to read the interview before commenting.
This is a really great posting. I wish that it was not anonymous so that I could contact you.
I do a lot of usability work. I'd be more than happy to help folks, but I have had a hard time figuring out who needs help and on what. I'm not a programmer, at least not a good one, so I am out of the loop on projects. Sure, I visit places like SourceForge but that doesn't help me much.
If you have an Open Source project with an interface I can look at, let me know. I might be able to run a few tests and we'll improve the interface. I'd be especially pleased if there was some way to earn some money doing this, but that is probably a capitalistic pipe dream.
Cheers,
- John
How to Download YouTube Videos
Jim Getty sounds like a great guy and great designer. I know a few people really respect his work. However, I wonder how much attention he pays to usability. That is one of the key problems with Open Source in general. Designs look great but are not always functional, especially to novice users. Some day, usability will be seen as being more important than raw functionality, right?
By the way, you might be interested in this set of slides. They are from Linux Expo '99 where Jim is doing a demo of Itsy. (Was that an early version of the iPaq?)
How to Download YouTube Videos
While I do use linux quite a lot (which sort of qualifies me as a linux geek), I think that most linux geeks think of a GUI only as a cool feature, not as a tool for helping people less obsessed with technology to simply just do their work. Every time I mention some sort of usabililty principle around a linux geek, I get the response of "That's what you want. That's not what I want. It's a matter of opinion" even though this UI principle has been proven effective in usability labs to allow the user greater, more effective use of their computer. I recently met this one guy who's well known throughout the GNOME community who justified some very bad and confusing UI design he did with the sentance "because I like it". When I mentioned some usability problems with this piece of software he created, this person couldn'lt understand what problem was. "It wasn't pretty enough?" he asked. Most of GNOME (and for that matter, KDE) is really the same way. I'm not saying that just the linux world is soley at fault, because most of the industry (including M$ and most other Windoze developers) are really the same way. The main difference is the windows world just cares about money and usability doesn't matter, whereas the linux world cares about being geeky and usability doesn't matter. Usability is simply not a priority despite everything these two groups of people say. I have been thinking more and more that it is time for UI designers and other people who want to create quality user interfaces to start a rebellion and design their own OS and desktop environment.
Heh. Someone with mod points like CDE! It was a joke, for chrissakes!
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
No, my comment was a joke, not yours. I've never heard any one refer to any random desktop environment as CDE or Common Desktop Environment. CDE is a particular product. I mean, I don't refer to all cars as Buicks... But then again, it's common for people in the American south to refer to any soda pop as coke. /me shrugs.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
Just look at BSD. ;-)
Seriously, I don't get it. I'm disappointed in Jim. With KDE/Qt being so much more advanced and polished at this stage, he's likely to have chosen another sinking ship. You'd think he'd know how to pick the winners by now.
His words on Qt/Embedded are also quite puzzling. You'd think he hasn't learnt anything about the computer market either... His vaporware X is certainly not suddenly going to appear and kill Wince or Qt/E off the scene, those two are already well on their way to "embedding" themselves in the market.
What he also doesn't understand is that KDE/Qt provide is a wonderful API to the developer. Raw X is simply way too complicated to do present day development. If it's Linux/X against Wince, Wince wins hands-down. If it's Linux/QtE against Wince, then that is another matter. Development time and facilities *do* matter in the embedded world.
At least he is straight up and says he does not speak for Compaq.
(Please browse at -1 to read this comment.)
He makes some very interesting remarks about the bloat the many people attribute to the X server. For instance, depending on the graphics card, the X server can look like it is using an extra 8 to 64mb of space that it isn't, due to the way it maps the display card. There is also some good information on current efforts to remove some of the bloat caused by other parts of the server, such as I18N.
--
...or you could just use one that's free and cross-platform already. [wxWindows]
You could, although you would have more power using Qt. I haven't used wxWindows, but what I do know about it is that it's a wrapper toolkit. This has advantages (app looks correctly on the target platform) but one big disadvantage is you have to work with the Least Common Denominator. I'd imagine you can't get real specific in your program because some widget or control may not exist on one of your target platforms. I believe wxWindows includes some of its own extra widgets (for those situations) but it means the ones that do exist are not extendable.
Qt solves this problem by working at the lowest level on each platform. All widgets are remade in Qt, from a color selector to a file dialog, so every widget is under your full control. It also mimics the native look of the target platform. This is one of the big powerful parts of Qt: Styles. Not only look, but the behavior as well can be changed. This is why Qt looks like an MFC app on Windows, SGI-like on SGI, and Aqua-ified on MacOS X. Insane? Maybe. But definitely powerful.
Sure, Qt is not free on Windows, but I believe paying for a license is worth it. There are many Trolltech customers who use Qt only on Windows simply because they think it is better than other Windows development alternatives! Maybe because it's easier to learn and maintain? I would agree, considering a "Hello, World" app in Qt is roughly 10 lines.
Anyway, use what works best for your project. I just wanted to point out that Qt is a pretty cool deal.
Have fun!
-Justin
- direct quote from Orson Welles' "Kane" character in Citizen Kane
is very cool. if only the e-economy hadn't collapsed and i could get good consulting positions and afford one :)
think for yourself, you won't like the results if others do it for you.
In that, it seems a lot better to me than Windows or MacOS, which seem to have adapted mostly to what sells boxes (a good showroom floor and out of box experience); by the time people have bought them, it doesnt matter anymore. Trouble is, what is particularly usable after a few weeks or months isn't wwhat sells boxes.
So, you have a situation where Windows and MacOS dont really have high usability for anyone, while Linux at least is an effective tool for experienced users. If anybody ever figures out an incentive for someone to develop something that has the long term usability of non-experts at heart, well, maybe then we can make progress. But that's more an economic/motivational problem than a technical one.