Hackers on Linux's Exciting Desktop Future
Gentu writes "OSNews features two interviews with prominent open source developers: Robert Love started working at Ximian this week and he will be leading the 'effort to improve the Linux desktop experience via kernel development'. In this Q&A, he explains what he will be working on hardware integration, freedesktop.org's D-BUS & HAL, low latency optimizations, power management, X & 3D and a 'Linux answer to WinFS'. The second interview is with Red Hat's Owen Taylor. Owen speaks of GTK+ development and where he sees the project going in the Gnome 3 timeframe: freedesktop.org's new X server, Cairo support, GTK#, OpenGL & other widgets and more."
Many GUI programs (in linux or otherwise) are buggy. They may crash if you use them in an unexpected way (and since you are just randomly clicking around, it is hard to generate a bugreport). Many of them also have annoyances like poor focusing (many applications are not very usable with keyboard only), inability to paste from a certain place to another certain place (copy-and-paste works in general), unnecessarily destroying the primary selection (use for middle-click pasting which is very useful against traditional X apps) without ME selecting anything, etc. There are just too many things to test, and it is cumbersome to test all of them manually before each release, while lacking a testsuite greatly lowers software quality (imagine how buggy gcc will be without a testsuite). Hopefully there will be some free tool that automate the process of "test case1: click file, click open, choose /home/xx/ss.xx, choose node33 in treeview, TAB", so that the GUI parts of GUI applications can finally be as well tested as traditional command-line applications.
It seems that there are many here who are flaming any topic that relates to mainstream desktop penetration of Linux.
I thought this was the point of the GNU system? Isn't any step forward (KDE, GNOME, etc.) towards some degree of appealing to users a win for the Freedom of GNU?
When I first used Linux and I ran X, my thought was "damn, this is slow."
The only problem I have it trying to find the right modelines and configurations for higher resolutions and refresh rates. Things are better, configuration tools are almost complete.
But speed? Nope, even playing games in Vmware is fast.
Uhh...right...because C has all of those things...
You're 100% right, it doesn't. But the current crop of popular programming languages is almost equally lacking in these regards -- C++'s templates are basically textual substitution, you can't type-constrain template arguments, you just have to see if it works; Java's generics are still in development, but other than that Java's libraries are already a total mess. Since the least common denominator isn't much worse than the best of what's popular, might as well keep the flexibility of C so that we're not tied to a incompatible halfway solution when the right thing finally comes out and is accepted.
I don't agree. While virtual directories are cool, how many files actually have that much metadata? Many audio files, some MPEG, and many office suite files (OOo, MS Word). Many other formats do, but it is inconsistant or is some useless (and inconsistant) comment, like "Created by the GIMP". Other than that, with virtual directories, you are adding massive overhead that could easily be avoided by even half-assed file organization and using a good file manager.
I don't think the question is really whether or not linux is the superior solution or whether or not it has the potential to swarm this area of computing as it has every other.
I think the issue is really about whether or not it can do it fast enough. Not just because windows is already entrenched and uprooting it is harder than it would be to beat it in even competition. But because When the next release of windows comes out with it's DRM and included bios and the boards stop having them, all the sudden you can't run linux anymore and then linux is dead. on the server and embedded side there will always be reasonable options for this I'm sure. But on the desktop?
This is true, and if they designers of GTK+ had taken this wisdom to heart, all would be well. Instead, they made the dubious decision to write an entirely OO toolkit on top of a strictly procedural language. And the results are just horrid. The plain reality is 90% of all the UI programming is done using preconstructed widgets--button, textbox, image, whatever. Some people, myself included, think that for consistency's sake that number should be closer to 100%. Newfangled widgets tend to confuse the user unless they're done well, which they're usually not.
I think there is a world market for maybe five personal web logs.
The most important thing about debian isn't necessarily that apt is cool... it's that the package managers put a lot of work into producing and making sure only good packages get accepted. Like you said, the packages aren't hostile to people making changes to conf files and they try to provide as much documentation as possible about how they've set things up. Apt-on-redhat won't fix that unless you pull in all of the packages from debian package managers, at which point you've got debian anyway.
As for installing a good system with reasonable defaults... this might not be quite as well known, but try this 1) burn knoppix, 2) boot up into knoppix (notice that your hardware is autodetected just like redhat/suse/whatever), 3) run knx-hdinstall, 4) click through 19 simple dialogs, and voila, you have debian installed on your hard drive with hardware detected and tons of reasonable defaults picked. The only place it's semi-lacking i that it doesn't have a TON of things installed (but it does have quite a lot as anyone who's played with knoppix can tell you) since it's just once CD for god's sake (eg. it's missing tcsh), but as stated, it's trivial to do "apt-get install tcsh" to get whatever else you want.
And then to get rid of an application, just rm -rf
As I see it, there are two ways to do it. You can put binaries together in one location and keep a database of the other files in the app (what dpkg/rpm do now), or you can put all app files together in one location and keep a database of where all the different binaries are (what you're proposing). Aside from installation (and is drag-and-drop really that much easier than 'dpkg -i' or the graphical equivilant?), I don't see much benefit to switching from the current system.
It's hard to be religious when certain people are never incinerated by bolts of lightning.
The point of WinFS isn't that the file formats have metadata associated with them, rather you can assign whatever metadata you want with any random file, and then organize those files based on the metadata.
The whole point of such a system is not to force the user to conceive and manually maintain a file structure. And once you create that file structure, you are limited to dealing with the data it contains by that file structure.
Sure, it may have seemed like a brilliant idea 18 hours ago when you decided to re-organize your mp3's into folders by artist, then album, and then song. Until you come across a song with two artists in it. Or when you want to look for a specific album but don't remember who sang it.
The point is that manually organizing your files is a cludge to do what you really want to do: be able to find what you're looking for quickly. Since it is a manual process, it is slow, error prone, and a royal pain in the ass.
The most important thing about debian isn't necessarily that apt is cool... it's that the package managers put a lot of work into producing and making sure only good packages get accepted.
Thank you! I was just about to post the same thing. It's not just the format, or apt, it's the work that goes into the packaging as well. I used apt on suse and mandrake, as well as urpmi in mandrake. And while both were great and quite comparible in technology, I couldn't depend on them like I did apt in Debian because there just wasn't as many people putting together and updating packages. I did a dist-upgrade earlier today, and at 9pm there's already 36 packages with updates available.
Everything will be taken away from you.
and at 9pm there's already 36 packages with updates available.
Ya, and those are all old versions from like a year ago, LOL, nice updates....
It seems what you're talking about is our regular old hierarchical filesystem with a rdbms keeping track of locations. The idea of the dbfs is that it totally replaces a hierarchical filesystem. The user would never see a tree or a hierarchy. The rdbms decides where on the disk to put data. It then presents the data to the user in a way that closely mirrors the relationship of the data. The only reason we still use the hierarchical filesystem is pure cruft.
Computers are useless. They can only give you answers.
-- Pablo Picasso
Who gives a flying fuck? Translucency has to be the most overhyped, useless, wasteful feature I've ever heard of. Ooooh look, I can make my menus hard to read. WTF. Can someone please explain all the effort being put into this completely useless feature?
..'Linux answer to WinFS'..
;)
:(
:)
:/ like it or not.
linux needs to stop answering, and start innovating
the masses seek bleeding edge. not last year's bleeding edge
don't get me wrong i love gentoo, and i was hoping linux could beat windows to the 3d desktop (see longhorn's specs re: d3d)
an opengl desktop (assuming linux) would be
1. FAST FAST FAST !!! WEEEE
2. pretty
and would win a lot of people over
also it would improve graphic driver support through neccesity, and with that comes a better foothold for the gaming industry, which is also another drawback for linux
-judging another only defines yourself
In short, debian sucks, redhat has surpassed it
So, does this mean I can now upgrade from Red Hat 7.2 to Red Hat 9 with a single command?
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Everyone is always so enthusiastic about the Linux Desktop, Linux for the average user, Linux instead of Windows, etc. I understand the basic desire to share a good thing, but is it really necessary? IMHO, if Linux ever really replaced Windows as the standard desktop OS, it would just be a bigger target for greedy lawyers and corruption.
I believe that as long as the Linux community remains a sizable minority, the true spirit of the OS will remain intact. People are always talking about how to make Linux so incredibly user friendly that anyone can use it. But I've always thought of Linux as the operating system for those who care about the operating system. It seems to me that instead of trying to overthrow the big, evil corporations (though it sure would be nice from a legal perspective. IE: SCO), we should instead try to do nothing more than offer the choice of high-quality computing. I just happen to think that most Linux users use Linux BECAUSE it's not as user-friendly, BECAUSE you have to know the filesystem, and so on.
I think that the only real "Linux Revolution" will come about when the people who know what they're doing are able to choose Linux based on merrits besides "user-friendliness." It just seems to me that they're trying to dumb down the OS (take Lindows as an example, which by default only creates the root user in the installation) to accomplish a goal that is actually not necessary (market presence is good, but dominance?). I just think that some developers are lowering their standards to win more converts.
Esoteric reference.
Copy&paste is still inconsistent in X and just annoying.
Copy-and-paste is completely consistent in X. As is the selection mechanism. What is inconsistent is the support by toolkits and applications for them. Unfortunately, Gnome and KDE both are to blame here. Instead of supporting X11 conventions, Gnome and KDE are each doing their own thing, mostly like Windows but not quite, and definitely inconsistent with X11.
When I first used Linux and I ran X, my thought was "damn, this is slow." This feeling is echoed by a lot of other people. It's nice to see that a replacement is on the way.
X is not slow--it's as efficient or more efficient as Windows GDI, and it runs rings around Macintosh's Quartz. All of them are, of course, client-server system so there is no particular reason why X should be any slower than the other systems.
What makes X-based desktops slow is the desktop environments themselves. In part, that's because some desktop environments try to emulate graphics primitives in client code that X11 does not support (e.g., transparency, anti-aliasing), and in part it's because they don't take into account the client/server nature of X11. And in part, it's because they are just slow completely independent of any display-related functions (e.g., inter-application communication, huge memory footprints, etc.).
Identifying the bottlenecks correctly matters a great deal: if you are trying to fix Gnome or KDE performance by hacking around in X, you are mostly wasting your time.
The only thing on the X server side that will help a lot is the RENDER extension, because the RENDER extension for X is eliminating the need for Gnome and KDE to emulate graphics primitives client-side.
I think Linux is going down the Windows path: ever more junk gets added to the system in an attempt to make everybody happy. That just can't be good in the long run.
Think about how many IPC mechanisms there are now: TCP/IP, UNIX domain sockets, SystemV IPC, BSD memory mapping, various kernel-internal mechanisms, file-system based mechanisms, etc. And now we get added to that netlink and D-BUS?
Similarly with file system hacks: we get several incompatible user-level VFS implementations, numerous kernel file systems (many of which have their own non-UNIX semantics and extensions), we get WebDAV hacks on top of CODA hooks, we get NFS loopbacks for cryptography, etc.
Yes, something like netlink does make sense. I'd also put something like VFS into the kernel. But in return, a lot of stuff should be officially deprecated and eventually removed from the Linux kernel. That will break software, but it is vitally important for keeping the entire system manageable and comprehensible. (I suspect that part of the attraction of BSD is probably that it doesn't have as many features as Linux--it's simpler.)
Furthermore, creating all that wonderful functionality for Linux isn't going to do any good if systems like Gnome don't start relying on it. That is, if the Linux kernel were to offer a unified namespace, Gnome should drop VFS even though that means it won't be able to run as well on Solaris and BSD anymore.
Of course, all these things will eventually fix themselves by selection in the market place. However, I would hate to see that selection happening by Linux and Gnome going away entirely because they have become too unwieldy.
Debian maintainers care more about bitching on mailing lists and creating deb packages than actually WRITING ANY SOFTWARE
Debian has the worst installer in the entire Linux world. After years of complaints, message board flames, donated code from Progeny (which they completely discarded!), and users actually recommending people use KNOPPIX as the best way to install Debian (WTF!?), they finally release a "new" installer... a piece of shit running an outdated kernel
Debian is so behind the times that they consider kernel 2.4 to be "experimental"
Debian is losing mindshare as devs and users jump ship to Fedora and Gentoo leaving behind old men who care more about open source idealism than actually writing software that works
Install a modern Linux distro and you will see why Debian sucks. In 2003 most linux distros actually fucking work out of the box. They set up X and your soundcard. They detect your hardware. Something most computer users have enjoyed since 1992 WHEN WINDOWS 3.1 WAS RELEASED. Debian, on the other hand...
Debian Linux: bringing you yesterdays technology today.
Yeah, programs are probably one of the only copyrighted items which can't be understood in their distributed format. Music can be listened to and edited, videos can be watched and clipped, and books are accessible to anyone with an eyeball, a brain, and some free time, but a program is essentially a chunk of opaque binary data, which is completely incomprehensible without the source code. Meanwhile, with patents, we have machines which are in a mechanical form which is also completely incomprehensible, but then we have a requirement that the design be published in a manner which any reasonably skilled person can understand.
This just points out the glaring flaw of software copyrights. Binary code doesn't add anything to the general pool of human knowledge; only the source code is of intellectual value. The binary representation of software is like the physical representation of a blueprint. If the source code of a program is lost, the program, as a intellectual work, also becomes lost. To use an analogy, it'd be as if books read themselves, and everybody was illiterate. Once the books break down, the information contained in the books become lost. This calls into question the whole point of using copyrights to encourage and reward authors of software, since the authors of proprietary software aren't actually providing anything of value to the public except a machine (and we obviously don't give our cars copyright protection, even if the blueprints for a car does).
To raise the DRM issue, DRM is making traditional copyrighted media more like software (can only be used, can't be reused), rather than having software become more like books and tapes.
How does the system know where the binaries are if you put them in application specific directories? This is one of my huge gripes with windows, you can't just type a program name in the run dialog and expect it to open (unless you add each and every program directory to your path). /etc Then I can back it up in one fell swoop. Having it all scattered would blow goats. Having to go to 8 different directories to change configuration files.
I love the fact that I can run any program just by typing it's name. Usually faster than hunting for it in a menu. And its great to have all configuration in
Most of us probably value the Freedom of Speech and the lack of censorship more than we want a censor app built into the system.
Teach your 2 year old proper values as he is growing up and he'll be able to make the same (or more likely, different but similar) value judgements you are making. If you shelter him from it, he'll just seek it out out of natural curiosity about what Dad's so freaked out about anyway.
I'd be proud of any 2 year old who could read Slashdot anyway, even if the content might have to be explained by their loving parent.
He (and you) will be fine.
+++OK ATH
I often see the comment that X is slow, something I've never understood. I too ran linux and X on a 486. Specifically, I was running XFree86 3.3.3 (or 3.3.6?) with linux 2.0.35 (yes, I had that 486 for ages) on a 486 66MHz with 16MB ram.
You know what? It was roughly comparable to running Windows 95. I didn't think "my God, this is slow", I thought "this is rather similar to 95". FYI, running 95 on that 486 felt just like running XP on my Athlon 2Ghz, for comparison.
Of course, I was running WindowMaker on top of X, not something like KDE or GNOME. Perhaps that accounts for some people thinking X is slow, I have no idea. In any case, I _still_ don't run KDE or GNOME, even on my Athlon. They really are horribly slow, and I can't say I've missed their added functionality. Maybe my usage patterns are just different.
But no, if someone claims that X itself is slow, they either aren't being specific enough, or they're mildly ignorant of what's going under the hood.
Not to excuse GNOME or KDE. Egads, they make XP look fast on my machine, and XP really sucks.
In any case, I welcome another contender in the X arena. Keith sure knows what he's doing, and his work looks veeeery promising.
Seems to me that in order to succeed on the desktop market, a consistent and well designed UI is needed. While /. is filled to the rim with OSS hacking gurus, what about all those OSS UI designers that must be out there hiding somewhere?
I guess all I'm saying is that while optimizing the kernel is neat and all, your average user won't recognize any more than what's in front of him, and I sincerely believe that more than good response times are needed to impress someone enough to leave an OS that already has a consistent design and style guide in it's UI (read commercially developed UI's).
While having several options (KDE, Gnome) is nice, the lack of enforced style guides and behavior patterns will inevitably give the user a feeling of inconsistency.
Enough trolling for one day, merry christmas.
Maybe not from 7.2, but you can now update from Red Hat 8/9 to Fedora 1 with one command using apt-get or yum. And of course from Fedora 1 to Fedora 2 and so on.
Looks like you're going to have to find something else to complain about. See, unlike Debian, Red Hat and other distributions are updated twice a year and what was true in 1999 is old news today.
Usability: Not just "that GUI is pretty" but also "this GUI is compatible with most people way of thinking".
Consistency: Not just "look, ma! I got translucent Windows", but also "all my applications act and feel the same, I don't need to learn how to use 38674 interface styles".
Standards: Can we have solid APIs based on well documented standards? Like something that allows me to run a 4 year old binary, and not just source-based apps?.
That's all I want, not a collection of pretty demos, but a real desktop.
For what it's worth, GNOME applications launch faster, but their runtime performance seems to be (subjectively) slower to a lot of people.
A common issue is the "menus paint slowly" issue - it seems and _feels_ like GTK+-based applications have slower menus because they delay the pixmap instantiation until the first menu rendering, and then the pixmaps get pulled off of the disk and actually put into RAM. So dragging your mouse across a menu bar in a GTK app right after you launch it (and waiting for each menu to render) feels laggy. Also, resizing seems to be slow in GTK+, probably due to some unoptimized routines in Pango. And the fact that they double-buffer everything that they draw has a distinctly negative effect on performance, as well.
Qt applications, and by way of inheritance, KDE applications, on the other hand, tend to be the exact opposite - slower (on average) to launch, which is being solved piece by piece at the system level (caching of vtables with things like prelink and newer smarter glibc versions has had a wonderful effect on startup time with C++ applications), and faster while running, because more things are loaded into memory at startup. Not every widget in Qt is double-buffered, as well, which makes rendering less complicated and thus faster. Also, smarter KDE developers than me have come up with some very neat tricks to make KDE applications launch and run faster, especially with KDE 3.2, so any comparison of GNOME with KDE 3.1 is going to be very out-of-date soon.
-clee