Slashdot Mirror


Writing Apps for GNOME *and* KDE?

Dr. Tom asks: "I want to write an application that will play nice with both the GNOME and the KDE desktops (and possibly others). Without having developed anything for either, and after glancing through some of the docs, it seems like GNOME apps need to be written with GTK+ while KDE apps need to be written using Qt. Since I don't want to write my app twice, I'd like to know if there are any tools/abstraction layers that I can use to get some desktop functionality without having to worry about which desktop I'm running on. I expect this problem to have relatively wide interest as I notice quite a bit of duplication of effort among the different desktop applications (Knotepad, Gnotepad, Kcalendar, Gcalendar, etc.). It would be nice if some of that code could be shared -- or are desktop apps doomed to be tied to a particular desktop?" I certainly hope not. Applications which work on both frameworks are a necessity if Linux is to become a choice for the general desktop user.

220 comments

  1. GTK Themes by Anonymous Coward · · Score: 0

    What I would like is just some sort of wrapper for QT apps that lets them use GTK themes. And vice versa. Thats about the only thing that annoys me about running GTK apps under KDE and KDE apps under a non-KDE WM. Is there any such thing in existance? Or in development?

    1. Re:GTK Themes by Anonymous Coward · · Score: 0

      The KDE people have said in the past that they will make gtk themes compatible with qt 2.0 and KDE 2.0

    2. Re:GTK Themes by japhar · · Score: 1

      There is now, I've been looking for something to code, I'll start on this tomorrow, kdentdev@hotmail.com for any interested parties, and BTW, when can I give out japhar81@slashdot.org for an email? I'm stuck using a M$ portal cuz of hotmail...

  2. Gnome and KDE apps by Anonymous Coward · · Score: 0

    I use kmail with Gnome. No problem, I just had to install the libraries (qt-1.44 in that case).

  3. It is really necessary! by Anonymous Coward · · Score: 0
    Do I really need to distribute two versions of an application to make it usable for Linux? I would hope not. I am not suggesting at write once, run anywhere of Java (though that is an idea too).

    The idea is that it should run on either, cuts down on the number of potential bugs that happen from two different codesets. I know about #if, but it is still seperate code.

    Now if there was a very thin abstraction layer....hmmmmmm....that's an idea. :)

    Bill Silverstein

    1. Re:It is really necessary! by Anonymous Coward · · Score: 0

      I use KDE, but I have no trouble running GNOME/GTK applications. You just need to have the libraries installed. Write one version of the program, using whatever widget set (QT/GTK/Motif/etc.) you like best, and make sure your users install the required libraries. This should work fine unless you use desktop-specific features (ie. Docking into the tray).

  4. Re:KDE & GNOME Development. by Anonymous Coward · · Score: 0

    hehehe I found your perl humor to be rather funny... which is rather said that I am laughing at this stuff... on another note .. it sounds like you are talking about adding another layer on top of kde/gnome. It is an interesting idea but both kde and gnome are a bit slow (IMHO) It would be better if there was a way to intergrate the two at a more base level.. sort of like provide wrapper interfaces to each other.. ie qt wrappers for gtk and gtk wrappers for qt.. althogu I do not see this as being possible..

  5. Hear, hear! by Anonymous Coward · · Score: 0

    I'm not a Smalltalk programmer, but your advice is perfectly appropriate no matter what language you choose. Unless speed is absolutely critical, it is always good practice to encapsulate the various interfaces of your application.

  6. Re:More general question by Anonymous Coward · · Score: 0

    I personally like wxWindows, which works for Unix, Win, and Mac (although the mac port seems to be a bit behind).

    There's a list of many cross-platform toolkits here.

  7. Re:Get with the times - write WEB-BASED apps by Anonymous Coward · · Score: 0

    Who says HTML (and/or the rest of today's web-based platforms) have to be the last word.

    HTML's been in broad use for what, 4-5 years. Is there any rule that says there can't be a new technology developed that makes it a snap to develop REAL apps that run over the net instead of the pretty, but minimally functional apps of today.

    I mean, Slashdot comment form I'm now typing into is about as good as input gets in today's web apps, and it's pretty primative.

    So, NET-BASED apps, yes. But not necessarily WEB-BASED. Let's all start thinking about and building a platform for the future.

  8. Re:write for gnome, kde sucks by Anonymous Coward · · Score: 0

    You do have a point - KDE basically sucks. It's a cheap looking rip-off of Windows, IMO. The widget spacing is too far apart on toolbars, the buttons seem to 'fat' for my tastes, etc...

    'KDE is ugly as hell' True.

    Maybe you need to think a bit more about how you say things.

    I've used both and now use GNOME or WindowMaker. No KDE in my world.

  9. Write for GTK-- and QT by Anonymous Coward · · Score: 0

    Both sound pretty similar, and you could just use macros / #defines like this: #ifdef USE_KDE #define MyWindow KTMainWindow #else #define MyWindow G_Main_Window (or whatever it is) #endif I've thought about doing something like that, but instead I'd love to write a C wrapper for QT because some GNOME people can't do without the Most Holy Language C. :( Personally, I think that Gnome has some nice bindings, but developing for a wrapper, like GTK--, can be annoying.

    1. Re:Write for GTK-- and QT by Kenelson · · Score: 1
      There may be some problems doing that. Most notably the signal system libraries between Gtk-- and Qt are not compatable, nor can they coexist easily. Qt does not properly respect namespaces and thus wipes out names used by the other. This forces the user to have to chose to use the Gtk-- signal system or not. (Gtk-- signal system is now seperate from Gtk-- as Libsigc++ so that it can be used for such cross toolkit uses.) Libsigc++ does avoid the Qt keywords when it detects them, but it does degrade use slightly. (Apparently Qt was granted sole license of the word "emit" even though I can't find it in any standard. ;-)

      If you could comment more on what you find annoying about programming in Gtk--, I would be glad to hear it. We are working to complete version 1.2 very soon now with improved speed, features, and documentation. Any feedback would be greatly appreciated.

      --Karl

  10. Re:write for gnome, kde sucks by Anonymous Coward · · Score: 0

    Here here! I still use a simple TWM variant (CTWM, if you must know). Fast, stable, and no bloat penalty for icons, and other useless clickety click things.

  11. Abstraction Layer by Anonymous Coward · · Score: 0

    Creating an abstraction layer has already been mentioned before in previous posts. For more information take a look at the Abstract Factory design pattern in "Design Patterns: Elements of Reusable Object-Oriented Software"

  12. Try again - KDE 1.1.2 by Anonymous Coward · · Score: 0

    You should try the new 1.1.2 version of KDE. The themong capabilities are much improved, and the icons look really neat now.

    KDE 2 has a more MACish look as a default, and is extremely configurable...
    Try the Beta (if you have >=128mb ram...)

    1. Re:Try again - KDE 1.1.2 by Anonymous Coward · · Score: 0

      If it requires that much memory, it's back to fvwm2 for me. Me only gots 64 meg in a two year old computer. I'm not ready to upgrade my hardware just to run KDE.

    2. Re:Try again - KDE 1.1.2 by Anonymous Coward · · Score: 0

      *Compiling* requires that much memory, not running it.
      Of course it won't hurt to run it either :-)

      But essentially the Corba stuff take exorbitant amounts of mem and time to compile (KWord and Konqueror need up to 70mb for compiling, so 96mb should save you some swapping)

  13. I hate GNOME vs. KDE war by Anonymous Coward · · Score: 0

    I like the fact the someone is facing same problem as me. I am currently porting my most importatn application (Arachne WWW browser) to Linux, and I want to have both fullscreen (SVGAlib) and X11 version. But I don't want to write the X11 version twice for GNOME and KDE. I am usually running KDE as main desktop, while GNOME panel is (drag'n'drop create ;-) link in my Autostart folder. I like many of GNOME features, but my general feeling is that console version of Midnight Commander is much more powerful and stable than gmc. I miss some features of mc in kfm, so I basicaly use konsole (xterm) with text mode Midnight running all the time... Basicaly, KDE is more consistent: when deciding between gdm and kdm for our office network with dedicated X11-based application server, we had to choose kdm, because gdm was refusing xdmcp conections. I also experienced much more GNOME instabilites and crashes... but I hate the fact that I can't use Enlightenment in KDE. Etc, etc. I feel like victim of "desktop war": I want to fight with Windows ! I don't want to join any party in KDE vs. GNOME war. I am using KDE just because it works slightly better and its longer around, so I have learnt lot of tricks; GNOME looks promising, but it was not completely translated to Czech language, etc.

    1. Re:I hate GNOME vs. KDE war by tjhanson · · Score: 1

      Ain't that the truth. What I hate is this "QPL" which had to be invented so Troll Tech could still gatekeep the libs. I would use KDE if it were either GPL or LGPL, and I mean the whole thing, including QT, or an LGPL replacement. It's too bad Harmony fell flat. I would have named it "dischord" or "QFree." KDE has some nice qualities but I won't touch it until they dump QT and that ridiculous licensng scheme.

    2. Re:I hate GNOME vs. KDE war by SonofRage · · Score: 2

      I find it funny that you want to use Enlightenment with KDE. In my experience, Elightenment is the thing that always made GNOME seem so unstable. I switched to WindowMaker (with GNOME) and it has been way more stable than either KDE or GNOME w/ elightenment. X hasn't crashed once since I made the switch.

  14. www2.jorsm.com/~mosfet by Anonymous Coward · · Score: 0

    click on "Widget Themes"

  15. You sir, are a stupid fuck. by Anonymous Coward · · Score: 0

    Stop spreading FUD. You can write an app with whatever goddam toolkit you please, and it will run FINE under both KDE and GNOME. It wont have the same look/feel, but it will interpoerate (DND and everything) with all of it. Do you think netscape is a gnome or kde app?

    1. Re:You sir, are a stupid fuck. by Anonymous Coward · · Score: 0

      And where are the enhanced KDE/GNOME features in Netscape? Last time I checked there weren't any.

  16. Can you explain how it is "limited"? by Anonymous Coward · · Score: 0

    I code KDE/Qt daily and it is by far the most flexible toolkit I have used...

  17. Re:without Gnome or KDE? by Anonymous Coward · · Score: 0

    Well, he has a point. GNOME apps often don't offer much more than pure gtk apps, while taking up more RAM and compile time. In most cases it would be sensible to make GNOME linking a compile-time option, if you use it at all.

    KDE currently offers more "added value" to Qt that GNOME to gtk, and is more stable. So the memory toll is acceptible more often IMHO.

  18. Real Problem With Moderators by Anonymous Coward · · Score: 0
    I've seen a few insightful comments in here that recommned setting up client/server apps through the web as opposed to EITHER GTK or KDE. This isn't "off topic", its called insight.

    The poster of those comments is right. The web is the interface. GTK and KDE are simply linux answers to the 80's "widget-centric/shrink wrap/CD-ROM distributed" paradigm pushed by Microsoft.

    Sheesh people, be a little more open-minded.

    1. Re:Real Problem With Moderators by Anonymous Coward · · Score: 0

      Well, that's fine and dandy. But I'm interested in building my own web browser. I downloaded the M9 release of Mozilla. It's OK but I know I can build a better looking browser. I'm a big IE fan and I don't know when I can expect Microsoft to port IE to Linux. So, if I don't like the one and the other isn't available, I'm on my own to build something I like. In this case, I can't use a web interface to build a web browser. I'll have to choose between GTK+ or Qt. Even, Mozilla uses GTK+.

    2. Re:Real Problem With Moderators by Guy+Harris · · Score: 2
      The web is the interface.

      The interface to everything? A Web browser can replace all the stuff in KOffice, can replace the GIMP, can replace XMMS, can replace Ethereal, can replace....?

      Yes, there are a lot of applications that can work as client-server Web apps; I have yet to see anything even remotely resembling solid evidence that all applications can be recast in that fashion.

    3. Re:Real Problem With Moderators by Guy+Harris · · Score: 2
      Do you care how well it works

      Yes, at least up to a point; if it works too poorly, what's the point?

      & does java applet based systems count?

      No. A Java applet is just a small locally-run application that happens to be written in Java rather than in some other language (or, perhaps, "that happens to be distributed in the form of Java bytecode" - something distributed in Java bytecode form wasn't necessarily written in Java, as there exist compilers that translate other languages into Java bytecodes, e.g. the JPython compiler) and that happens to use whatever toolkit the environment in which it's running provides. Interesting, potentially cross-platform (if you don't manage to use some platform-specific classes, say), but not the same as the examples many people were giving, e.g. Slashdot or Web mail and calendar systems, wherein "the web is the interface" - if your browser happens to pop up some Java applet that handles input events, I/O, etc. itself and provides its own UI with its own code, the Web isn't the interface, it's just the pipe over which the code for that application was delivered, and perhaps the pipe over which it talks to some server, but if that's sufficient to make the Web the interface, a boring old "widget-centric/shrink-wrap" application downloaded via HTTP "makes the Web the interface" as long as it includes HTTP client code that it uses for some operations.

      (Besides, I rather doubt you can make a "Java applet-based" version of the GIMP, or of the other applications/suites I mentioined, for one simple reason - by the time you're done, it'll probably be too big to be called an "applet". "Applet" isn't short for "application written in Java" or "application delivered as Java bytecodes"; the "let" part is a diminutive, indicating that it has to be a small application before it gets to be called an "applet".)

    4. Re:Real Problem With Moderators by Trojan · · Score: 1

      GTK+ is standard for Mozilla on Linux/UNIX, but the source tree includes (or will include soon) front-ends for QT and even plain Xlib.

    5. Re:Real Problem With Moderators by penguinicide · · Score: 1

      Do you care how well it works & does java applet based systems count?

      --


      penguinicide... when jumping out a window just won't do.
  19. No Linux users run CDE by Anonymous Coward · · Score: 0

    And Linux if the future of Unix.

  20. Best bets by Anonymous Coward · · Score: 0

    Realistically, you have two choices. Both will cause your application to be mildly Gnome-centric, but such is life: - Use WxWindows. It currently only supports GTK, but a Qt port is in the works. - Use GTK. KDE has partial support for GTK, in that it can pass it's themes along onto GTK apps. You'll have full Gnome support and partial KDE support (the reverse isn't true; because Qt is proprietary, Qt-apps are not at all friendly towards Gnome). Most of the other features (not related to look-and-feel) are gradually becoming compatible between the two systems.

  21. Re:Get with the times - write WEB-BASED apps by Anonymous Coward · · Score: 0

    People bash web based apps for lack of speed, or primitive controls....However, if the task is to go from version 1.1 to version 1.2 of any application on all 6000+ desktops in 28 states -- Thin Client (web based app) is the way to go!!

  22. Wrote for KDE, no one uses Gnome by Anonymous Coward · · Score: 0

    KDE has by far the most users, even with RH slamming them, and it's V2 version is much further along. Gnome is dead.

    1. Re:Wrote for KDE, no one uses Gnome by Anonymous Coward · · Score: 0

      When I see the promised "KDE Replacement for Gimp", which supposedly would only take "a couple of weeks" due to the amazing Qt

      Look for KImageShop in KOffice.
      Very young, but very impressive!
      And since when is Gimp a Gnome app? (Somehow it's rather the other way round). If gtk, then pure gtk, not made crash-prone and memory-sucking by using the Gnome libs.

      Which desktop environment STILL WON'T WORK with any other DnD system even in 1.1.2? KDE!

      What's the point in supporting non-standard DnD systems when XDND is already agreed upon? Why implement it in a bugfix release?
      And then, the only app worth communicating with is Netscape, and the KDE go!zilla like app does this (own DND implementation).

      Which one has working apps that load MS Office documents? GNOME!

      Working apps? Hardly. Where is the word processor? (Abiword is gtk-only and far from being fully-functional)
      And KOffice has MS Office import filters... (haven't used them yet, though).

      So yes, Gnome seems a Zombie, albeit with an active PR activity...

    2. Re:Wrote for KDE, no one uses Gnome by Anonymous Coward · · Score: 1

      Gnome doesn't look dead from where I'm standing.
      Pronouncing the other players as "Dead" for no reason is a FUD tactic.

      When I see the promised "KDE Replacement for Gimp", which supposedly would only take "a couple of weeks" due to the amazing Qt, then tell me about how Dead the Gnome is.
      What do all those KDE developers use to draw their graphics? Gimp!
      Which desktop environment STILL WON'T WORK with any other DnD system even in 1.1.2? KDE!
      Which one has working apps that load MS Office documents? GNOME!

      So what's dead about Gnome?

    3. Re:Wrote for KDE, no one uses Gnome by warmi · · Score: 1

      You might prefer GTk and that's fine with me but after checking out GTk and working with Motif and Win32 API for long time I can assure you that QT is quite amazing.

  23. CVS E supports KDE hints now :) by Anonymous Coward · · Score: 0

    Check it out :)

  24. KDE and cuteIDL by Anonymous Coward · · Score: 0

    You can use KDevelop and cuteIDL to whip out an app that uses the easy to use KOM model and have your app CORBRA aware with a minimum of programming knowledge or, you could use Gnome Bonobo which is a nightmare to program in and is hardly functional as of this writing.

  25. Where is the QT version? by Anonymous Coward · · Score: 0

    I read the WxWindows mailing list and no one has talked about it in ages.

  26. The reverse is true, thank you very much by Anonymous Coward · · Score: 0

    KDE is free software and one of the developers is implementing importing GTK themes.

  27. Avoid KDE and Gnome by Anonymous Coward · · Score: 0

    1) remove gnome.
    2) remove enlightenment.
    3) remove KDE.
    4) remove KWM.

    5) install gtk development libs.
    6) install xfce window manager.
    7) install code crusader, code medic and glade.

    Now use the binding of your choice to use the GTK widgets. Unix has always been about small, elegant, "atomic" things, and against bloaty code written by people who want to control your machine.

    KDE and Gnome are fighting over the desktop. Just turn your back on them and follow the roots of unix -- small is beatiful.

    Plus, if you want to develop commercial apps or don't want to release your source code, this also lets you avoid paying Qt/Trolltech $1550 per developer.

    glade is the most "immature" of the bunch, and I look forward to seeing some improvement in that area -- everything else works pretty smoothly.

    Good luck, whatever yur choice.

  28. They are implementing new OpenParts during KDEII by Anonymous Coward · · Score: 0

    Supposed to not only be much faster and smaller, but allow cool things like writing applets that can be dragged and dropped over applications (not just document views).

  29. Flames abound, little insight. by Anonymous Coward · · Score: 0

    Slashdot has gone downhill lately, especially within the last year. I must say here, it is becasue of extremely narrow minded posts. What the person here is asking for is for the best way to write an application that will compile with both GNOME and KDE, not "What DE should I write for" or "What is better, KDE OR GNOME". All the arguments here have been seen way before and aren't even interesting anymore. If you don't like it, don't use it! Don't mindlessly post about how bad the other thing is, especially if you even haven't contributed any code. If you want to further something, go write some code, or think of new ideas that can make it new and innovative, not sit here, reloading Slashdot waiting for new posts that you can flame to popup. It's been pointed out a while ago (probably long enough for me to restate it again), only the do-nothing users sit and scream, anyone thats developing has better things to do and probably can admire other things for their good points instead of screaming to the other things users about all of its bad points; most people I know grew out of that when they were 8.


    Brief Summary for those who care not to read:
    Don't bitch about someone elses things, help make yours better.

    1. Re:Flames abound, little insight. by Anonymous Coward · · Score: 0

      You wrote:
      Slashdot has gone downhill lately, especially within the last year. I must say here, it is becasue of extremely narrow minded posts.

      I think this is a very interesting observation and just goes to show that moderated discussions don't work. Or, at least, not as well as everyone would like to think they do.

      I still think that Slashdot is the model that all newsgroups should follow. Everyone knows how quickly newsgroups deteriorate in their topical discussions. And let's not even mention the total anarchy of chat sessions. A common objection to moderated newsgroups, like Slashdot, is that they hinder ones freedom of expression. The truth is that freedom is an illusion. If you've been married or are in a relationship, you know what I'm talking about. If you've had kids, you're doing a minimum of 18 years to life in the slammer. In short, even moderated discussion groups can't always achieve the level of quality you desire. I salute Slashdot in its efforts. Keep up the good work boys!

  30. There was a Kimp, but Miguel caused a flamewar by Anonymous Coward · · Score: 0

    and it was forced to be dropped. Now there is work on a from-scratch replacement called "KImageShop". See koffice.kde.org. As far as MS documents, Koffice can handle Excel and WMF, and people are working on word filters.

  31. Clue: Gimp isn't a Gnome app. by Anonymous Coward · · Score: 0

    Talk to me when Gnome has a web browser, internet transparency, a office suite that works, etc...

    1. Re:Clue: Gimp isn't a Gnome app. by Anonymous Coward · · Score: 0

      if you want all that then why not just use Windows?

  32. lies, lies, lies, Qt is not proprietary. by Anonymous Coward · · Score: 0

    Even RMS deemed Qt free software, and I bet KDE supports GTK themes before GTK support's KDE's - mostly because KDE themes have an effects engine.

  33. GTK isn't a desktop environment by Anonymous Coward · · Score: 0

    Gnome is, and more people seem to use KDE so that seems to be the lcd...

  34. wxWindows does not support Qt by Anonymous Coward · · Score: 0

    People keep saying a port is in the works, but there is no mention of it on any of the lists.

  35. Heh, all the apps mentioned had KDE versions first by Anonymous Coward · · Score: 0

    In most cases by almost a year or more. So if you want to complain about people dupicating others work you know where to look.

  36. gui mark up language by Anonymous Coward · · Score: 0

    This has been done. XUL is a GUI markup language that Mozilla uses. It's pretty cool--you can edit a couple line and completely change how your toolbars are laid out, for example. www.mozilla.org

  37. Re:Think MVC (Model-View-Controller) by Anonymous Coward · · Score: 0

    Even the Gimp can be scripted though! Gimp-perl is a perl module that lets you control the Gimp from perl, for example.

  38. Shit for brains enh? by Anonymous Coward · · Score: 0

    "GNOME and KDE both *require* GTK+ and Qt, respectively, for all graphical apps." Netscape appears to be a graphical app. Dont split words, the TOP article poster was concerned that if he wrote a KDE app, gnome users couldn't use it, or vice versa. Then people begin the FUDDING, implying that KDE users can only use KDE, and GNOME users can only use gnome. The post I was replying to said that 'ALL GRAPHICAL APPS MUST USE THEIR TOOLKIT' This is simply untrue. Infact, if you search the gnome-devel mailing list, you'll find Miguel saying that you can even write 'gnome' apps without using GTK if you apps use gnome features (via a wrapper or CORBA).

    1. Re:Shit for brains enh? by Devin+Bast · · Score: 1

      I am new to programming, so please understand these are sincere questions.

      Wouldn't it make sense if all GRAPHICAL programs used the same library as a STANDARD for the Linux platform? Why not just EXTEND the STANDARD library and work on the code frame work as a community like it should be? Instead of bitching at each other and dividing ourselves, try to find a solution that will handle these problems. Why doesn't someone talk to individuals at KDE and GNOME and see if a middle ground can be agreed upon to where the code could be shared and become seemless in any Linux environment. Why should programmers write code twice to use specific features in both desktops? The Micro$oft syndrome---the over-bloating of code...what could of been optimised, never was.

      Devin

  39. Re:KDE & GNOME Development. by Anonymous Coward · · Score: 0

    # chmod +x /dev/null # /dev/null /dev/null bash: /dev/null: Permission denied # . /dev/null bash .: /dev/null: not a regular file # cat /usr/bin/emacs | /dev/null Hello Dave.

  40. Re:KDE & GNOME Development. by Anonymous Coward · · Score: 0

    # chmod +x /dev/null
    # /dev/null
    /dev/null
    bash: /dev/null: Permission denied
    # . /dev/null
    bash .: /dev/null: not a regular file
    # cat /usr/bin/emacs | /dev/null
    Hello Dave.

  41. The way to write GUI apps by Anonymous Coward · · Score: 0

    A gui should not be much more than a stupied interface. The trick is to keep the "business" functions separeted from the gui. This way you can pretty easily make your application use several gui's. Just my though on how a app should be written. Another important thing is to standarize the way config files should work. Ie, the user should have one set of bookmarks that can be used in both gnome and kde.

  42. Not senior enough to use cookies evidently by Anonymous Coward · · Score: 0
    Its trivial to avoid jscript in such applications.

    1. Re:Not senior enough to use cookies evidently by orabidoo · · Score: 1

      it can be a very sensible design decision *not* to use cookies. for a public site where you want users to like your service, and be able to enjoy it with a large range of browsers and settings, depending on cookies is arguably a bad idea. there are other ways (i.e forms with image submit buttons, or session data or session id's embedded in the urls).

  43. Exactly. by Anonymous Coward · · Score: 0

    Aside from the desktop/GUI problem much of Linux itself is inconsitent (such as packaging and many other things.. except GUI is more noticable and more looked at since people think a desktop is a requirement for "world domination").

    I'm not a naysayer of free software (or Linux for that matter), but I do believe some things are better at certain areas than others. Linux will never be consistent to the level required to beat out Macs, BeOS, and Windows (Unix by design is inconsistent.. with no standard way to access graphics, sound, or other needed things for a desktop. This is mostly the fault of C.). I really wish this pressure bubble (to create the best OS that everyone should and will use.. or they must die) would pop and coding would be fun again.

    I wonder.. can a group of people working on free software accept enough ideas to be consistent? In GNOME I noticed many people pulling and tugging in different directions.. and many many features being implemented (many not needed). Or does it take a strong organization (meaning well looked over) to produce something somewhat consistent?

    We have man pages and info pages. We have OSS and ALSA. We have tar.gz and RPM. We have GNOME and KDE. We have WindowMaker, Afterstep, E, FVWM (can I stop now?).

  44. Write apps for BeOS!!! by Anonymous Coward · · Score: 0

    You should write apps for BeOS instead.

  45. Isnt this what ClanLib is for? by Anonymous Coward · · Score: 0
  46. TCL/TK by Anonymous Coward · · Score: 0

    You should use TCL/TK. It works great with all of the desktop environments and it's powerful.

  47. Linux needs these flamewars by Anonymous Coward · · Score: 0

    I understand people having a preference of C, C++, Python, etc. (My choice is up to me) But come on fellow programmers!!! We write programs for the USER! Not the Programmer! GTK is the leader-- as far as where it's at. QT of course, is great, but It's not something that we can even support (er.. $1500 for a license, when M$ Visual C++ is $1000) I say we dump all these stupid toolkits, port GTK to all the languages (And not as a layer, but as a complete port) and be absolutely sure that C++GTK (GTK++ :) and GTK+ and GTKthon or whatever silly name you can think of; err, make sure they are completely seamless in function. Everything has to look and feel the same! -- Everything!!! There should be no variation, I should be able to drag and drop anything anywhere. In fact, the KDE folks are expressing a great interest in dropping QT in favor of something more free. GTK-- (The current GTK+ C++ layer) is slow as hell! Show a little care for your OS, programmers, don't duplicate work, improve it! (Shameless bit of advertising: http://altair.dhs.org until I think of a better name)

    1. Re:Linux needs these flamewars by Kenelson · · Score: 1
      As one of the main coders on the Gtk-- project I am always glad to get feedback whether I agree with it or not. You said that gtk-- was currently as slow as hell. I was wondering which version in perticular you tested. Was it the stable version or the development version?

      The development version should be considerably faster as all the hash table lookups were eliminated and all the excess size (often many K) of signal stuffs has been eleminated. If you still find it slow (compared to gtk+ as I can't fix stuff outside my layer), please send me a demo program and I will mark it as a hot spot to do optimization. Thanks in advance.

      --Karl

  48. No, it is not a lie by Anonymous Coward · · Score: 0

    Qt is put under a license meant to protect Troll Techs copyright and to make it hard for other developers to take pieces of Qt and use for themselves. The main purpose of the QPL was probably to kill of the harmony project, not to share the Qt code. Gtk and other (L)GPL'ed apps are put under licenses that are aiming to be Copyleft, while copyleft is not a legal term it means a lot when you look at the philosophy and goals of the license, and what rights and obligations it gives you and others.

  49. Re:They will start using it in Netscape/Mozilla 5 by Anonymous Coward · · Score: 0

    Netscape 4.0,4.5 and so on use Motif. From version 5 and on it will use Gtk.

  50. Web? by Anonymous Coward · · Score: 0

    Any web interface is an unstable hack to keep state on a stateless protocol with numerous variously buggy and unreliable programs.

  51. This is an issue for standardisation... by Anonymous Coward · · Score: 0

    There should be a protocol for an app to send its toolbars, menu structures etc. to the window manager, and have that handle the displaying.

    It'd make for a lot greater consistency in look and feel

  52. Re:Is it really necessary? by Anonymous Coward · · Score: 0

    It's not impossible, but you have to get hold of some pretty specific patches for the kernel to even boot, let alone work. Loads of swap helps too. Though quite why he has a K6-233 yet only 2Meg of Ram is quite beyond me.

  53. Re:You are biased by Anonymous Coward · · Score: 0

    No.

    However nice all those features you list are, but for sure non-ascii file is not easier, more reliable or faster maintain than a registry.

    Having a registry means that you have to use a separate program to configure your system - having a ascii file means you can use your favorite text editor through ssh from anywhere on the globe (or even outside the globe :).

    On top of this, one of the best things I love about Linux is that _I_ do know what's going on in my computer. If a program fails to configure itself properly I can always go and hack the ascii configuration file myself. If we move to a registry I can't do that.
    And believe me: however good the registry implementation itself, there will always be badly-coded programs that mess up your registry.

    Panu - not on my own computer and forgot my passwd

  54. Yes, lies - and rampant paranoia by Anonymous Coward · · Score: 0

    RMS thinks it free, ESR thinks it free, everyone thinks it's free, yet still people complain and come up with paranoid conspiracy theories even though Troll Tech supported free software development long before the QPL. You all need to get a life. It's free software, not proprietary.

    1. Re:Yes, lies - and rampant paranoia by Frostking · · Score: 1

      RMS has aknowledged that the QPL might fit the wording, but not the spirit of free.
      I recently read a mail by RMS on the WindowMaker list were he pointed out that using Qt was not advised behaviour due to the licensing issue.

      As for ESR he will testify that anything is free as long as he gets his name on print.

      Since I, and obviously others don't think it is free, "everyone" definetly don't think Qt is free.

  55. Glad Someone Mentioned This by Anonymous Coward · · Score: 0

    I'm not a Mozilla developer or anything, but from what I've read about the project, it seems like when they're done we'll have a fairly complete cross-platform desktop environment. (And I'm not talking about "web interfaces" either)

    After all, doesn't Mozilla include a cross platform GUI toolkit, a cross platform Component Model, and various scripting & programming language bindings?

    I think the Mozilla project gets overlooked when discussing these types of issues because people forget that it's more than just a browser.

    If anyone knows of any reasons why Mozilla wouldn't be useful for this purpose, please follow-up... but keep the flames low please. I'm not claiming to be authoritative.

  56. KDE/GNOME WAR! by Anonymous Coward · · Score: 0
    There's really no reason why you can't write an application that works under both toolkits. If you were clever enough, you could probably write one that detects the current desktop environment and uses the biased toolkit at runtime.

    A personal ideal [- redundant?] is to seperate the algorithm/function from the presentation. A good, general layer of encapsulation will make all of the difference between writing code that is tied closely to one environment and code that can be easily ported to any environment, KDE, GNOME, Windows, etc within reasonable limits.

    For example, if you're writing a dictionary client [which connects to a dictionary server, such as gdict], one will assume that you have code sitting there that does one thing: Connect to the dictionary server, send the request, get the reply. From the presentation system, you need 2 things. 1. Get a word to look up. 2. Display the definition of that word (or the error message).

    Would it really be so hard to write something that does this for both KDE and GNOME? Of course not. Toolkits make things extremely conveniant, but don't let your code bend around them.

  57. wxWindows will (maybe) make GTK/QT possible by Anonymous Coward · · Score: 0
    Hi.

    The 'metatoolkit' wxWindows is trying to make this possible. Unfortunately the Qt toolkit is not yet supported. The main idea behind wxWindows is using the native toolkit on each supported platform. This means a native look and feel on each platform. On Win systems the GUI parts of wxWindows are implemented using MFC and on Unixes one can choose between GTK and Motif/Lesstif. A Mac version is in beta stage. BeOS and OS/2 port are worked on. The Qt port has been discussed lately on the wx-devel mailing list but I don't know if anybody is working on it. There is a simple 'stubs port' so creating a new port should not be too tough.

    All we need is some skilled Qt programmers with strong interest in cross-platform work.

    Yours
    Jere Kahanpää

  58. Re:Aren't future versions of Netscape gonna use GT by Anonymous Coward · · Score: 0

    Actually, I think the Mozilla team has now ditched Gtk+ in favor of their own widgets that can be customized via CSS. Bastards.

  59. Re:Here's the thing... by Anonymous Coward · · Score: 0

    We aren't talking about Gnome or KDE here. We are talking about the apps that run under these respective environments. It is possible to write an application that "does the right thing" by writing your own abstraction layer. So if you want to do a specific thing like dock your application to the tool bar you need to call the function my_dock_to_tool_bar(), the function needs to figureout what environment it is in and then do whatever is needed for any environment. Easy! You may need to link your code to both Gnome and KDE libraries, however. You can use whatever graphics toolkit you want to use. You can even write your own graphics toolkit to use if you want! Have fun.

  60. You need to take your pills. by Anonymous Coward · · Score: 0

    1) You can drag from StarOffice into KFM because Star Division implemented it. 2) You can drag from Netscape into GNOME because the GNOME people implemented it. 3) You can't do any other drops because noone bothered to implement the interoperability. 4) Your "it's a URL, handle it!" shows your utter ignorance on the subject.

  61. Re:You are biased by Anonymous Coward · · Score: 0

    You assume too much.

    I dislike the registry because of the fragility it imparts to the whole system. It is tantamount to putting all your eggs in one basket.

    BTW, I'm not against Windows on ideological grounds. Their system would be pretty slick if it worked. But over the course of the past two years I've spent far too many WEEKS trying to reinstall Windows in a stable configuration on different machines. My complaints about the system are based on bitter experience across a whole range of hardware and software configurations. Their way of doing things is inherently unstable rom the ground up.

    The strength of *nix is that the different parts of the system are completely independent. A screwup in one subsystem doesn't usually bring the whole system down, and the ascii text configuration files are easy to understand and fix. It might not be elegant from a theoretical standpoint, but it works very well.

    If you don't like the way things are done on *nix, then just go back to Windows. But don't think for a minute that the rest of us will tolerate seeing Linux ruined by the same blinkered theoretical approach that has ruined Microsoft's OS.

  62. let the desktops multiply and become fruitful by Anonymous Coward · · Score: 1
    i disagree that KDE/Gnome need to meld into one.

    i think that as long as you can at least *use* apps on both sides of the fence (which in my experience you can) that's enough. having everybody's eyecandy and special integration features isn't needed, and maybe not even wanted. why?

    IMO: gnome and kde are being designed with slightly different viewpoints on life (or at least on desktop computing =). this is Good. what one camp forgets, the other remembers. and what they other remembers, the first wants. it means a friendly competition between the projects that propels both.

    same for apps. if there is a gnome text editor and a kde text editor and one puts in a Cool New Feature(tm), what are the odds the other one will adopt it, if it fits in their view of the desktop computing? pretty good, i'd say. again, competition is good.

    what is more important that desktop amalgamation is the adherence to standard file formats so everyone, regardless of their desktop preferences and application choices can read/edit the same files.

    think picasso and michelangelo. way different styles. both awesome. both had brushes.

    Aaron J. Seigo

    No account yet. ha.

  63. Write for the WEB and keep everyone happy by Anonymous Coward · · Score: 1
    After all, that's the joy of Slashdot (which is an app and a service).

    Forget toolkits. Linux-only development is a dead-end. Write for the web and maybe you'll make some bucks like CmdrTaco and Jerry Yang.

    1. Re:Write for the WEB and keep everyone happy by Anonymous Coward · · Score: 1

      I was part of a team developing a web front end for a product. Web apps have *many* more compatability issues than desktop apps. For starters most apps are complicated enough you have to use Javascript (or heaven forbit vbscript). The headache is every browser handles things differently, and all of them are loaded with unique bugs (which are out of your control). Didn't you read that article on bugs in software?

    2. Re:Write for the WEB and keep everyone happy by jelwell · · Score: 2

      Why Don't you go tell Sun that Star Portal can't work. Tell them that you graduated from MIT and you know better.

      And what about a web based mp3 player? Couldn't they store all the mp3 files on the server and stream to your local machine, saving you from having to find all the mp3s you want and archiving them yourself. Are you trying to say that Netscape doesn't have access to your sound card?

      Try reading Tim O'reilly's new article on MS vs. Linux.
      Joseph Elwell.

    3. Re:Write for the WEB and keep everyone happy by Luyseyal · · Score: 1

      easy, you go to the URL. do whatever the app is supposed to do. save locally. like in hotmail how you can upload an attachment? saving works too. why couldn't a basic word processor work that way (in theory, forget about shitty browsers for the moment)? you don't HAVE to save your data on a server, you just use the app served to you to do the work and then save locally or remotely. whatever you need.

      that's how it works. whether that fits your situation or not is another question.

      -l

      --
      Help cure AIDS, cancer, and more. Donate your unused computer time to worldcommunitygrid.org. Join Team Slashdot!
    4. Re:Write for the WEB and keep everyone happy by Guy+Harris · · Score: 2

      Just out of curiousity, how would a "Web-based" word processor, or spreadsheet, or image editing program, or network packet capture and analysis program, or MP3 player program, or... work?

    5. Re:Write for the WEB and keep everyone happy by Guy+Harris · · Score: 2
      easy, you go to the URL. do whatever the app is supposed to do. save locally.

      Err, umm, go to which URL? The URL for the object being edited by the word processor, spreadsheet, image editing program, etc.? If so, how is this anything more than allowing URLs, not just file names, in a "File/Open" dialog box or in the app's command line? I'd hardly call that particularly "Web-centric" - you're still writing the app, you just write it so it can use HTTP to read and write files (isn't that something that many KDE apps can already do?).

      And who "does whatever the app is supposed to do"? A program running on your machine - i.e., an app running on your machine, just as in that boring nasty old pre-Web-centric universe - or something running elsewhere - in which case how does it interact with you?

      you don't HAVE to save your data on a server, you just use the app served to you to do the work and then save locally or remotely.

      OK, what makes writing "the app served to you" "writing for the WEB"? If all that happened was that you got some Java app served to you, and it's running locally, perhaps reading local files, and saving the file locally, you haven't "written for the WEB", you've chosen Java/AWT or Java/Swing or whatever, rather than choosing KDE or GNOME or CDE or whatever.

      And what if the application is the MP3 player I mentioned? How exactly do you "write that for the Web", other than writing it as a browser plug-in - but, as far as I know, browser plug-ins are cross-platform (unless browsers support Java plugins, but, in that case, see my previous comment about Java apps)?

    6. Re:Write for the WEB and keep everyone happy by Guy+Harris · · Score: 2
      Why Don't you go tell Sun that Star Portal can't work.

      Because, according to this press release, StarPortal isn't the sort of "Web-based application" the original poster was citing as a reason why we should all "forget about toolkits". It says

      Completing development of StarPortal, a web-based version of the office suite that combines a Java(TM)-based client with the software to enable browser access to office productivity tools.

      which appear to be saying it's an application written in Java (see earlier comments in which I note that a Java-based application is just an application written for Java plus some widget set, just as a GNOME application is written in C or C++ or whatever plus GTK+ and a KDE application is written in C++ or whatever plus Qt), not a "web-based application" where you just fill in forms and hit "Submit", as the Web calendar and mail applications some people mentioned are.

      Yeah, maybe it's more cross-platform than, say, a UNIX+KDE or UNIX+GNOME application is, but it's not the same sort of application as is, say, Slashdot, that being an example that one of the people to whom I replied gave.

      And what about a web based mp3 player? Couldn't they store all the mp3 files on the server and stream to your local machine, saving you from having to find all the mp3s you want and archiving them yourself.

      Again, that's not a "Web-based application" any more than an MP3 player that can read files somehow magically becomes "NFS-based" or "CIFS-based" by reading from a file system on a server; the application is a local application, written using some toolkit - toolkits being what the person to whom I originally replied (and who cited Slashdot as an example of "Writing for the Web") said we should "forget".

      Are you trying to say that Netscape doesn't have access to your sound card?

      No - but if it's playing something itself, it's not as if somebody "wrote for the Web" - they didn't write any application at all to play MP3s, they just used an application that already existed, namely Netscape or a plug-in. If you already have a canned application to perform some function, the mere fact that the canned application happens to be part of a Web browser doesn't mean that, by using that application, you've "written for the Web", it means you haven't had to write it in the first place - that certainly means you don't have to worry about toolkits, but it doesn't help you if that's something Netscape or whatever doesn't do.

      Try reading Tim O'reilly's new article on MS vs. Linux.

      Oh, you mean this one, which I read several days ago, where he says

      Traditional software embeds small amounts of information in a lot of software; infoware embeds small amounts of software in a lot of information. The "actions" in an infoware product are generally fairly simple: make a choice, buy or sell, enter a small amount of data, and get back a customized result.

      and

      Information interfaces are not as efficient for tasks that you do over and over as pure software interfaces, but they are far better for tasks you do only rarely, or differently each time. In particular, they are good for interfaces in which you make choices based on information presented to you. Whether you're buying a book or CD at Amazon.com, or a stock at E*Trade, the actual purchase is a fairly trivial part of the interaction. It's the quality of the information provided to help you make a decision that forms the heart of the application you interact with.

      where he pretty clearly indicates that he does not think that all traditional applications are dead and that CGI scripts will replace them, he indicates that there's a whole pile of new applications for doing new things that are best done with browsers talking to Web servers.

      The problem that some people have is that, as, if I remember correctly, Abraham Maslow said, "to somebody whose only tool is a hammer, the whole world looks like a nail". Web-based applications, in the "3270 for the '90s" sense (as somebody described Web stuff several years ago), are cool - but they're not the whole world.

      Try reading the original poster's article, which said

      Forget toolkits. Linux-only development is a dead-end. Write for the web and maybe you'll make some bucks like CmdrTaco and Jerry Yang.

      (without, it appears, bothering to ask what application the submitter of the question was trying to write).

      Writing a custom GUI application to do Internet shopping, or calendar management, or library card catalog searching, might be a dumb thing to do now that we have HTTP servers and clients all over the place (although I'm not about to boldly declare that it is foolish; there may well be reasons why some particular such application makes more sense than a CGI script as a solution for some particular problem); nobody's made a convincing case that writing GUI applications in general is no longer necessary now that we have the Web.

    7. Re:Write for the WEB and keep everyone happy by Khalid · · Score: 1

      Yes you are right, that's what the new XPFE the Mozilla folks are building is all about. The idea is to write and render the UI (using a browser) the same way you will write an HTML page, for this you use XUL it's a mixture of W3C standard compliant XML and CSS1, the scripting language is javascript. Here what thei web page say :

      Contributing code to the Mozilla project has never been as easy as it is today. In the past, you had
      to be some C/C++/platform toolkit hotshot to add code, today all you really need is an understanding of JavaScript, HTML4.0, the W3C DOM, CSS, and most importantly a sense of adventure.

      For more information you may have a look at this :

      http://www.mozilla.org/xpfe/gettingstarted.html

  64. Not so fast T-Bone by Anonymous Coward · · Score: 1
    Sure you can run gedit on your kde desktop --but can you drag a .txt or unattributed file to gedit from KFM? It doesn't work. This is the simplest level of interoperability and it's not there.

    Here's another boneheaded obstacle: in Gnome I can drag a http link from Netscape to the Gnome desktop, managed by GMC; in KDE I can drag a a link from Konqueror to the desktop and even a folder, but I cannot drag a link from Netscape. Huh? It's a url--handle it! Well for some reason this has slipped KDE developers attention. Which is funny because you can drag a link from StarOffice (an earlier Mozilla version) to a KDE folder to be copied or linked. So apparently, KDE people just don't want to make allowance for people using Netscape on a KDE desktop. Now you know what they have in common with Microsoft!

    Both Gnome and KDE need to cooperate with each other and with major established apps. The alternative --each project trying to freeze out the other-- will mean they both will be failures.

    1. Re:Not so fast T-Bone by Guy+Harris · · Score: 2
      the Motif standard and the X standard that came along afterwards.

      To which "X standard" are you referring? Xdnd is being adopted by at least three tookits, as far as I know (JX, where I think it originated; GTK+, which implements it in 1.2; Qt implemented it either in a late 1.4 release or 2.0, as I remember), but I don't think it's an Official X Consortium^H^H^H^H^H^H^H^H^H^H^H^HOpen Group^H^H^H^H^H^H^H^H^H^HX.org standard, as far as I know. Has it been adopted by X.org?

      Both teams are working on interoperability

      I think GTK+ 1.2 also implements the Motif drag-and-drop protocol (which may explain why dropping from the Motif-based Netscape to the GTK+-based GMC worked); what are Troll Tech's and/or the KDE team's plans to implement the Motif DnD protocol?

    2. Re:Not so fast T-Bone by JimDabell · · Score: 1
      The reason why certain apps don't drag-n-drop correctly between each other has nothing to do with GNOME or KDE. IIRC, it's because there are two conflicting standards, the Motif standard and the X standard that came along afterwards. Of course, Sod's Law dictates that the different projects used different standards.

      Both teams are working on interoperability, and if you don't want to help, then you can at least do bettter than calling them "boneheaded" and just be quiet.

  65. How many features of each do you need? by Anonymous Coward · · Score: 1

    This is inherently a tricky question. Do you need to write an application that runs in and plays nicely with both GNOME and KDE? This is not a difficult thing to do at all. Do you need more advanced features of KDE and GNOME? That starts to get difficult.

    I think it would be safe to implement the entire application in either GTK+ or Qt 2, and provide a theme to emulate the opposite environment. Unfortunately, if they're not using the default theme your app would still look out of place. The only way to solve this would be for someone to develop a theme converter.

    For features that depend upon certain desktops, you'll simply have to write the code twice or abstract it. e.g., panel applets, VFS or media filters, session management. All of these things would need a new abstraction layer or would need to be implemented twice. I think drag-and-drop should work between the two, so that isn't a problem.

    What would probably give you huge problems are if you want any sort of application embedding features via GNOME's Bonobo or KDE's KOM/Openparts object models. These two are not similar, and probably couldn't even be abstracted well. Implementing it twice seems difficult and not really worth the effort, but I could be wrong. I'm not very familiar with KOM/Openparts.

    Cody,
    bratsche@dfw.net

  66. What not use Design Patterns to help? by Anonymous Coward · · Score: 1

    Not sure exactly at what level you want to "use" KDE and / or GNOME. However, I would suggest,regardless of what the end result *should* be, to look seriously into Design Patterns before you even design anything.

    Reason I say this is that by using these patterns (they are originally inspired by architectural design patterns research from the 1970's) you can nicely and neatly separate away the "nasty parts" (the implimentation specific parts) from the "generic parts" (i.e. the core, GUI-independant functionality) and maintain them nicely. I would suggest as starters to look at the Bridge, Factory, Prototype and Observer patterns (not that they and only they will solve your problems, but they cover a good range of the possible *uses* of patterns and I can already see some uses). And definitely get Gamma (sp?) DP book - worth every penny I paid!!!! Plus lots of great web sites out there - simply type "Design Patterns" into your favourite search engine and away you go!!!!

    Good luck!

  67. GUI toolkit by Anonymous Coward · · Score: 1

    Odd that noone mentioned wxWindows. Not only does it do GTK, it does Motif and, Mac and Windows. A Qt port is "underway." It has wonderful Python bindings, for extremely rapid development. In fact, if you write your programin in Python it will run unchanged, and unrecompiled on Mac, Win32, GTK, AND Motif-based systems!

    1. Re:GUI toolkit by jqs · · Score: 1

      Where can I find more info on wxWindows?

  68. Graphapp by Anonymous Coward · · Score: 1

    Perhaps something based on graphapp? You can find it at: http://www.cs.su.oz.au/~loki/graphapp/ It plays nicely with Athena, Motif, Windows, and Macintosh so far, and I expect that you could port it to GTK and QT, also. Linux Long and Prosper

  69. Re:A Desktop Registry? by Anonymous Coward · · Score: 1

    You should try Glade, at http://glade.pn.org
    It is very mature, and has a different (and IMHO saner) philosophy then KDevelop, in that it generates an xml description of a UI. This description, when used with libglade, leads to very rapid development. For most simple apps, all of the GUI coding is effectively removed from the project -- all that's needed is writing the callbacks.

  70. Try GLUI by Anonymous Coward · · Score: 1

    Not completely off-topic: Try using GLUI, a GUI toolkit built on top of OpenGL/GLUT. You can write a program that runs portably on Linux/Windows/Mac/SGI/... (?!!?). http://www.cs.unc.edu/~rademach/glui

  71. Let me get this straight by Anonymous Coward · · Score: 2

    If I understand correctly, what you are asking for is a C++ wrapper library that is sufficiently high level to encapsulate just about any GUI/widget toolkit around, Gtk+ and Qt in particular. Plus you want a high level common interface to the features provided by KDE & Gnome that are independent of GUI/widget toolkits. That's a difficult request. There are C++ wrappers for Gtk+ that could serve as a basis for creating high level unified widgets. However, Gtk+ and Qt use different mechanisms for handling events, so it would be quite difficult to create common routines for event handling without eliminating a lot of the flexibility and features each toolkit offers. After creating a library that sufficiently encapsulates both toolkits, you will need to create another library to provide the services of the desktop environment. In particular, you'll need a library to cover the differences in Corba implementations, window manager integration, etc. It could be done, but it won't be trivial. Also, it will add extra layers of crud slowing your application down.

    At this point in the desktop wars, I suggest that you choose one platform and separate all of your code that deals with the GUI toolkit, window manager, Corba, drag-n-drop, etc. into a separate class library. That way, you can always re-implement those classes if you switch environments.

  72. Think MVC (Model-View-Controller) by Anonymous Coward · · Score: 2
    This doesn't really answer your question but it's a soapbox I've been on forever.

    If you write the app (I mean the meat of it, not the flashy stuff) such that the gui for the thing is not implicitly assumed to be so and so toolkit, etc. then you achieve a great deal more portability.

    Take a generic calendar app: the logic for manipulating time, adding/deleting events, etc. exists in one code base. The gui code exists somewhere else. The gui code both drives the app and displays changes in state. In this application the non-gui code is the model and the gui code is the view/controller. Changing guis afterwards would be (much) easier.

    There used to be a time when unix apps were command line first with maybe a gui slapped on afterwards. This was good because the apps in question could be scripted (e.g. integrated into a bash script). The gui would be for human use only.

    I'm not suggesting that all apps be written such that they are unable to directly manipulate their gui aspect; some apps are inherently graphical (Gimp, ee, etc.). What I am suggesting is that this approach to program architecture is better and is applicable to more than just gui/domain separation.

    BTW, in case you are unaware, this MVC stuff is old and very well proven (Smalltalk-80) and seems to be making a comeback with Java Swing.

    Of course Gnome and KDE offer more than just gui frameworks but the lesson remains the same.

    Sincerely,

    an aging Smalltalk bigot

  73. A really valid question by Anonymous Coward · · Score: 2

    Dr. Tom's question is a very pertinent one. Linux is falling down in a bad way on the desktop due to the plethora of UI's being used in appliactions and the absence of standards. The appeal of the Mac and Windows desktop is that drag and drop, cut and paste, menus, etc. work consistently. When you get to Linux nearly every app is using different UI standards and conventions. Allowance for UI innovation is a really good thing but total chaos where every application has a completely different UI is fundementally bad. Its also a severe drag on Linux application development that every new application development team has to spend large amounts of time tearing themselves up between Qt, GTK, FLTK, Amber, and between C and C++ and between KDE and Gnome. The Mac and Windows developer doesn't have this divisive problem or at least its much less severe. At the same time there is a lot of programming time and talent spent developing the same functionality between KDE, Gnome, Qt and GTK. Its a waste doing everyting twice and spending time trying to make the two implementation cooperate. There is something to be said for competition but I doubt that the competition between Qt and GTK is beneficial to the community any more. I've heard rumour that GTK and Qt might be working to interoperate with drag and drop but the last time I tried it they simply didn't. To have a creditable desktop you need to have all the MIME types consistently implemented so, for example, dragging an image from a desktop browser, whether it be Gnome or KDE, into an app that handles images works right. Last time I looked Qt had far and away the best drag and drop implementation. It was best because it was very easy to understand and implement. GTK wasn't. GTK and GTK in Gimp was barely hanging together as far as drag and drop goes. All of the burden was placed on the programmer and there was too much opportunity to diverge from consistent behavior. The same thing can be said for cut and paste. It has to be consitently implemented in all apps with maximum ability to cut something in one app and paste it in another. The best way to acheive these goals is one consitent API that hides much of the complexity from the programmer and encourages them to implement a standards conforming UI. I wont weigh in if its GTK or Qt since this is a religious war between the C and C++ camps. This is not a question of whether an app runs if its using Qt or Gnome and running on Gnome or KDE. Its a question of whether the user is getting a predictable and productive experience from all the apps they use on their desktop.

  74. wxWindows by Mathieu+Lu · · Score: 2

    Well, wxWindows is a pretty cool library, and it's GNU (well, the author made some slight optional modifications to the licence to make it sort of a mix of LGPL/BSD).

    Coding in C++ is much cleaner and wxWindows generates code for GTK+, QT, Motif, Windows, Mac, and ports are in progress (I think) for BeOS. Sure, it doesn't support Gnome (as a desktop), but it's a great step in the good direction, maybe Gnome support will come later if it's possible.

    Another cool thing about wxWindows is that the syntax is very familiar to MFC, so Windows applications could be very easily ported to the world. I know this isn't happening right now, and I don't understand why wxWindows doesn't have that much visibility. (fear of C++? Unstable? Please correct me.)

    Matt

    1. Re:wxWindows by bgdarnel · · Score: 1

      I use wxWindows from Python and love it. It's not quite as cross-platform as you say (if anyone's working on a Qt port, they're being quiet about it, and IIRC the the Mac version is rather early in development), but it's still better than just about any GUI lib out there. I think a cross-platform library is not as appealing in C++, since it still has to be recompiled for each platform. wxWindows is however gaining a foothold in the Python community, where an app can run on any platform where the wxPython libraries have been ported with no extra recompilation required.

      As for the Gnome support, the wx people would love to add it, but last time this came up on gnome-devel-list, the gnome folks weren't too keen on the idea. It's not currently possible to make a full-fledged Gnome app (whatever that means) with wxWindows, but you can come as close as you can with plain GTK (no libgnome/libgnomeui)

  75. Re:More general question by CyberELF · · Score: 1
    Currently, I've yet to see the first fully cross-platform toolkit. The problem with the current toolkits is that they emulate one environment on the other, which give the feel you're using an emulator. Some important differences:
    • MacOS and NeXTstep use a separate menu bar, which means you can have applications without windows; X based toolkits attach the menu bar to every window and Windows uses a strange hack called MDI (a window in a window).
    • On MacOS/NeXTstep, usefull names are used for buttons while on Windows, it's limited to 'Ok', 'Cancel', 'Yes' and 'No'. This is especially visible in message boxes.
    • In MacOS/NeXTstep dialogs, the default button is the rightmost one, and 'harmfull' buttons are clearly separated from 'harmless' buttons; in Windows, those buttons are put together and the default one is usually the leftmost one.
    • For binary menu items, MacOS uses a change in the name (like Show Ruler/Hide Ruler) while Windows typically uses a check mark
    • Windows interfaces heavily make use of toolbars, MacOS doesn't.
    • Different vocabulary (e.g. Exit vs Quit)
    • Different menu layout (e.g. the position of the About item)
    • ...
    If you add the OpenLook interface, it gets even worse ('Close' in OpenLook means 'Minimize' in Windows; 'Quit' in OpenLook means 'Close' in Windows...)
  76. not really by Trepidity · · Score: 2

    Well, you can write programs in either GTK or Qt and both KDE and GNOME will have no problem running them. However, to take advantage of the special functionality of the desktop environment requires you to code for that desktop's specs. You can use any toolkit you want, but your "made for KDE" program won't work as well under GNOME unless you use a bunch of #define's to provide the equivalent functionality (and write all the relevant sections twice, once for each environment). That could quickly get tedious.

    Hopefully they'll get their acts together soon. Until then, I'd recommend not writing for either one.

  77. Buy "Design Patterns" by Kostya · · Score: 1

    Really. That's probably the solution you are looking for. There is a specific abstraction pattern that could easily do what you are talking about--they actually use X toolkits as an example. :-)

    Of course, that's assuming you use C++. You could do it in C, but I wouldn't recommend it. Trying to apply the Design Patterns to a non-object oriented language (no flames, please) is difficult unless you really know both OOP and C. But if you are writing for Qt, you are probably using C++ anyways.

    I can't remember the DP name: I thought it was an Abstract Factory or a Prototype.


    "Doubt your doubts and believe your beliefs."
    --
    "Doubt your doubts and believe your beliefs." -- Switchfoot, Ode to Chin
  78. So what *should* be interoperable? by Christopher+B.+Brown · · Score: 2
    The GUI architectures are, indeed, quite different in what they do. That suggests that having the same GUI code is not terribly realistic.

    There are, however, ample other opportunities for other aspects of interoperability that generally have merit.

    • Data formats

      Many UNIX applications have traditionally used data formats as a mechanism for interoperability. Many applications know how to read things like mail and news spools, which provides interoperability.

      GNOME and KDE both make fairly extensive use of XML, which may, with some cooperation on DTDs, provide opportunities to interoperate in a cooperative manner.

    • Protocols

      One of the traditional strengths of UNIX has been the use of common sorts of protocols. The IETF has been involved in defining common protocols for things like news and mail that allow diverse mail and news servers/clients to interoperate. And just look at how many web server implementations there are out there...

      GNOME and KDE both include CORBA implementations that represent a well-defined, intentionally-interoperable way of defining protocols for client/server applications.

      The use of this approach requires splitting applications into "client/front end" portions, which may be GUI-specific, and "server side" portions, which should be designed to be altogether independent of the GUI.

    In effect, people should be doing design efforts to build useful "services" that are entirely GUI-independent; that will provide code that will be usable with both GNOME and KDE.

    --
    If you're not part of the solution, you're part of the precipitate.
  79. CDE: Who Do You Pay Hefty License Fees To Today? by Christopher+B.+Brown · · Score: 3

    Look at CDE Price List and Motif Price List.

    I'd guesstimate that the cost of CDE is on the (binary) order of $150/seat; this could readily vary between $80 and $200 based on how the terms are interpreted.

    On 10 million Linux users, the mass adoption of CDE would result in a Linux distribution having $0 in licensing fees for Linux, and something around $150 for CDE/Motif licensing fees.

    • Much griping took place over the relatively low licensing fees The Open Group tried to apply to X11R6.4.
    • Tremendous flaming has taken place over the licensing of Qt, where deployment is royalty-free, but developer licenses could cost as much as about $1500.

    I can't imagine the flame wars that would come out of trying to cope with the per-user package licensing fees that are associated with CDE.

    If KDE and GNOME are "divisive," CDE is not "inclusive." It is, instead, exclusive.

    --
    If you're not part of the solution, you're part of the precipitate.
  80. Write the application as a library by Per+Abrahamsen · · Score: 2

    That is my strategy. I write my application as a library, with no user interface. This means it can be easily added into other applications, and that it can have many different front-ends. Each front-end is a main() program, which links your application library and some UI library (Gtk, Qt, curses). It makes it easier to divide work, as different people can be responsible for each front-end.

  81. Re:No! No! NOOO! by Enahs · · Score: 1

    I'm not sure why flamebait got a score of 4.

    --
    Stating on Slashdot that I like cheese since 1997.
  82. It depends, really... by Enahs · · Score: 1

    It depends on what functionality you need.

    Do you need DND support? Sorry, for now, it's one or the other. That will change Real Soon Now.

    Do you need for your app to dock onto each of the panels that the projects have? I seem to think that both use some kinda funky proprietary extension...you'd have to check it out.

    If you're just wanting to write an editor, tho, or just some app that's independent of proprietary drag-and-drop and all that, you could just use Any Old Tool Kit(TM).

    --
    Stating on Slashdot that I like cheese since 1997.
  83. Gnome & KDE by jd · · Score: 2
    AFAIK, there are no abstraction layers. However, there are some tricks you could use to effectively write something that'll run on both.

    1) You could write the code in a way that takes out the toolkit-specific stuff, and puts that in a seperate dynamically-linked library. Then, just write two such libraries - one for Gnome, the other for KDE. Install the appropriate .so for the system you're using.

    2) Conditional execution. This comes in VERY handy at times like this, but is a bit messy. Again, you have one binary that'll run anywhere, but this time you'd need both toolkits installed, as you'd have to link the main binary to both.

    3) #ifdef specific code. This avoids needing both toolkits, is slightly tidier to write, and avoids the complex contortions needed to isolate toolkit specific code. Unfortunately, you'd then need to compile two binaries, and you're only marginally better off than if you'd two seperate applications.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Gnome & KDE by drudd · · Score: 2

      For an example of (1) checkout the latest versions of licq... the author has yanked the gui out of the code and has it loaded as a module...

      (2) doesn't really help matters... why not just use one toolkit if both have to be installed?

      (3) #ifdefs would be incredibly messy in this case, considering QT's main language is C++, and gtk prefers C. True they both have wrappers for other languages, but afaik, they're really no substitute.

      Doug

      --
      Venn ist das nurnstuck git und Slotermeyer? Ya! Beigerhund das oder die Flipperwaldt gersput!
  84. Re:Same strategy? by MichaelKVance · · Score: 1

    Obviously they're both event driven systems (hey, they're GUI apps), but two issues come to mind immediately:

    1) Qt is C++-based, Gtk+ is of course a C-based toolkit. Consequently, unless you do some spiffy stuff with opaque data structures, you'll have to expose C++ in the headers of your cross UI toolkit.
    2) Gtk+ is *completely* callback driven--there are no blocking calls for UI stuff--this boggles the minds of people who want to do MessagBox() style calls. If Qt has blocking calls like that, you'll have to hack fun stuff like GnomeDialog blocking calls into your UI toolkit for Gtk.

    Also worth mentioning is UI bindings... does Qt have anything other than C++ support? With Gtk+, you get Ada, Perl, Python, etc..., so I assume this would be a C++ only toolkit.

    Etc., I'm rambling at this point...

    --
    "Sebastian you're in a mess. They called you King of all the Hipsters, is it true or are you still the Queen?" -- B
  85. Re:Here's the thing... by Sabalon · · Score: 1

    You can't compile Gnome without gtk, you can't compile kde without qt. If that is not "requires" then I don't know what dictionary you are using :)

  86. missed the point by Sabalon · · Score: 1

    True - it's very easy to run an application from one under the other.

    However, in the case you mentioned, you are running an app written for KDE under gnome. It will not take advantage of any special features gnome apps may have under the gnome desktop.

    To do so the app would have to be specifically written to do so. But if you wrote it for Gnome, then it wouldn't take advantage of KDE stuff. Or you could write it for both, requiring both to be installed, and then somehow figure out which desktop is running and morph.

    And then there is the whole look/feel issue.

    What was asked is if there is a middle ground that would satisfy both - something like AddIconToDesktop which would add make the appropriate API call to either KDE or Gnome.

    This has always been the problem with X. Be it simpler toolkits or entire desktop systems, there are just too many choices - be it good or bad.

  87. What about Java? by zipwow · · Score: 1

    Isn't this *exactly* the situation Java's supposed to be for? GNOME, KDE, NT, who cares?

    Of course, if you're using the flashy uber-cool stuff, then you're going to have to get specific, but if you're just trying to *do* something, it seems like Java ought to be the answer.

    Okay, so there's the little issue of an efficient Virtual Machine for linux. Details, details..

    Zipwow

    --
    I don't know which is more depressing, that 2/3 didn't care enough to vote, or that 1/2 of those that did are crazy.
    1. Re:What about Java? by JamesKPolk · · Score: 1

      If you're just trying to *do* something, you can run KDE apps with the GNOME environment, and such, perfectly easily.

      The only thing you can't do, is conveniently write an app that takes advantage of the advanced features of both GNOME and KDE.

      This has little to do with what language you use, as GNOME's core is in C, and KDE's core is in C++.

  88. Pros and cons of using wxWindows... by William+Tanksley · · Score: 1

    I would recommend wxWindows for this. The big negative to this is that wxWindows is not _yet_ ported to Qt and GTK; however, both ports are ongoing. The Curses port is also ongoing (although unlike the others, its status is uncertain). (I want that Curses port!!)

    It does work on Motif, Lesstif, Xt, and GTK, so it'll run on just about every Linux box. It also works on Windows, and a Mac port is underway.

    Also, it's been ported to a scripting language -- Python's implementation is an almost direct echo of its C++ version, to make it easier to transfer knowledge.

    BTW, I've never used MFC, but I've heard that wxWindows isn't anything like that. Yet some people here are saying that it's similar. Is that true?

    -Billy

  89. Apps that use the web by Foaf · · Score: 2

    What I'm about to say may be offtopic for the general discussion, but I am quite interested in this thread.

    I like apps that use the web, rather than apps you access from the web.

    Embedding browser controls in apps, wether they be written using MFC, GTK, Qt, Swing or even Borland's VCL mean that you can have the best of both worlds.

    You need not give away any of the cool bells and whistles that come with your favourite lib and you can also tie your app to regularly and easily updated data on the web.

    MS Money is a great example of this, especially when you run it on a dedicated net connection, without all the hassles of dialup etc.



    -------------------------------------------------- -----

  90. KDE & GNOME Development. by jelwell · · Score: 4

    I think this post is flaimebait. I'd like to moderate it down one point, thank you.

    But seriously, it seems that in order to standardize gui development between the two managers one would have to create a markup language for displaying. We could call it AML (for Application Markup Language). Then we would just need a powerful event driven scripting language - call it lavascript (for Linux Application Visual Access Scripting Language). At this point *real* processing could be done through a network connection - even routed to localhost. Via a networking protocol (call it TCP/IP) and it could connect to CGI servers to do the processing. oh wait. screw it.

    sub isWar
    {
    my($enemy1, $enemy2) =@_;
    if($enemy1 != $enemy2)
    {
    return 0;
    }
    return 1;
    }

    sub flameproof
    {
    `echo @_ | /dev/null`;
    }
    while (&isWar(kde, gnome))
    {
    &flameproof("Joseph Elwell");
    }

    1. Re:KDE & GNOME Development. by osu-neko · · Score: 1
      Embrace and extend?

      --

      --
      "Convictions are more dangerous enemies of truth than lies."
    2. Re:KDE & GNOME Development. by AArthur · · Score: 1

      hmm... actually that's an interesting thought.

      However, I don't think it's true. For one why would one desktop enviroment want to kill another one? There is no money reward.

      And I have yet to find an example of embrace and extend -- although I do see desktop enviroments starting to realize that apps that aren't your native toolkit/libs, still deserve a home in your desktop project. GNOME uses Netscape extensively in it's desktop -- yet I don't see the anybody trying to lock you into a particuluar piece of software -- but more like allowing you to use more apps with your desktop enviroment of choice.

    3. Re:KDE & GNOME Development. by AArthur · · Score: 2

      It's hasn't started with KDE 2.0. Ever since KDE 1.1 and later KDE teams have been creating ways for non-KDE apps to work better with KDE, such as using cross-theming (to at least try to match widgit colors the best as possible). Currently that supports apps using tk's gui librarys (wish), Netscape, Motif apps, and athoen widgits. So basically every Linux X11 app (excluding those written in gtk+) is color themed automatically by KDE 1.1.x (if you choose the cross-theming option in kcontrol). This is a good thing. It for one makes applications look / feel more consistant, and finally it makes those nice themes look even nicer.

      And yes, KDE 2.0 will include tools for converting KDE widgit themes to GTK+ and vise-versa. Mosfet is currently working on this feature, along with the KDE widgit theme designer (finally fast, and useful themes).

      I am not sure if GNOME will support similar features in the 2.0 release, but I sure hope they will -- It just makes Linux feel so much more intergrated and useful, even if it's real benfit is little.

      As for other standards, both the GNOME and KDE parties are working togther. Both sides are working hard to choose the same audio server for compatiblity between various apps. The same can be said about window manger hints -- both want to use the same set of hints, which should be fully documented as part of the Window Manger Spec 2.0. So any Window Manger compatible with Window Manger Spec 2.0 should be able to work fully with both desktop enviroments, and settings for the window manger should be fully embedable in the main control panel of the desktop enviroment. Finally, for release 2.0, both desktop enviroments have agreed on a common drag and drop protocol -- xdnd.

      Well... that's how it's suppost to work in theroy. Lets hope it does.

    4. Re:KDE & GNOME Development. by evilpenguin · · Score: 2

      I found it funny too, but you can't pipe to /dev/null. You have to redirect to it. It isn't an executable...

      My God! I need a life! ;-)

    5. Re:KDE & GNOME Development. by Spooks · · Score: 1

      That's actually one of the goals with KDE2.0 from what I read. Apparently the KDE folks are working on making it easier for KDE to integrate GNOME applications

  91. Here's the thing... by Millennium · · Score: 2

    Both desktop environments claim toolkit-agnosticity (Gnome prefers GTK, KDE prefers Qt, but neither one requires a specific toolkit). The problem, of course, is that you'll have to write a lot of things twice and use #defines to figure out which to use.

    I wonder if there's an abstraction toolkit in the works which could compile for either environment (sort of like wxWindows for desktop environments instead of operating systems)?

  92. Sigh. A clarification for those who can't read. by planet_hoth · · Score: 1

    The poster stated you could write, for example, a GNOME app with non-GTK+ widget sets. But as I pointed out, a GNOME app by definition must be written in GTK+. I never said that you couldn't run non-GTK+ apps in GNOME. They just aren't GNOME apps!

    PS. Thanks for calling me names. As I have in the past, I guess I'm falling to your level in this sentence, you shit-for-brains ass-monkey.

    --

  93. Sorry, you're wrong... by planet_hoth · · Score: 2

    GNOME and KDE both *require* GTK+ and Qt, respectively, for all graphical apps.

    From the Gnome FAQ:

    "GNOME uses the Gimp Tool Kit (GTK+) as the graphics toolkit for all graphical applications."

    I think this is in the KDE FAQ, too, I didn't have time to track the passage down, though.

    --

  94. without Gnome or KDE? by Chris+Siegler · · Score: 1

    I'd be more interested in making Gnome programs compile on a system with just the Gtk+/glib libraries installed, without requiring any of the other Gnome libs. And similarily, being able to run KDE apps with just Qt installed.

    My experience has been that trying to compile programs written for Gnome on a system with just Gtk/glib never works without removing the dependencies on gnome libs in the code yourself. Often, I find that it isn't that hard. I get the feeling that Gnome developers could care less about those that don't run gnome.

    People running old systems, especially laptops, can't really be required to bear all the overhead of running Gnome or KDE just to be able to run one or two programs.

    It would also solve, at least partially, the original Ask Slashdot question of how to write apps for both KDE and Gnome--just find the greatest common denominator, which is to make them compile with just the toolkits.

    1. Re:without Gnome or KDE? by Chris+Siegler · · Score: 1

      ...but it doesn't seem to be the point he thought he was making.
      Actually, he understood my point perfectly.
      ...and set up a "configure" option to control whether to use GNOME stuff
      ...and that's exactly what I'd like to see. There are many applications targeted to run on Gnome systems and using gnome libraries (in short, Gnome apps), that could quite easily be made to run with just Gtk+, perhaps with a slight loss of functionality. With that little added effort, the program gains more users--both KDE and otherwise, and I and others don't have to duplicate the effort of modifying code (and yes I do send patches for what I do).
    2. Re:without Gnome or KDE? by Guy+Harris · · Score: 2
      I'd be more interested in making Gnome programs compile on a system with just the Gtk+/glib libraries installed,

      Given that a "GNOME program" is a program using GNOME facilities, how would compiling a GNOME program be possible on a system without the GNOME libraries and headers? That sounds sort of like wanting to be able to compile GTK+ programs without the GTK+/GLib libraries installed, or to compile X programs without the X libraries installed, or non-GUI programs without "libc" installed, or any programs without a compiler installed....

      It sounds as if what you want are GTK+ programs (or Qt programs), not GNOME (or KDE) programs. Such programs do exist; to achieve the goal you want, you presumably want to encourage people to write more such programs.

    3. Re:without Gnome or KDE? by Guy+Harris · · Score: 2
      Well, he has a point.

      ...but it doesn't seem to be the point he thought he was making. He asked for "GNOME apps that don't require GNOME"; what it sounds as if he really wants are "non-GNOME GTK+ apps".

      In most cases it would be sensible to make GNOME linking a compile-time option, if you use it at all.

      Unfortunately "sensible" doesn't necessarily mean "easy"; somebody could rely on GNOME's libraries to handle a lot of things, and would have to re-implement those things and set up a "configure" option to control whether to use GNOME stuff or the app's private stuff. Perhaps they should do that, but it might require them to do more work.

  95. Re:Is it really necessary? by Stormbringer · · Score: 1

    Yeah, it'd be nice to see both systems interoperate a LOT better.

    On my K6-233 RH6.0 system, using the KDE desktop, it takes up to fifteen minutes for a GTK app to show up on the desktop. The system's a vanilla "workstation" load! Where's that at?

  96. Re:More general question by Stormbringer · · Score: 1

    I just came across this while chasing CVS clients...

    Arachne

    Kinda free, promised to be GPL'd Real Soon Now, and targeted to Mac/X11/Win... tho the Win part seems to be win3.1

    fwiw

  97. Re:Get with the times - write WEB-BASED apps by Guy+Harris · · Score: 2
    REAL apps that run over the net

    Define "run over the net". Are we talking about, in effect, time-sharing, in which all the apps run on a server machine, and all interaction with them takes place via a browser?

    If so, is it ipso facto the case that all applications

    1. can be made to run in that fashion;
    2. would work as well as, or better than, those not made to run in that fashion?

    Note that citing some applications that can run in that fashion, or even that run better in that fashion, doesn't at all demonstrate either that all apps can, or should, be made to run in that fashion.

  98. Re:You'd have to deal with all those browser bugs. by Guy+Harris · · Score: 2
    (acually, I was thinking about how the world needs a calendar/scheduling/intranet -type program that's cross-platform, instead of the Exchange/Bloatus Notes that exists right now), and though "what about a server-based app that used the browser for display."

    Is Yahoo Calendar such an application?

  99. Re:Aren't future versions of Netscape gonna use GT by Guy+Harris · · Score: 2
    I thought that I read somewhere that Netscape was going to use GTK in future versions anyway.

    I think they're using it as the UNIX toolkit for Mozilla, but that doesn't handle the DnD problem unless you run Netscape 5.0 or whatever Mozilla-derived release they put out (or run Mozilla).

  100. Re:No! No! NOOO! by Guy+Harris · · Score: 4
    Think past the Linux box

    KDE seems to run fine on my FreeBSD partition; I installed the 1.1.2 binary package a few days ago. Solaris binary packages also exist; people probably run versions from source built on other OSes as well.

    Note that the KDE home page says:

    KDE is a powerful graphical desktop environment for Unix workstations. It combines ease of use, contemporary functionality and outstanding graphical design with the technological superiority of the Unix operating system.

    Note the lack of a certain word beginning with capital "L" in that; they're not targeting Linux, they're targeting UNIX-flavored OSes, including but not limited to Linux.

    The GNOME site doesn't say "not for Linux only" on the home page, but the "What is GNOME" part of the GNOME FAQ says nothing about it being targeted only for Linux, and the "What are the system requirements for GNOME" part says

    Currently, you need a machine with Unix or a Unix-like operating system installed, with the X Window System (X11R5 or later).

    Again, note the use of the U word rather than the L word.

    You're probably unlikely to get as much enthusiasm from free software developers for CDE as there is for KDE and GNOME until there's a free CDE implementation (speech, not just beer) - there's LessTif, but it's just a Motif implementation, not a full CDE implementation.

  101. Re:Is it really necessary? by MrJones · · Score: 1

    Hey, thats imposible!
    You may have some trouble with your DNS, some
    sort of timeout.
    Do nslookup 'your.hostname' work?

    Oliver

    --
    Get my e-mail after a captcha test in: http://tinymailt
  102. Re:Aren't future versions of Netscape gonna use GT by Frostking · · Score: 1

    These widgets are Gtk wrappers.

  103. Both ToolKits by TBone · · Score: 1

    Yeah, what the first poster said :) I run KDE on my home PC, and Gnome (Enlightenment) on my work PC, and run the same programs on both of them with very few differences that I can see.

    The apps should look the same. You will just have to work around not having the 'features' of the various Windowmanagers.

    IIRC, the GNOME/KDE people were starting to get together on making their features intercompatible...the first feature to come ofer is/was supposed to be drag-n-drop, and I think I read the article on here a long time ago.

    --

    This space for rent. Call 1-800-STEAK4U

  104. Re:Get with the times - write WEB-BASED apps by Booker · · Score: 2

    Hrm, I don't necessarily agree. For one, um - why'd you skip the dial-up step for standalone? :)

    But anyway, I've actually been thinking about doing something like this. I'd like to make a gradebook application for Linux, and I've been thinking about how to implement it. I've considered using a web front-end, that way folks on macs, linux, windows, or palm pilots can access it. If it's on a LAN, it'd work well. I don't plan to put banner ads in my app. :)

  105. What I do by DrZaius · · Score: 1

    When I get into a situation like this, I write my own level of abstraction.

    Make your own functions to create objects. To draw a button create your own function. When you call that function, depending on what library you are using, that function calls the toolkit function to draw a button.

    This method adds overhead to function calls. But then again, you can 'port' to whatever library/toolkit you want.

    I actually stole this idea, in a sense, from reading about the TCP/IP stack and how layer N can only 'talk to' (read call functions in) layer N+1.

    The whole idea behind this is portability; as your program structure changes, it only changes in the layer you are working in and you don't have to rewrite your whole program. Therefore, if you substitute KDE for GTK or vice versa, you only have to change the functions that access the toolkit API.

    I bet there is some official name and technique to this if you go to structured programming school.

    --
    -- DrZaius - Minister of Sciences and Protector of the Faith
    1. Re:What I do by Chutzpah · · Score: 1

      I dont think that's a new idea, I have been doing things that way for years, anyway. Its a pretty basic concept, making basically a GUI abstration layer to seperate your code from the GUI code. An even better way to do this would to put your widget drawing routines into libraries that can be dynamically loaded so you can have an application that can work on any toolkit without recompiling and without having to always have both tookits installed. With this method, your program could be made to work fairly easily with any new standards that come out too, just make new GUI "drivers". The only problem with this method is that you would probably have to rewrite a fair bit of code for each toolkit, but for full integration into both KDE and GNOME, thats pretty much inevitable anyway.

      A lot of 3D games that use multiple renderers do something like this, Quake II is a good example, you ahve your quake II binary + a few libraries for different renderers, reg_soft.so for software rendering, ref_gl.so for Mesa/OGL rendering, ref_3dfxgl.so for 3DFX OpenGL rendering (links to Glide), and ref_glx.so for Mesa/OGL under X instead of SVGAlib.

    2. Re:What I do by Darxus · · Score: 1

      Abstraction.

    3. Re:What I do by ColtCougar · · Score: 1

      wow, sounds like you read this from my Computer Architecture I class I'm in right now. AASU, Savannah, GA --so this stuff really is useful? huh Dan

      --
      -There are only soldiers, and men who wish they were soldiers.
  106. Modular Interface? by gabe · · Score: 1

    Well, I'm definately no expert on GUI programming using Qt or GTK+, but I have an idea you may have heard, and may like.

    You could write the program in such a way that it uses libgmodule's modules (from glib) and call your own custom written generic functions to create the windows you need, which will use widget toolkit specific functions from a number of modules. I.E. you could have a module for GTK, and one for Qt, and one for Lesstif or whatnot. You just have the program load a module based on a command line option, or a default, and then it will, say based on a variable's contents, extract the correct symbols for the widget specific functions from the modules.

    If you're confused, I'm sorry, but I'm not sure how much clearer I can make this.

    --
    Gabe Ricard

    --
    Gabriel Ricard
  107. we need... by Thrakkerzog · · Score: 1

    X.F.C.

    (The X Foundation Classes)

    :)


    /me runs away

    1. Re:we need... by Foogle · · Score: 1

      Yeah, basically. I mean, MFC blows, but I'd love to see something like this that would be standardized. Of course, you'd never get people to use it unless it was totally compatible with both Gnome and KDE (and Motif/Lesstiff would be cool too). What about some sort of drop-in replacement library that would make them all act the same, even though the calls were different? That'd be a bitch to code though. Hell, even just an app that would synchronize the widgets/color schemes between the two desktops would be great.

  108. Language issues by elflord · · Score: 1
    You could write your apps in such a way that the UI is seperated from the non-UI code, then you'd only need to redo the UI ( there is no way around this AFAIK )

    One issue is that the two toolkits use different languages though. This could make it less than easy.

  109. Re:libglade?? by Avus · · Score: 1

    I do second that.

    It would also be possible to have database forms and views that adapt to the current desktop, using the XML tags stored in the database.
    At least for simpler, not performance-critical GUIs this is an option.

    Just, as the above poster said, find someone to write it ;-)

    ---

  110. libglade?? by lnevo · · Score: 1

    I haven't worked with, nor have I looked at the API, but I wonder if its possible for libglade to generate QT widgets instead of GTK+ widgets at runtime. That would be incredible. Imagine, your whole interface is defined in XML, and parsed at runtime. Your desktop environment is detected by libglade and the appropriate QT/GTK+ gui is created.

    What do you think?

    Lee

    1. Re:libglade?? by drudd · · Score: 1

      Brilliant.

      Now write it. :)

      The difficulty with Linux getting popular is people expect things to be done for them, but aren't willing or able to contribute themselves.
      Doug

      --
      Venn ist das nurnstuck git und Slotermeyer? Ya! Beigerhund das oder die Flipperwaldt gersput!
  111. Re:A Desktop Registry? by ralphclark · · Score: 2

    That is the most idiotic thing I've ever heard.

    Why do you suppose Win95 is so unstable? Why do you suppose the only way to fix it when it breaks is to reinstall from scratch? The registry makes the system nontransparent and creates a single shared point of failure that can (and regularly does) invalidate the entire system, simply because one program screwed up.

    The day that Linux gets a registry will be the day I switch to a different OS.

    Consciousness is not what it thinks it is
    Thought exists only as an abstraction

  112. Design First to minimalize changes by ZeroLogic · · Score: 1

    Just a thought:

    If you were to plan your app carefully, you should be able to seperate out the core of the application from the environment specific portions. While you would have to write some code twice, in the end you would have a program that takes advantage of the functions and capabilities of both environments.

    /Zl

    1. Re:Design First to minimalize changes by rakjr · · Score: 1

      I agree, planning is the key.

      But take the concept one step further. There is nothing particularly Gnomish or KDEish about a PIM. Nor is there something particularly Windozish or PDAish. But the truth is there is a certain look and feel you want out of an application dependant upon the final "run time" envirnment. You can run a text based PIM under Gnome, but it sure would not be pretty.

      Plan the core code for the widest possible distribution, then produce the user interface/windows manager interface seperately.

      The day Sun gets Star Office for win freely distributed the way AOL flooded the magazine racks is the day the streets will be filled with ms blood.

      --

      --
      In a place beyond time and space, in a land far better than this, look for me there...
  113. Re:More general question by Darxus · · Score: 1

    Perl/TK, TCL/TK, and I wouldn't be surprised if there's a Python/TK.

  114. Use a toolkit like wxWindows by KenCrandall · · Score: 1

    The trick is to find an API that works across toolkits. Check out wxWindows at:

    http://web.ukonline.co.uk/julian.smart /wxwin

    It currently supports several OS's -- Windows, Linux/GTK, BeOS, with ports to Mac, Linux/QT coming along. There are plans for a RAD application designer in the works, as well.

    -- Ken

  115. wxwindows.org by VinceJH · · Score: 1

    http://www.wxwindows.org

    This actually redirects you to some faster url in the UK i think.

    --
    I know I will be moderated down for this, but . . . Vincent
  116. Does this app *need* DE integration? by _Gnubie_ · · Score: 1
    From the end users point of view this would be my main question. Personally i run KDE1.1.2 but use quite a lot of gtk apps. Your app shouldnt be integrated for a DE unless it absolutely has to be. This way users of other environments beside KDE/GNOME can benefit from the app. Unless you're writing something using the CORBA extensions of either DE or writing a panel applet then I would definitely advise you to write your app as a pure gtk application.

    Users of both DE's will be comfortable with a gtk app and most if not all of the major distros come with GTK 1.2X installed.

    Perhaps someday there will be a way of easily writing one piece of code with an abstraction layer that can be compiled for either DE but until then i would defintely use gtk

  117. GNOME + KDE: Not really possible today by Zach+Frey · · Score: 2

    (Disclaimer: I'm more of a CLI/network driver programmer, and am new to this "Gooey" programming. I have not actually written either a GNOME or KDE app. However, this is my understanding of how the two do and don't play well together.)

    First of all, it's important to realize that GNOME applications run under KDE, and KDE applications run under GNOME. So, it's not as if writing for one means that users of the other desktop can't use your program (assuming that both GNOME and KDE are installed, of course).

    The GNOME and KDE teams are working out a common window management and session management specification. I suspect this is mostly relevant to people writing window managers and/or toolbar/pager applications, and not to your generic gApp or kApp program, however.

    That said, it's probably not possible to write a single program that is both a GTK+ and a Qt program. The best approach would be to separate the program into a non-GUI server and a GUI-based frontend, and then you could code a GTK+/GNOME frontend and a Qt/KDE frontend (or, in the true spirit of Open Source, simply code the one you want and let a partisan from the "other side" code their favorite :^) ). Since you are guaranteed that each enviroment has a CORBA ORB, making the interface between the server and the GUI based on IDL might be smart.

    Alas, Bonobo and KOM aren't really compatible object systems. Maybe in the future the teams will work out how to embed objects cross-GNOME/KDE, but don't hold your breath.

    And, if only some genius would hack Glade or libglade to work with Qt, making two separate front ends wouldn't be nearly so much work. (But I'm not genius enough to do it ...)

  118. Re:You'd have to deal with all those browser bugs. by Ilmari · · Score: 1
    And they can be horrible.

    My brother is a web designer, and does some pretty funky DHTML and JavaScripting on his personal home page, and he spends ages cursing and debugging the JavaScript for Netscape and IE.

    If you look at the source of *any* of his pages, you'll see it has loads of

    if (ns) var = this.thing.here
    if (ie) var = another.thing.here

    One example is the previous version of his homepage, which he couldn't get to work with Netscape because of a DHTML bug in it (and he is *good* at working around bugs), so he had to create a new one from scratch.


    ---
    Ilmari

    --

    © ilmari. All rights reserved, all wrongs reversed

  119. n-tiered apps by logycke · · Score: 1

    Whenever possible, you should split your program into at least two parts: the main application logic and a client/front-end. This way, you can write a client for GNOME, a client for KDE, maybe even a Java client - whatever. The point is, you're sharing the core of the application, only rewriting what you have to, and you're doing this very cleanly. Use the GUI toolkits to do what they're designed for: GUI's. Try not to couple this too tightly with the rest of your application.

  120. "V" applications framework by Linux+Freak · · Score: 1

    The "V" GUI applications framework is something that has interested me for some time (although, admittedly, I haven't put any effort into learning it -- PHP3 is keeping me busy enough these days). It allows you to write your application to one GUI API, and have it port very easily between X, Win16, Win32, and possibly Mac as well.

    "V" is under the GPL, too...perhaps some interested coders could look into extending it to support your choice of widget libraries and other GUI environments.

  121. GNUcash by GrantLikely · · Score: 1

    Surf on over to http://www.gnucash.org

    There's an excellent example of an app that plays nice in Gnome, Motif/Lesstif and (soon) KDE. The application part is extracted out into seperate code, and a front end for any environment can be written.

  122. Summary by Dr.+Tom · · Score: 3
    First, thanks for the comments that have been posted so far. Second, let me repeat that this isn't about which GUI to use, this is about how to write an app that can run under any desktop (or none) and still be theme-able, drag-n-drop-able, dock-able, etc.

    So, there were several specific points made:

    • Berlin -- Seems to be a replacement for X that is highly modular, including lots of gui/desktop code. Isn't this just another environment we'd want to support?

    • wxWindows -- This contains an abstract GUI API, and several libraries that implement specific GUIs. You write your app for the abstract API. This doesn't address the problem of running under KDE or Gnome, although if the abstract GUI API can be extended to encompass desktop functionality, this might be a good place to start. The difficulty of creating one abstract API that encompasses all known desktops, GUIs, event models, themes, etc. is quite hairy, however.

    • Desktop standards -- The KDE and GNOME teams are working together to create interoperability standards such as window manager hints and so on. This is good and should continue. Is there a standard for themes?

    • Client/server model -- Write your app with a gui/desktop/window manager-independent core, and several specific frontends. This seems to be what you have to do now (and it's really just a good design policy). The amount of code that you have to rewrite is limited to the part that interfaces with the desktop environment. This part could be loaded dynamically, and possibly automatically generated. The trick of course is the API - maybe an extension of the wxWindows GUI API would be useful here.

    • Parrot/Glade/Fluid -- While not all of these were specifically mentioned, they are programs that create GUIs based on some abstract definition. These tools may evolve into something that can automatically generate the frontends mentioned above.

    So the answer is mostly "Not Yet" but the future looks bright. I hope that the various desktop environment makers can agree on some more standards that will allow apps to run anywhere, and I also applaud the efforts of those working on automatic generation of frontend modules.

    I'll be writing my app in as much of a UI-independent fashion as possible for now, and hope that the dynamically loadable GUI/Desktop Environment API is done before I am.

  123. Re:You'd have to deal with all those browser bugs. by Reality_X · · Score: 1

    YACC

  124. Is it really necessary? by ChrisJones · · Score: 3

    Since most (decent) distros include the libraries for both toolkits, you should be able to get it to run pretty much anywhere.

    You will miss out on the funky features of the desktop that isn't running though.

    This is really an issue that GNOME/KDE need to work out whereby the two can exist comfortable at the same time (not all the panels and applet, but the core stuff like session management, CORBA, etc.)

    --
    Chris "Ng" Jones
    cmsj@tenshu.net
    www.tenshu.net
    1. Re:Is it really necessary? by samantha · · Score: 1

      Someone please correct me if I am wrong, but I think the biggest thing missing on Linux today is a good software component technology. CORBA does part of the job but as far as I understand it (and my knowledge is limited here) the equivalent of INPROCs either can't be done or are seldom done and there is a bit more overhead involved in CORBA use than in COM in the MS world. Without a good component technology and reasonably sound interface specifications I am afraid that continual bifurcation and confusion of libraries will result. Tied into this problem is another area I don't have the full skinny on in Linux yet. The ELF binary format supports real DLLs allowing full runtime dynamic linking to the best of my understanding. Yet most instructions on incorporating feature XYZ into my application ask me to linking against some libXYZ.so. With true dynamic linking this is not really necessary and simply creates another dependency to be broken later on.

      Is there a general plan for good lightweight component software that takes advantage of true DLLS (among other things) on Linux? Is this plan at a central enough level that it will be generally available rather than dependent on a particular development flavor like KDE or GNOME or a particular Linux distribution?

  125. Why have two desktops? by EvlG · · Score: 1

    This whole discussion is certainly interesting, but it does lead me to ask, why do we have two desktop standards?

    The most obvious answer is for competition, since many believe that increased competition leads to higher quality software.

    Others believe that since you have to use your desktop environment, you should be able to personalize it: choose the colors, choose the widgets, choose the window manager.

    However, with the recent moves to popularize Linux, I begin to wonder about the wisdom of this philosophy.

    Developers don't want to support 2 desktops. It doubles the amount of effort needed to build the user interface, and could impact other areas of the application as well. This thread is evidence that some care about having their program work with GNOME and KDE. However, how reasonable is it to ask that programmers support both environments? How reasonable is it to ask companies interested in selling Linux software to support two environments? One obvious answer is, it's not, that's why we have Gcalendar/Kcalendar, etc... That strikes me as silly; now we are advocating duplicating ALL the code instead of just the user inteface!

    Additionally, many users don't care about having two desktops. Corporate environments immediately come to mind. If a large company wants to roll out linux for its desktops, they will choose a standard configuration of applications on standard, supported hardware. They don't really care if it's GNOME or KDE, just as long as it gets the work done.

    This adds up to the idea that maybe having 2 desktops isn't such a good idea any more. GNOME has made some fantastic advancements, and KDE too has begun to really push technology. Why not work together and achieve a Common Linux Desktop Environment (CLIDE?).

    This would of course have advantages and disadvantages, but perhaps it is time to re-evaluate where we are going.

  126. See previous Ask Slashdot's by exa · · Score: 1

    I'd asked /. which gui framework is better beforehand, although this question is a bit different, it was also discussed. Please search previous Ask Slashdot posts to find it out.

    Since the two desktop environments depend on pretty different GUI architectures, the first thing to see is that the same CORBA interface works for both... Then, you should encapsulate all GUI into classes, and write separate implementations for GTK-- and QT. However, this will wear you down, since the QT seems to be a little limited for coding.

    One fancy idea that came up was writing a GUI abstraction library. This will facilitate the kind of interface that is independent of any GUI lib. However, it would still support all types of (sensible) widgets, messaging (talking about event handling as well), etc. Unfortunately, that's not a piece of cake, and it wasn't attempted before as far as I know.

    Happy GUI hacking,

    --
    --exa--
  127. KDE FAQ requires Qt by SEWilco · · Score: 2

    The KDE FAQ does not use the same phrasing, it says in 2.6 that KDE uses the Qt C++ crossplatform toolkit, which comes with its own license.

  128. The GUI should be abstracted as much as possible by extrasolar · · Score: 3
    Really though, with as many toolkits as GNU systems seem to require, it makes sense to abstract the interface as much as possible with any major application. Instead of you application asking for a save dialogue box, it should ask for a filename. If you think about it, there are many ways to get a filename though only one way to open a dialogue box. These abstractions could be implemented using any GUI toolkit or perhaps a text interface. If I am not mistaken, Berlin is doing something like this.

    --

  129. Use Libraries by Jimithing+DMB · · Score: 1

    I remember reading some info on a GNOME website about how to write cross platform apps better. What you really should do is write the core functionality as a seperate library. For instance, lets say you are writing an ICQ program (actually, this is what I am doing, but nevermind). What you need to do is write a generic library that is event-driven. That is, if data is waiting on a socket, do something, or if the user has sent the connect command start the connection process, etc.

    I suggest writing it with a cheapie CLI first, but be warned: it is way too easy to write a CLI application that is not event-driven, try to keep that in mind and design around user events not around your programs code.

    Both QT and GTK can be sent a file descriptor to wait on. When it "goes off" it will send a signal and you can do some quick processing. Remember to keep your functions/methods short. If you need to wait on something else then you need to let GTK/QT take over the event loop again and they will let you know when the something else comes in.

    Remeber that you do not run an iterative loop. QT and GTK both have their own loops. And while it is possible to write your own loop to wait for stuff and call gtk_main_iteration() or something like that in the loop, it's a bad idea because more than likely what you want to wait on can already be waited on by GTK or QT.

    If you want to port this to a Windows platform, you can also do so, but I believe you will run your own loop in Windows. Also, the CLI version will need to have its own event loop to wait on stuff (think the UNIX select system call).

    I know it seems like a daunting task, but it will create a better program with fewer bugs because it will make you think about what you are doing. Take a look at the micq or gicq source for a very bad example. micq is essentially a command line app ONLY (and it does some dirty crap with structures instead of properly packing data, but that's another story all together). Gicq is based on micq and is a very bad hack trying to get micq to work with gtk. Instead of adding the file descriptors into GTK's select loop, the author decided instead to run iterations of gtks loop and do his own select (probably to avoid substantial modification to his existing codebase that he borrowed).

    If you decide to write your app this way, it will be a much less buggy, more polished app, and will have the distinct advantage of being able to drop in a different front-end when you feel like it.

    Of course, it has the distinct disadvantage of taking much longer to write.

    Dave.

  130. Re:You'd have to deal with all those browser bugs. by schon · · Score: 2

    Is that what the original poster meant?

    I was thinking about this recently (acually, I was thinking about how the world needs a calendar/scheduling/intranet -type program that's cross-platform, instead of the Exchange/Bloatus Notes that exists right now), and though "what about a server-based app that used the browser for display."

    I mean, for a calendaring app (for multiple people) the data needs to be stored somewhere central, right? This becomes a "write for the web" application, but without the horrendous problems you mentioned (all of which I've encountered, BTW :o)

    The original post mentions /. and Yahoo, both of which are "apps" that run on the server, and use the browser only as an interface (no java*)

    I know that this doesn't apply to every situation, (anything that relies on interactive feedback wouldn't work) but for those that would work, it seems like the best way to make it truly cross-platform (not just cross-GUI toolkit :o)

    If you want to see something like this in action, install Roxen (GPL web-server) and play with its configuration interface. Very slick.

    Just my two cents...

  131. Re:Get with the times - write WEB-BASED apps by spudnic · · Score: 1

    I'm actually working on that app as we speak. I'm using a combination of qmail, mySQL, perl, apache, and debian linux. It is developing into a groupware suite that includes regular groupware stuff (email, messaging, threaded discussions, lists, etc) with lesson plans, student schedules, etc.

    As mail comes I intercept it, break out the mime parts and write the whole thing to a mySQL box.

    And I agree about the speed. Most of our schools around here that are buying into this are on a regional ATM fiber network that they also use for distance learning. It's fast.

    --
    load "linux",8,1
  132. Not worse than ASCII by Twinky · · Score: 1
    You have missed one point I listed.

    Can you tell me how it would be for the admin much different from the current ASCII-hacking state if you have an option to export/import XML-based data?

    You would still be able to hack the configuration with vi, but furthermore you could:

    - force applications to provide a list of entries it wants to be able to edit
    - have all possible options documented
    - write programs that let you edit the current configuration and that check your changes for saneness before applying

    Let me fantasize a bit:

    With every program you would get an XML-file foo.xml that provides:
    - the changes needed for installation (you can read it in advance if you don't trust it) and default values for its keys
    - documentation for every new key/value pair it introduces and a definition of valid values

    Then:
    config --set foo.xml will set/reset the values
    config --remove foo will undo whatever foo did to your registry
    config --extract bar.xml prints the current configuration of foo into bar.xml (with comments)
    config --set bar.xml applies your changes into the registry
    config --undo removes your changes

    I believe this scenario is superior to what we have right now. I can't think of anything that keeps bad scripts from messing up my /etc/* in the current situation.

    It's offtopic but it had to be said

  133. You are biased by Twinky · · Score: 2

    A registry is not a bad idea just because Microsoft screwed it up once.

    A configuration database will always be faster, more reliable and easier to maintain than the current bunch of ASCII-files, given that it:

    * implements access restrictions
    * uses logging so that you can
    - undo all the changes done by a particular user/program
    - or restore the state at a given point of time
    * has an easy to read input/output format (e.g. XML)
    * can be accessed from the command line

    The Windows95 registry was a step in the right direction, but I guess whoever implemented it did not get enough time to think about making it really secure against being messed up.

  134. Re:Get with the times - write WEB-BASED apps by generic-man · · Score: 2
    Even if you're not following "Microsoft's turd-trail" in that regard, web-based applications often follow Microsoft's rules of speed (or lack thereof). Let's say I want to check my e-mail.

    Standalone app:
    Open up the program. The program loads. I click the "check mail" button and the mail is downloaded directly to my PC (for POP) or as needed (for IMAP). I can scroll between the messages and use various functions as necessary, knowing that the program has loaded correctly.
    HTML-based app: (assumes dial-up connection, which is the most common still)
    Dial the ISP. Wait for the connection to complete. Pull up the web browser -- it takes as much time as my e-mail program to load. Type in the URL of my mail provider. Wait for that to load. Log in. Wait for graphical pseudo-widgets to load. When I choose to view a message, wait for the message to load along with redundant controls, buttons and a banner ad or two. The entire functionality of the system hinges on the reliability of that particular Internet site, which can be flaky for any provider.
    HTML-based applications are slow, cumbersome to load and use, and deliver a more narrow feature set than standalone applications. The only way to bridge the gap is to use something along the lines of ActiveX, but of course that's not cross-platform.
    --
    For more information, click here.
  135. There's more to GUI development that meets the eye by poopie · · Score: 1

    It's easy to ask for features if you're not a programmer, and it's easy to complain that there are too many library dependencies on stuff like gnome or enlightenment or anything else.

    but... it's hard to explain to a non-developer about how difficult it really would be to merge kde and gnome apps.

    I don't even know where to start... but anyway, it would be possible for new libraries to be written that would include *supersets* of functions handled by current libraries, and then you could ask developers to write to those libraries, and over time, things might get a little more homogeneous.

    BUT... since much of the code is written by developers who aren't getting paid, you'll never be able to enforce any of these rules.

    life never gets simpler.

  136. Re:No! No! NOOO! by Trojan · · Score: 1

    As Linus would say: Show me the source...

  137. Bloatware Beckons... by chazR · · Score: 1

    I use both KDE and Gnome and think they are *both* great.

    If they each keep following each other's features, I think we might end up with the programmers implementing 'tick in the box for the reviews' stuff rather than concentrating on what the users are really asking for. We all complain about 'bloatware' when a Certain Company ships yet another 'upgrade'. I hope the programmers working on these projects continue to focus on the stuff that matters. Interoperability matters a lot.

    If you think #ifdef is an option, then you've never had the preprocessor bite you hard.

  138. Re:GTK Themes (and @slashdot.org) by WillAffleck · · Score: 1

    After the IPO. All good things come to those who wait to get s....ed in the IPO.

    Good luck on the themes.


    --
    Will in Seattle
  139. Re:You'd have to deal with all those browser bugs. by Stinking+Pig · · Score: 1

    >If you want to see something like this in action,
    >install Roxen (GPL web-server) and play with its
    >configuration interface. Very slick.

    Or just turn on the web functions in Exchange/IIS Notes/Domino. Both have been turning that trick for two years.

    --
    "Nothing was broken, and it's been fixed." -- Jon Carroll
  140. Re:Need more data by Stinking+Pig · · Score: 3

    Okay, you asked :-)

    I want apps from both camps to support drag-n-drop, copy and paste operations from/to each other, with the same key bindings. I also want docks, start buttons, iconbars, and clickable desktop icons to go away or be easily turned off (not hidden). Like the kfm -w command.

    I'd also like the eye-candy stuff on themes.org to have links to cloned themes, so you could download two themes and have both Gnome and KDE apps use pretty much the same look, but that's not important :-)

    I use K and G apps under XFce and WindowMaker.

    --
    "Nothing was broken, and it's been fixed." -- Jon Carroll
  141. Re:Get with the times - write WEB-BASED apps by Mr.+Slippery · · Score: 1
    Yes, HTML apps loaded over a network can be slow - but not all HTML apps have to be loaded over a network! It's perfectly valid to use a browser as a frontend to an app running on your local machine. If all you're doing is clicking boxes and filling in fields - i.e., doing what HTML forms do - why reinvent the wheel? Plus, you've still got the option of running the front-end remotely.

    The amount of interactivity is also a consideration. Hate WWW e-mail apps (prefer mh when I'm telneting and exmh when I'm sitting in front my my box), love my credit union's WWW banking app.

    --
    Tom Swiss | the infamous tms | my blog
    You cannot wash away blood with blood
  142. Another layer ? by Betcour · · Score: 1

    Do you really want another layer ? Graphic apps on Linux are plagued by layers, there are so many layers of API on each others over X-Windows that it makes it a real memory and cpu hog. Damn, at least ONE good thing with Windows is that there is a consistent way of drawing widget without 24687 abtraction layers below.

    Somebody ought to design a new UI that talks straight to the graphic driver...

  143. "Qt seems to be a little limited for coding"??? by HarpMan · · Score: 1

    Limited in what way? It seems pretty flexible to me.

    --
    Stephen Molitor steve_molitor@yahoo.com
  144. Same strategy? by jovlinger · · Score: 2

    This is a completely uninformed question, but do both toolkits have the same use strategy? I obviously don't mean arguments in the same order, but more along the lines of one having an event model and the other using subclassing, or something like that.

    in summarium: is it even feasable (sp?) to write a common abstraction layer?

    1. Re:Same strategy? by Ender_the_Xenocide · · Score: 1

      Qt has C and perl bindings for sure, and I think a few others. Gtk+ has more, though.

  145. There is MGUI - a cross-platform GUI Library by versus · · Score: 1
    I'm posting it just for completeness (just found it...)

    Linux, DOS32 & Windows are supported. Though this thingy is outdated a bit - MGUI main page was last updated in October, 1998...

    Did anyone try it?

    --
    Brain is my second favorite organ.
  146. toolkits by sonoffreak · · Score: 1

    Those toolkits are the *native* toolkits used for each desktop platform. Unless you are writing an app that intereacts with the desktop environment, which I assume you are not, it doesn't matter what toolkit you use.

    You're probably running Netscape in one of the two right now and it doesn't use either toolkit, but you are still able to run it in GNOME or KDE. I've used GNOME apps under KDE and KDE apps under GNOME, its all just personal opinion. Just use the toolkit you like best (GTK of course! --personal opinion) or the toolkit for the desktop environment that you think most of your users will be using. Just make sure they have the needed libraries installed which most distro's come with by default AFAIK.

    --
    ---- sonoffreak
  147. Re:Get with the times - write WEB-BASED apps by Tom+Davies · · Score: 1

    As someone else pointed out, you still need to dial your ISP in the stand-alone case.

    You seem to be assuming in the HTML case that you are using a free email service somewhere out on the net.

    If you were buying the email service from your ISP (as you are in the standalone case) there wouldn't need to be any banner ads, and connectivity would be just as reliable as it is to the POP server in the first case.

    As fast internet connections (cable/xDSL) become more common, web based applications will become useful for a wider range of applications.

    ActiveX is not cross platform (nor is it secure), but Java applets can be, as long as you can find a browser for your platform which supports a reasonable version...

    --
    I have discovered a wonderful .sig, but 120 characters is too small to contain it.
  148. A Desktop Registry? by InSaNe+ASyLuM · · Score: 1

    I've been wondering about this for a while myself. I recently switched to KDE from Gnome, mainly for Kdevelop, but I still use a few Gnome apps. I've been trying to find a way to make them "play nice" ever since I switched. I know that Kdevelop will automagicly include everything you need to be KDE compliant for you, but Gnome doesn't have anything like this AFAIK. If Kdevelop could be modified to allow you to select multiple desktop compatability, that would be a great help, but it would still limit you to compatibility with existing Desktops Environments(DE) only, forcing you to recompile if a new DE ever came along. This might not be a major problem, since it seems most people are taking to either KDE or Gnome, but you'd still have to recompile if there were ever any major feature changes to one of the DEs. It'd be nice if some sort of system could be developed that would allow IDEs like Kdevelop to create apps around a central registry - not totally unlike the MS registry system, but different in that KDE and Gnome are two totally different DEs, where as Windows is a single desktop that can simply be configured in different ways. What I am thinking of would work at a much more fundemental level than the MS registry (I think - I'm really not all that familiar with the Windows registry) You could simply have a single file listing the libraries that an app would need to load at runtime in order to be compliant with the DE that is currently being run. If any major changes were made to future versions of that DE, or if you ever installed a new DE, those changes could simply be made to the registry file.

    Any comments on this? I'm curious as to whether or not this is workable.

    --

    Roses are red, violets are blue. I'm a schitzophrenic, and so am I.

    1. Re:A Desktop Registry? by InSaNe+ASyLuM · · Score: 1

      Win95/98 is so unstable because it badly coded from the ground up. I've had my share of problems with Windows, but only one has ever been due to the registry. Besides, even if the registry were the source of Windows problems, that doesn't mean that it can't be done right with Linux.

      "The day that Linux gets a registry will be the day I switch to a different OS."
      How about, "The day that Linux gets a Desktop will be the day I switch to a different OS."
      Your reasoning is that it's bad because Windows uses it. Just because MS does something poorly doesn't mean it's inherently a bad idea.

      --

      Roses are red, violets are blue. I'm a schitzophrenic, and so am I.

  149. Re:You'd have to deal with all those browser bugs. by lscoughlin · · Score: 1

    Your not absolutely dependant on javascript or jscript or whatever. It can all be accomplished through server side scripts and a cookie or two.

    --
    Old truckers never die, they just get a new peterbilt
  150. You'd have to deal with all those browser bugs... by Tony+Hammitt · · Score: 2

    I like the idea of being able to write applications once that run anywhere, but the reality is that they won't work. Java is a nice idea, but there are so many bugs that it can't be used in any realistic sense.

    Writing for the web sould work if everyone supported the standards and only the standards. But with companies like M$ perverting everything they touch (how'd the screw up ASCII? why?) we all have to put up with code that works on one box but crashed on another.

    I usually run with Java* turned off. There's a lot of room for bad code in the standard, so it's best to just avoid it.

    In order for a place like Slashdot to exist, there have to be people around writing code for their pages to run on and code for us to talk about. I realize that you could be joking here but let's get serious. There is no way that you can write applications for the 'web' and expect them to work for everyone. Even if they did, they'd be about 1/50th the speed of a compiled app, so what's the point?

    Have a fun day, gotta go code...

  151. Mix it up... by shadowRider · · Score: 1


    No matter what you do it would be a good idea to adopt an MVC (model-view-controller) architecture. However, depending on the flexibility vs performance requirements of your application, there are a vast number of possibilities in implementation.

    If performance is key, then use MVC to separate your Gnome and KDE code based on some compiler flags.

    If flexibility is key (and this is more my area of expertise) then package the application into CORBA or EJB components. This will allow you to select from multiple GUI interfaces (standalone, applet, or HTML) depending on the client type or location. The cool part is that you can use them all interchangably and/or at the same time.

    Personally, I vote for a JCalendar... ;)

  152. Just write it for X, let everyone use it. by Bourbon+Man · · Score: 1

    This post is not to support any one window manager. On the contrary, it is intended to promote good sense. I can't see why you would limit your "clientele" by catering to any one or two window managers. Why not write your app so it can be used by anyone, whether they use Gnome, KDE, FVWM, Blackbox, WindowMaker, ICEwm, or whatever other window manager a person chooses to use? A well designed program should trancend the petty squabbles over which manager is the best. If you really want your program to reach the most users, remember the old KISS rule. If, for example, you write your program for X, and Joe happens to run M and it doesn't work under M, do you think he's going to switch away from his beloved M that he's been running for years just for your program? I doubt it. If it's a decent program, try to make it available to our whole community, at least to start. Then the community can help you make manager-specific ports. That's what this whole Open Source thing is about!

  153. Use XPFE? by sabre · · Score: 1
    The mozilla project has been developing their cross platform front end, which has been ported (among others) to QT and GTK+... It seems to be quite comprehensive, allowing you to write in applications in HTML/XML and Javascript... Or just C++ if you prefer. :)

    See: XPFE homepage for more info.

    -Chris

  154. Re:More general question by kafka · · Score: 1

    Python uses Tkinter.

  155. Excellent comments! by Woodrow+Stool · · Score: 1

    I think you're the only person out of the whole crowd that really "gets it".

    Linux may be a great server, and fabulous bang for the buck, but the desktop currently is *hopeless*, and two competing desktop GUIs will make sure it stays that way for many moons.

  156. Need more data by Ledge+Kindred · · Score: 5
    Let me preface this by saying I'm neither a GNOME nor a KDE hacker, however, I've used both GTK and Qt to bang together some silly little programs for myself.

    The question doesn't seem to be adequate to an accurate answer. If you mean "If I use Qt, can I run my apps with GNOME and if I use GTK, can I run my apps with KDE?" the answer is, "Of course."

    If you mean, "If I use gnomelib routines, will my applications run under KDE and if I use kdelib routines will my applications run under GNOME?" the answer is, "Of course."

    If you mean, "How do I write an application that will work equally well with KDE and GNOME, including things like docking and interapplication communications and all the fancy stuff that make GNOME and KDE more than just fancy window managers?" I'm pretty sure the answer is "You can't yet."

    GNOME is already pretty much "CORBA-ized" and KDE is at least partially from what I understand, with an effort to make it "fully CORBA-ized" by the next major release. (2.0) I know there is a lot of communication between the two camps to have a lot of their features interworkable. But then the question is, "What are the features of each desktop manager that you want to work with each other? Drag-n-drop? Docking? Do you want to be able to embed GNOME 'objects' in your KDE application? WHAT DO YOU WANT, MAN?!"

    You're really probably better off joining the GNOME and KDE development mailing lists and asking the question there. You will probably get a flood of useful answers since it's been my experience from lurking in the lists that the developers of the two toolsets seem to be much less prone to the "[not my brand of desktop manager toolset] sux rox!" mentality and more of the "Well, obviously we like [x] because we're programming it, but if you want [x] to Play Nicely with [y] apps, here is what works and what doesn't work yet..."

    -=-=-=-=-

    --

    -=-=-=-=-
    My mom's going to kick you in the face!

  157. Aren't future versions of Netscape gonna use GTK? by AussiePenguin · · Score: 1
    I think GTK+ 1.2 also implements the Motif drag-and-drop protocol (which may explain why dropping from the Motif-based Netscape to the GTK+-based GMC worked); what are Troll Tech's and/or the KDE team's plans to implement the Motif DnD protocol?

    I thought that I read somewhere that Netscape was going to use GTK in future versions anyway. Does anyone know if that is right?

    AussiePenguin
    Melbourne, Australia
    ICQ 19255837

    --

    Jeremy
    Melbourne, Australia
    Jabber Australia

  158. I've run all my apps mixed NO PROBLEMS! by Rares+Marian · · Score: 1

    Guys I've run dozens of apps between the two so cut the crap.

    --
    The message on the other side of this sig is false.
  159. There should be common back-ends by mlefranc · · Score: 1

    The shame in the duplication of applications is that the KDE and GNOME teams could probably collaborate on toolkit-independent back-ends, and only implement the graphical front-end with the toolkit of their choice. The result is that while, there are for example excellent mail programs such as mutt or pine (or gnus) on one hand, programs such as kmail are cute but do not come anywhere close in functionality.

  160. No! No! NOOO! by FooBarSmith · · Score: 0

    oops sorry for the exclamations...

    dont write for KDE, dont write for Gnome.

    the env to target for is CDE, the Common Desktop Environment. Think past the Linux box, CDE targets pretty much any Unix type OS and is pretty damn usable.

    KDE & Gnome are divisive. CDE is inclusive - Linux, *BSD, Irix, Solaris, AIX....

    --
    stty erase ^H
  161. Re:More general question by chadmulligan · · Score: 1
    Well, my coding in the past 15 years has been 95% for the Mac. I've investigated doing a Windows/Mac cross-platform app twice in the last year or so, and both times I've ended up recommending against it.

    There are many subtle issues regarding user interface, and it's very hard to keep faithful to two different sets of conventions regarding mouse gestures, control focusing, and expected app behaviour under all circumstances. That said there are some reasonably successful cross-platform apps : Adobe Photoshop, Macromedia Freehand, and SoftArc's FirstClass come to mind. AFAIK none of them was written with a commercially available crossplatform toolkit - each company preferred to roll their own.

    I've looked at the cross-platform stuff in Mozilla and was, frankly, scared off by the complexity... or rather, I've got better things to do with my neurons than trying to understand how Mozilla does it, at least at this time.

    My coding on UN*X-like systems has always been limited to command-line stuff; I feel that unless someone hammers out a common standard GUI for Linux, at least on the API level, none of the Gnome/KDE stuff will really catch on, or at least become a commercial threat to Apple or Wintel. My personal feeling would lean towards GNUStep...

  162. lowest common denominator is probably GTK by SEAL · · Score: 1

    This is just my perspective, so take it with a grain of salt.

    In order to code for both desktops, you have to look at what they are each built upon.

    GNOME -> GTK+ -> X
    KDE -> QT -> X

    Ok that's really simplified and leaves out stuff like imlib. But you get the idea.

    GTK seems like an acceptable level to work with. Why? Well, GTK is required in order to use the GIMP, which many people have on their system. I can't think of an app as popular as the GIMP that is written for QT (besides KDE itself).

    So there are probably alot of KDE systems out there that ALSO have GTK installed. I think it's less likely that a given GNOME machine will have QT installed.

    Of course writing for GTK doesn't get you alot of the cool features for a particular desktop. I agree that it would be nice if there was a better cross-desktop development tool.

    Another $.02 for the pot,

    SEAL

  163. Re:You'd have to deal with all those browser bugs. by lucas_gonze · · Score: 1

    html/jscript etc is a basically unusable dev environment for a lot of applications. the biggest problem is statelessness. the second biggest problem is javascript bugs - you absolutely must not depend on javascript. (part of the problem with jscript is that a user isn't required to be using it - any validation you do in javascript you have to duplicate on the server side). the third is bandwidth.

    we'll need to move beyond the web before we get there. an internet app toolkit with the strengths of the web would be just fine.

    FWIW I'm a senior web developer with plenty of apps behind me.

  164. Re:write for gnome, kde sucks by WeeMadArthur · · Score: 1

    Well, in my opinion both suck. who needs either one. Gnome is buggy and KDE is ugly as hell. both have that gay start bar type thing. if i wanted that i'd use windows. however, it is good that they are being developed because in addition increasing the number of choices you have with *NIX, it is making it easier for the average user, such as my little sister or mom, to use a superior operating system. but until gnome or kde has some feature that actually increases my productivity, i'll stick with windowmaker. It would be nice if the two different camps would get together and agree to some standards. whatever Andrew

  165. Re:write for gnome, kde sucks by norom · · Score: 2

    Log in and say that. Go ahead, I dare you.

    The whole idea behind linux for many people is that they don't have to use MS products anymore. Why should they be forced to choose GNOME over KDE?

    And if you are curious, I prefer GNOME.
    ---

  166. Try wxWindows by scj · · Score: 1
    Check out http://www.wxwindows.org

    Ports are available for Win3.1/9x/NT and GTK/Motif/Lesstif. A Mac port is underway and ports to Qt, BeOS, OS/2 and more are "under consideration."

    Liscensed under LGPL.

  167. More general question by gargle · · Score: 1

    A more general question: Is there a good way of writing GUI based apps that are at least source code compatible across multiple platforms (e.g. unix, mac, windows)? Java is one way, are there any others? And preferably free.