Slashdot Mirror


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

14 of 338 comments (clear)

  1. This is excellent by SoIosoft · · Score: 4, Interesting

    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. Hopefully, in addition to reducing latency, an effort will be made to improve some other areas in X. Copy&paste is still inconsistent in X and just annoying. Nonetheless, fixing the problems with X is a BIG step toward Linux being viewed as acceptable on the desktop. That is the one thing that particularly caught my eye.

    --
    Help me. I've been modbombed by a few people with entirely too much time on their hands.
  2. Re:Shortfalls of GTK+ by Anonymous Coward · · Score: 3, Interesting

    Does this mean they will finally debug Gnome and relates apps. I love the stylings of Gnome, Evolution, and Nautilus but I have never had an over-all good experience with them. Konqueror is much more solid and feature rich (connects to just about anything) than Nautilus, I have weird crashes and glitches with Evolution (w/ & w/o Ximian connector), but I use it because Exchange at work. And I have experienced very odd glitches with Gnome pannel.

    I have stressed KDE much more that I have Gnome with much more success. The only problem is KDE is ugly as hell and way over done with gadgetry.

    I don't mean to be so negative. Both projects show much promise, but both miss the boat in very different ways. I guess I'll just keep wiating on the side-lines in geekdome and leave my friends and family on Windows [I can't even interest them in the Mac]. Who knows, every once in a while Enlightenment shows some interesting potential.

  3. One good reason to like open-source software by Anonymous Coward · · Score: 5, Interesting

    When someone announces they will be working on a project -- low latency optimization, for example -- you can pretty well tell that they are *actually* working on it because the code is released and you can look at it. It might have mistakes, crash a lot, or be missing features, but another developer can build on it if the original coder leaves the project because of other commitments or just out of boredom.

    On the other hand, with proprietary code you are never quite sure where you stand. The company holding the source can claim they are spending the next month concentrating their resources on security issues, and if the program appears to be as insecure and bug-ridden as before you aren't sure if the developers took a month-long cruise to the Bahamas and blew it off or if they are actually inept at security. If you depend on that program for your own product, you can't even fix the problems you encounter if the developer decides to ignore or even kill the product because the source code is secret. And for those that have a paranoid bent, it's entirely possible for certain companies to sow FUD by claiming to be working on some incredibly desirable improvement they have no intention of delivering, or to leave hidden programming hooks which allow only certain products to use it.

    Too bad our founding fathers could not have forseen the entire source code/copyright issue. I would like to think they would have required complete specificity with regards to programs -- if you wanted to copyright a program, you would have to show exactly how it was created using industry-standard tools. It would not only prevent monopolistic power in one programming area (*cough* operating systems *cough*) from extending to another, but it would be one heck of a lot easier to prove copyright *infringement* because the source code from various products could be compared.

  4. Answer to WinFS by lawpoop · · Score: 4, Interesting
    This is something we really need if we are interested in getting users to convert to linux. Currently, linux apps put their crap all over the place. If we had true virtual directories* with drag&drop installation of applications, linux would be second to Mac for ease of installation and un-installation.

    Plus, if the filesystem is truly a relational db, then it can emulate and distro's directory tree for legacy applications that need it.

    *Not symlinks

    --
    Computers are useless. They can only give you answers.
    -- Pablo Picasso
    1. Re:Answer to WinFS by lawpoop · · Score: 4, Interesting
      It's not only the metadata, but the unification of virtual directories that gives the benefit.

      For any application or service you might have on your linux box, it probably has files in /bin, /usr/sbin, /usr/local/sbin, /usr/local, /etc, etc. etc. With virtual directories, you could have a setup like :
      /applications/$application/bin
      /applications/$application/conf
      /applications/$application/conf/$user
      /applications/$application/init
      And then to get rid of an application, just rm -rf /application/$application. No hunting around for all the places the app put its parts! I realize this problem is already addressed by rpms and debs. But still, this crufty old hierarchical file system is in need of updating.

      About the file organization -- most distros don't half-ass it; they have a rather good organization. The problem is that they're all different.

      --
      Computers are useless. They can only give you answers.
      -- Pablo Picasso
  5. Desktop is good, but falls a little short for me by wackybrit · · Score: 4, Interesting

    This is a bit of a ramble, and not necessarily meant to be modded up :-)

    I'm an advocate for Linux in many situations. I've bugged everyone to hell since about 1997 to use it in server applications (not much of a BSD guy). I think it works great in masquerading situations. For quite some time I've felt that no Windows machine should be allowed directly onto the Internet, and that a non-Windows machine should masquerade traffic onto the net. I also think Linux is a far superior development environment to any other. That said, I still use a Windows desktop.. why?

    For me the Linux desktop (or X with KDE or GNOME, as we're talking here) lacks a dock application. It also can't run everything I want without any hassles.. whereas I can just use VMWare/Virtual PC on Windows. Running Simcity 4 in VMWare under Linux, however, is not a great option ;-)

    As a developer, the Linux desktop also seems pretty scary. You've got KDE and you've got GNOME.. and the applications from the system you're not using can end up looking like ass. Of course, it's a lot better than developing for Windows, but we need more integration, and I'm glad OpenDesktop is trying to do this, and that GNOME and KDE are trying to work together.

    Also, I find Redhat 9 to be deadly slow on the desktop. SuSE 8 has proven to be much better (a KDE vs GNOME here?).. but I'm waiting for Fedora Core 2 (with the 2.6.0 kernel) until I make my next foray into trying Linux as a desktop OS. (I continue to use SuSE 8 via emulation for development purposes)

    But make no bones about it. Linux is using the right methods. Windows is not. Linux might still be behind Windows and OS X in many areas, but they have a far better foundation, and I'm confident the Linux desktop will prevail. And.. I can't wait.

  6. usable drop shadows by Doc+Ruby · · Score: 3, Interesting

    I like widget drop shadows with hard edges. That lets my eye automatically simulate the Z offset of the widget from its underlying surface, because the widget and shadow have identical silhouettes. When the shadow is blurred, it's just cosmetic; when it's edged, it helps me keep the widgets organized.

    --

    --
    make install -not war

  7. Re:DebSux by shaitand · · Score: 3, Interesting

    Hell I'll do it. Debian has precisely ONE thing going for it. A good package management system, and that package management system has been ported to run on top of RPM, thus eliminating the only good reason to use debian that's left.

    Redhat or a redhat based distribution has two good features. It's solid and easy, pretty much any task is at least 90% of the way configured how you want it out of the box and ready to go for most people.

    And of course hardware detection, the redhat installer is great and all (despite assuming anyone who is formatting in fat would want something other than fat32 and not even offering said filesystem in the installer) but the real bonus of course is the hardware detection, which surpasses all but MacOS (yes that includes windows, granted windows supports more devices, but not as many out of the box, if you insert a driver disc that's NOT out of the box, the ones windows does detect out of the box do NOT generally configure as smoothly as with anaconda).

    When I apt-get install squid on redhat, it installs squid and deps, squid is already in a functional configuration and just works. At that point of course I can change any aspect of the configuration I like. When I install a debian deb, I then have to configure squid, PERIOD.

    90% of the prebuilt packages out there that are NOT in apt repositories (things pretty much anyone will run into a time or two) are rpm's with no deb's available. So the redhat system provides a better handle here too.

    Now moving past hardware detection and package management. There is the matter of the rest of the installation. A text based installer is great and needed often (due to any distro's apparent lack of ability to make a generic x configuration which actually boots some lowest common denominiator gui on 99.99999% of video+monitor combinations like windows somehow manages to do, this can be done with X I know, because I've done it) and network installs. Redhat however has a text based installer as well that rivals debians (surpasses it if you refer back to hardware detection) AND has a graphical installer for those who don't actually feel they should have to read the screen because they perform numerous installs on varied hardware.

    Next you have the gui, redhat and debian have gone to fly a kite on this one. Although redhat is obviously closer with bluecurve. The first thing needed of course is a network neighborhood type thingy that does NOT try to integrate ftp and everything else on god's green earth. A simple samba configurator that DOES NOT reflect the options in the samba conf files and instead simply asks if the system is part of a workgroup or a domain, the computer name and the user name and password to use for windows networking. Then throw in an advanced button. When windows network ing support is chosen in the install then items should be added to the menu's to support sharing printers by right clicking, the same with folders.

    The options for user and password security should be available in the sharing window for an object as well as the ability to let anyone use it, phrased that way, not as guest.

    When you right click on the desktop there should be an option to create new text documents, folders, and the ability to create shortcuts needs to be more cleanly implemented. Create symlink should be in a seperate submenu under advanced, create shortcut should actually create a clickable shortcut on the desktop and try to create a short shell script and shortcut to cli executables.

    Copy and paste needs fixed. An standard co developed effort needs undertaken to develop something equivelent to install shield wizard. The distribution should not accept any software which does not include not only a binary package but an installer which finishes with said application or game in a FUNCTIONING state. In the cases of critical must have applications this could mean writing the installer, but for most should just mean providing libs we suited for this that the project can depen

  8. subclasses = versions by Doc+Ruby · · Score: 3, Interesting

    "Derived objects", subclasses, are new versions of the subclass. Not only do subclasses allow the code factoring to a shared base functional class, they reflect the iterative development of new functionality. That includes not only added functions and revised overridden functions, but also deprecation of functionality by overriding with null methods, without breaking the API. Subclassing allows an object of an old class to call an object of a new, revised class, using the same API, getting the current functionality. It brings the main benefit of OO, calling an API without dependency on implementation details, to versioning.

    Subclassing with multi-inheritance allows new classes with combined behavior of old ones, without necessarily writing any new code. Old objects can call the new objects by their old class APIs, successfully ignoring the extra APIs. GUIs are the code with which the user directly interacts; to most unsophisticated users, the GUI *is* the application - out of sight: out of mind. So as not to require users to retrain when they get new functionality or switch apps (back and forth), GUI design and execution requires tremendous discipline. Subclassing reflects disciplined versioning, and is all too often disregarded, at the peril of the application's fate.

    --

    --
    make install -not war

    1. Re:subclasses = versions by Doc+Ruby · · Score: 3, Interesting

      Some people would say that interfaces are code, just minimal. It's hard for me to say that (although I believe it), in light of my comment about multi-inherited classes not requiring new code :). What I'm getting at is the ability of subclassing techniques to offer a programmer maximum code reuse with minimal production, with all the productivity benefits (at that version, and rippling into future versions). Another nuance: not writing any new code does not equal no new design; in fact, production of design and code are usually inversely proportional, with a great scaling factor in favor of design (after some overhead).

      Encapsulation vs. subclassing is a design decision dependent on the phenomenae being modelled. Often the container class is extra overhead which doesn't reflect the real thing. Often the container class offers efficiency to the model. Even in nature, sometimes cells gain organelles, and sometimes cells gain new protein codons. It depends on the most economical options at development time of the iteration in question. Starting from scratch, especially with (visible) GUIs, I'd start with encapsulation reflecting only the physical structure of the metaphorical visual interface, and inheritance reflecting only code factoring. Then I'd look at the constraints of the event passing hierarchies. Any leftover gaps in message passing would be resolved in terms of the requirements and features of the design thus far. If filling those gaps required leaps of code disproportionate to their functional roles, or at odds with the approaches of the already specified design, or maintenance costs disproportionate to their benefit, I'd rework the design with which they interoperate in favor of simplicity.

      I too would love to see versioning systems which included language semantics in their version semantics. But I've been trying to get someone to work with me on "DBFS", a SQL database with a filesystem interface, for years, mainly so I can program metadata relations among my data that recognize that their relations' complexity is greater than a hierarchical tree. Proper version expression and version control each have a long way to go before they even meet on the road in the wilderness, let alone join forces.

      --

      --
      make install -not war

  9. Re:Maybe more automatic testing tools for GUI? by hacker · · Score: 3, Interesting
    "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."

    You mean something like Android?

    Android is the only open source testing tool for GUI programs. It can watch you work with a GUI program and as you do it will write a script that will enable you to precisely replicate your session. While you work with your program you can indicate testing points to android, taking snapshots of the screens that are supposed to appear. Later, when re-running the tests, android will check to see that these screens remain as expected, and will signal a test failure should any of them change.
  10. The lesson to be learned by arvindn · · Score: 4, Interesting
    Heard of the joke that a camel is a horse designed by a committee? Well, Linux on the desktop is something like that. So far. You have disjoint teams of hackers working on different parts and there's no "unifying vision". Simple things like copy-paste wouldn't work because it requires developers to coordinate. KDE and gnome were a great step forward, but again the unity came from common underlying libraries rather than people working together.

    In the light of this, the recent explosion of corporate interest in Linux on the desktop has been a huge boon. They have the resources and the need to integrate various components. There's no way freedesktop.org could have happened in the old scenario. The amount of integration work that has happened/is happening in the last couple of years is stunning. I lurk on both gnomedesktop.org and dot.kde.org, and the attitude of the developers towards integration has changed significantly.

    I'll stick my neck out and predict that with the new audio infrastructure materializing by middle of next year, LotD is going to be so kick-ass by end of 2004 that the only MS can stop us is if they manage to make linux illegal.

  11. Re:Translucency by caseih · · Score: 4, Interesting

    It's not transparent windows per se that we are looking for. It's the ability to have completely smooth, shaped edges and better anti-aliased text. It's also amazing what a little candy like a real drop shadow does to the UI. It helps your eye see the edges of ui elements better. On OS X, for example, many windows have no frame around them at all. But they still look like a window because of the light shadow that is drawn underneath it. This allows two completely white rectangles to be stacked on top of eachother and still look like separate windows.

    True transparency will also help in drawing icons without resorting to the current nasty hack of having to grab the background pixmap and then blend the png into it.

    Essentially translucency (true alpha-channel support) in the x server is a great boon to us all, especially those into art and drawing, but also just those of us that want a desktop with no more jaggies.

    Finally, this support for alpha channel and window compositing actually makes the gui appear much faster, because redraws are virtually eliminated. If you want to go back to the old Windows 3.1 (or even GEM) interface of low-color, jagged edges, go ahead. I'll save my eyes.

  12. Does linux really have desktop future? by jarek · · Score: 3, Interesting

    In this increasingly mobile world, you still can't roam the desktop (meaning disconnect the desktop and reconnect to it somewhere else). Even using a T1 and LBX (low bandwidth X) you have to be pretty patient in addition to slightly humiliated when you see Windows Terminal Server users do the same stuff using a regular phone line and a modem. It's sad considering that the rest of the technology has so much to offer.