The Desktop Wars
An anonymous reader writes "Sam Williams at Upside.Com on
the Gnome vs KDE wars with real quotes from real people."
It's interesting that this debate has faded so much. This article
is a nice summary of the situation right now too- lots of
interesting bits (although the server seems laggy).
Both of these (EMACs, not totally sure) can do this or something close.
Maybe I should have updated the OS War to Desktop War... how can you keep up with all the war.
Anyway, if anyone cares about OS Wars anymore, or helping charity. The OS War for Cystic Fibrosis is on again. Now at:
http://earth.vol.com/~winesett
If this thread were up for 20 minutes I would have seen it much earlier than I'm seeing it now.
Either I'm dreaming or something is fishy.
You won't get a good perspective from reading the typical Slashflame(TM) on how these Desktop wars escalated.
If you want a historical perspective, I'd recommend that you go to http://lists.kde.org/, search for GNOME and read the messages circa 1997.
People like Alan Cox, Molnar Ingo, Miguel were involved in these wars. Here is a sample.
The birth of GNOME:
http://lists.kde.org/?t=88665907 200005&w=2&d=1&r=1
Alan Cox explains his view Qt situation:
http://lists.kde.org/?l=kde&m=8866 5701714612&w=2
A lot of big FUD wars, and not so FUD wars, began. Mingo's message illustrates the gravity:
http://lists.kde.org/?l=kde-u ser&m=88665837214455&w=2
All this leaves me sick to my stomach, but I had to speak out.
It came with Wincrap95's Plus package. The program (themes.exe), however, crashes upon loading. Typical Micro$oft.
"Viewing Qt with all the enthusiasm of an Indian sepoy regiment facing a fresh shipment of .303 cartridges slathered in pork grease and beef tallow, the most extreme free software adherents decided the only way to prevent such a calamity was to eliminate the taint of proprietary software altogether. "
Katz, are you reading.......?
Both of the text editors included with KDE support marking a block via SHIFT+cursor keys, as well as double-clicking on a word to mark it. Put another point in the KDE column.
I don't think it matters much anymore. Personally I don't use either (and probably never will). Lets not rehash this into another war (god knows we have enough real-world wars going on).
I don't know why this reporter even bothered to bring up old news.
It's about time the mainstream media hear about all the FUD and silly infighting that happened in the geek world. It may be under the bridge, but history lives.
Thankfully this one was a tame article and did not cover such things as that infamous Slashdot feature of yours.
Just a few posts in the past month, and all about a joke.
You can use Qt 2.0 for commercial software, if you couldn't it would be non-OpenSource! I believe you mean that Qt 2.0 cannot be used for non-OpenSource software without a fee. This is true.
It may seem like a minor difference to you but the difference is crucial! commercial neq non-free!
You will notice that the Caldera installation program is commercial, OpenSource and uses Qt!
Yup, GTK/GTK+ is all Peter Mathis, Spencer Kimball
and Josh Macdonald, The only thing redhat had
managed to produce is a E which is terrifying
to say the least
Commercial developers not only don't care about having to pay a license to develop proprietary applications, many also pay Troll Tech to help port! Look at Opera and the much praised Caldera installer. Those were both contracted out to Troll Tech.
Real companies care about stablity and ease-of-use.
...because that's what you are saying.
It's a kind of irony that the KDE team is much closer to RMS now than the Gnomes.
Why?
a) RMS dislikes the widespread use of the LGPL. He prefers the GPL
b) The QPL is the GPL + compatibility with other OSS licenses
c) The main advantage gtk advocates like to emphasize is the "no cost for proprietary development" issue, certainly not something RMS is terribly fond of...
And BTW: This does only matter for Shareware. "Real" companies/programmers want support, and this means gtk is even more expensive than Qt.
(Qt Professional comes with 1 year of support for $1200, RedHat support is considerably more expensive...)
There are basically two things that I would like to see done.
1) KDE and GNOME agree on a SINGLE Window manager
interoperabiliy standard -- both the current standards have shortcomings, and kwm is too much of a liability for KDE -- when will we be able to run e properly with KDE -- and with a decent amount of integration?
2) Heavy (i.e. pervasive) threading throughout KDE , Qt, and support for local processes to effectively run 'in-server'. The MacOS menubars need to be reintegrated, and have the menus moved out of the application, and into the window manager, along with all the toolbars -- and make it possible to effectively run the window manager in the same memory space as the X server, so that each can hook messages from the other, and share
data structures (so that a window's menu and
toolbar structure gets stored in the window's
attributes on the server, and implemented by the
window manager).
It forces them to focus on the underlying functional standards as opposed to the minutia of each desktop standard. Those (real) standards can be addressed just as easily by an Athena app as they can by a Gnome app.
A decade ago, there was probably a decent excuse for not having the application logic in the display server, but these days there is none.
Why do the window managers HAVE to run outside the display server? (If you can't see the problem, think about the amount of inter process messaging
going on just so that a mouse click-drag on a
window does something)
The current e-theming mechanism needs to be
improved and extended to supply menuing toolbars
widgets etc. and then placed inside the X-server.
(read a little about how NeWS did things, and
you'll see what I mean -- the display half of
the application should reside in the display
subsystem)
That presumes a population willing to 'subjugate themselves to the will of God'.
This is why Cathederals are a bad idea to begin with, if you are of a draconinan persuasion and all the effective construction methods are 'distributed' nature. Design with the Bazaar in mind to begin with.
Window manager interoperability is CRITICAL at this point -- GNOME and KDE need to sit down, rip each others designs to shreds to see where the problems are, and then combine their efforts to redesign app wm interaction.
We already have a standard interface. It's called WIMP. Innane minor differences in the visual appearances of widgets are IRRELEVANT. Looking like widgetset foo won't do shit for the Unix desktop.
Do any of you people ever bother to examine how it is that you derive usefulness out of a desktop. Likely it's not from widget conformity. Rather more likely it's from the like of DnD, or a clipboard or OLE/Corba.
Those are the things that really need to be focused on.
Netscape not taking drop targets from gmc is considerably more of an issue than their widgets not being quite the same or their hotkey schemes differing.
AFAIK, Netscape -can- accept gmc drags. Or it should be able to. (I'll try this when I'm on a machine with Gnome again, the Sparcs here don't have it :-P ) I added DnD support to GnomeICU and it takes both gmc and Netscape URLs, so I believe the formats are rather similar. :-/
Daniel
Most companies that develop proprietary software already have budget allotments for software development licenses and for much higher cost than that of the Qt license.
I suggest you think a moment more about the 30th of February. :-/
[ I'm being facetious..what I should have said is that it's frustrating not to have any indication how close to a release they are. ]
Daniel
Redhat has developers working on both KDE and GNOME.
You were taken hook, line and sinker... lol.
Java should be used to replace KDE/GNOME - that way we could have a kick-ass totally cross platform GUI.
What features does KDE/GNOME offer that Java doesn't already have? Nothing.
C/C++ is history - use Java instead.
I couldn't see it in the press release -
which version of Qt and KDE did RedHat 6.0 ship?
what about the Gtk/Gdk version they shipped for GNOME?
The strength is that with OSS, you know that something that is crap won't stay that way if competent people are interested in fixing it.
A GPL'ed Harmony cannot be used for anything Troll currently makes money from (with one exception: all Qt software under Windows is currently payware, even if it's open source - but how much GPLed Windows/Qt software is there, anyway?).
[Footnote 1: How much of a problem is it? Quite a bit or none at all, depending on your point of view.)
You have failed to consider the recent advances in Java JVM technology. Java is far easier to write a GUI for than those outdated languages: C and C++, and will work on all platforms including Windows, BeOS and Macintosh - platforms that Gtk+ and KDE don't support.
Am I the only one who felt like xpat was enough for solitare? I was happy with xterm AND rxvt AND nxterm AND all the other freakin 'terms without needing a kterm and a gterm. Really, what's all about?
Both KDE and GNOME suffer from a fatal flaw: they are licensed under the relgiously-motivated GPL. Unfortunately, this means that the code is off limits to commercial developers who would like reasonable compensation from their work. The only reason that the underlying X environment is universally available is because it was published -- and, after a brief departure into foolishness, is still published -- under a license that allows commercial adaptation and re-use of the code.
Only a desktop licensed under the MIT X license, or the similar BSD license, will be adopted universally. No matter how passionate some people are about their licenses-cum-religions, it's time to put them aside in this case. So long as commercial vendors have a disincentive to adopting either of these desktops, we'll continue to have fragmentation.
--Brett Glass
you sit there and count how much shareware is specificaly made for GNOME and KDE... How much freeware is made specificly for GNOME and KDE.... Compare the two and then validate it, till then this FUDs for you.... cheers
Were they talking about commercial apps or proprietary software?
Last I checked it was proprietary software. As far as I understand it commercial apps are usually not that big a deal since they are to make money off of the app. On the other hand proprietary software is proprietary, to be used by the company and for the company, and people are less likely to see a big return in money on spending money on proprietary software, where as commercial apps are developed to return the money invested. I wouldn't be at all surprised if engineers had to jump through hoops and do back flips just to get resources for creating/expanding proprietary software because usually proprietary software means all in-house, they are not supposed to be using someone elses libraries they are supposed to be using their proprietary libraries to develope their proprietary software, etc,etc,etc.
AFAIK, KDE set out to emulate Windows' look and feel, hence the use of Qt.
What I want to know is why anyone would want their Linux system to look like Windows in the first place? I know customizing can erase that, but a lot of the standard apps emulate similar apps shipped with Windows. Ack!
I don't know anout everyone else, but I *don't* want my Linux box looking and feeling like Win95..
Ever try TkNotepad? It's the best text editor I've found for Linux so far. Small, fast, and allows things like that.
given the following choices:
a. I like GPL for free library.
b. I like LGPL for free library.
c. who cares?
my favorite is control-middleclick on my Lispm.
Click on something and you got it copied and pasted. Same as Command-Click in MCL.
Can't live without it.
Hmm, actually, there is no technical definition of what it means, PIXAR uses proprietary software, which they do not sell. when someone makes a game and does not release the source code they do not call it proprietary software, although you may read in a magazine that the game was created using proprietary tools. Its actually just an abused word that doesn't have much meaning any more, considering there are companies that do call commercial software propreitary software.
Well I'm going to speak from experience here that the linux desktop has a long way to go before it can rival apple or windows. I have used both KDE and Gnome versions 1.0 and have been, to say the least, asstonished at the pace at which these products have been built at. I am also blown away by list of features that each of these interfaces offer. I however do feel that they lack a very fundimental core group of applications specifically designed for them (this is more of a problem for gnome then KDE but KDE isn't that far ahead) Yeah we've got great desktops with cool features and icons that are too big (I think the icon size should be about 24x24 but that's just me...) but we need applications, a more stable and better xServer (more drivers, 3d support, integrated font rasterizers, etc) and better multimedia support (sound cards, esound seems to be doing a great job with the sharing of the sound daemons, tv-tuners, mice support/specific drivers, etc) before linux can really be ready to topple the dreaded windoze culture and bring world domination to linux.
The 'Great Linux Desktop War' is something that could have and should have been avoided right from the start. I spent some time reading lists.kde.org around the fall of '97 when it all began..seems like the whole thing was a misunderstanding right from the start. Hurt feelings and badly-worded comments went a long way to starting this mess.
I agree with the article that perhaps it would have been better if there hadn't been a 'schism' into two camps, but now we have Gnome and KDE as fully independant projects. Competition is good.
I've used KDE up until now, and nowadays I find myself switching equally between KDE and Gnome, running both KDE and Gnome applications in either environment. There are things about either environment I like. The thing is, I'm finding a lot of duplication...that's too bad, in a way. But I'm almost at the point of cross-breeding Gnome & KDE. I like KFM better than GMC for desktop management, and the Gnome panel is better than the K panel. If they all talked the same language at some level I could mix it all up be quite happy!
At any rate, if the flames are all dying down, then all I can say is GOOD. Gnome & KDE are going to take us to the next level, that's for sure...Microsoft isn't going to know what hit them. (although how much do you want to bet Microsoft will put some form of 'theming' into their next UI release?)
Take a look there :)
Despite how Gnome advocates like to trumpet the use of CORBA in their DE, KDE would seem to have the most stable foundation to build on in the form of KOM/OpenParts.
I think it would be great to see both DE use this fantastic technology. With a standard implementation of KOM/OpenParts and a common DND protocol in use between the two projects, I believe that convergance or at least increased inoperability would be much closer. I fully acknowledge though that this is unlikely to happen in the near future as both camps are likely to be reluctant to change their ORB implementations and in particular the Gnome camp who have spent so long (needlessly IMO) implementing their own ORB.
On a somewhat unrelated note, although the KDE/Gnome debate may be far less vocal, there still exists a large bias towards Gnome by the story posters(CmdrTaco et al). /. freely acknowledges its bias towards Linux and open source/free/call it what you want projects, but the prejudice that would seem to exist against KDE is bad. KDE is a fantastic piece of work that deserves as much credit as all other projects and I think that CmdrTaco etc. should try to be more objective in their story posting and if they are going to announce every Gnome pre release they should also do the same for KDE.
I am a big fan of /. and it is one of the few web sites I read every day without fail. However, I think /. needs to overcome its bias lest it fall into the trap of forcing the opinions of a few on everyone, this is one sure way to lose readers.
Robert
Try nedit. It feels a lot like the Windows Notepad, and it offers many other features. Give it a try, see if you like it.
I'm the target market of kde. Mostly WinDoze user, but I did
install an all around Linux web and modem server at work.
Does a pretty good job spooling mongo sized print jobs, too.
I've just installed the new Caldera 2.2. This is the first site I
browsed with kde. You've got a winner here. The modem
setup is a snap, and the desktop is pretty and well organized.
I like it.
I've got a SillyCelery 300 with an aging Number Nine Vision
330, and it's quite snappy. Much better than Win98.
Along with compatibility with my huge collection of TrueType
fonts, I like to have my apps start up in the virtual screens
of my choosing. Applix (I've got the demo) in screen One,
Netcrash in screen Two, asWedit in screen Three. Other
than that, I could lose DOS for this in a minute.
The author definitely wins the obscure reference of the day award!!
But I think it was very apropriate. The decision to use animal based lubricants on cartridges was based on practicality, but failed because no one considered the religious/social impacts.
This parallels pretty well what happened with KDE....
Why have we managed to inherit this 'ONE winner ONLY' attitude from Microsoft. I can see that some things need a single standard, like X Windows. I can also appreciate that a desktop manager is a BIG project, making duplication of effort a question-worthy practice.
But desktops are a darned personal thing. Nobody questions multiple window managers, for that matter nobody questions the sheer number of wm's that clone NeXt, alone. The desktop is at least as personal as a wm, even if just a little more development resource intensive. But I'd like to have my preference, and I don't mind if you have yours. But please don't try to send my preference into oblivion.
I'd be far more concerned about seeing some level of interoperability between KDE and GNOME. I look at some of the new announcements, and think, "K-this, G-that, and F-You!" I'd rather pick the desktop environment I like, pick the applications I like, and just run.
I also kind of wish KDE and GNOME were a bit more different - to emphasize the choice aspect a bit. They both chase WinXX a bit too much, I sure wish someone would chase the OS/2 WPS a bit harder.
... and I don't want to be forced to care which my users are using.
I happen to be using KDE, because at the time I set up our company network, it was most usable. Some of my users are now on GNOME, and I expect more to switch when I install Red Hat 6.0.
As long as we have CORBA / Wine OLE2 / K/OM interoperability, and window managers that are compatible with both, then I'll be happy.
HowTF am I supposed to enter <-> (or ) into these poxy comments?
1) Choice is good.
...
2) Competition for desktops existed before KDE vs GNOME. There is of course, KDE vs MacOS and KDE vs
Win9x and
3) Parallel systems are good when they are creating new code, not when they are duplicating work.
4) Forcing applications to deal with both forces developers to dilute their code to use "common" features between the two instead of use features which only exist in one of the two.
I could see people wanting to use CORBA features of GNOME, but not being able to in KDE. The comprimise would be not to use CORBA which would result in an inferior product. The same is true for other parts of GNOME features which do not have counterparts in KDE, and vice-versa.
I guess KDE & GNOME is akin to Linux & FreeBSD. A large portion of work & code between Linux and FreeBSD is duplicated and for all intents and purposes, wasted. However, people who work on FreeBSD would not work on Linux and vice-versa and at some point will create code which doesn't duplicate the effort of the other programming team... This is an inefficient way to go about working on a project, but it beats the alternative of not producing any code at all.
--
The world is neither black nor white nor good nor evil, only many shades of CowboyNeal.
Posted by GhostX:
I don't know what the *official* way to do this is, but I did it this way: first, I started in Gnome, I used the gnome switcher tool in system utilities to switch to KDE: I then had two panels, the Gnome and KDE panel. Then, I switched to Afterstep.
From Afterstep I had only the file manager from KDE, and nothing, seemingly, from Gnome. The file manager was in the form of the autostart folder, etc on my desktop. Then, I found a Gnome panel app in the bin, the mem and cpu one, and ran it. That started up the Gnome panel in Afterstep.
The Gnome panel has the KDE panel on it, through the "foot". So, that is how I got all three window manangers to work in one with 5.9.
And, it is cool.
Give me a fscking break. Have you actually tried running it or do you just believe every piece of propoganda you hear. I have been using java on and off for 4 years (hey Swing/AWT IS better than MFC, but thats about it) The design of Swing is fine, but the actual implementation is SHIT - try reading the bug list on JDC, look at the actual source code if you like - or even better actually try to produce a significant commerical quality working application with Java and maintain your sanity. It's not impossible, it's just very very difficult and it takes YEARS to learn the workarounds to all the bugs. Try printing from java at anything other than 70 dpi, explain to me the appropriate times to call update(), invalidate(), repaint(), paint(), and then tell me which Swing components work as intended and which ones require you to invalidate() the parent container explicitly.
Java - how to turn a Xeon into a 386. Server side java is worthwhile, but as an environment for writing industrial strength client applications it SUCKS. It is much slower, less reliable, and less expressive (ie it takes 500 lines of java to do the equivalent of 50 lines of STL intensive C++ - try writing something like blitz - http://monet.uwaterloo.ca/blitz/ in java...)
However the main problem is that the system libraries (AWT/Swing especially) are just not reliable. I really think MS has better programmers than Sun.
As for C/C++ being outdated - well I might believe it when I see one decent application written in Java.
http://rareformnewmedia.com/
The core of the discussion used to be about what we wanted from a Unix/X11 desktop:
- We want to replace proprietary software with free software.
- We want to replace bad/Microsoft software with good/non-Microsoft software.
KDE was (originally) fine with regard to the goals of the second group, but totally ignored the goals of the first group. With the new Qt license, the problem has gone away. KDE is no longer a threat to the first group, so we can now choose solely on technical merits.
Yeah, it was announced much earlier (April '97?) but the only thing was that if the licensing was changed on Qt, that whatever the current release was, would be released by the Qt Free Foundation under the BSD license.
Stating on Slashdot that I like cheese since 1997.
To keyboard-select in (X)Emacs, you hit C-Space..
Daniel
Hurry up and jump on the individualist bandwagon!
What features does KDE/GNOME offer that Java doesn't already have? Nothing.
The fact that they're both based on sane languages? The fact that their APIs aren't baroque to the point of incomprehensibility? The fact that they aren't bogged down by a virtual machine? The fact that I don't feel like tearing my hair out in handfuls every time I sit down to use GTK+? (Swing produces this reaction)
The only reasons to use Java are:
(a) You want your program to run on multiple platforms but don't want to release the source.
(b) Web applets, where you want to distribute a compiled version of the program
Of the two..I don't have a whole lot of sympathy for (a) and unless you're suggesting that we should move to only using web-page applets, I don't think (b) applies.
Daniel
Hurry up and jump on the individualist bandwagon!
http://ultra7.unl.edu.ar/kfte
I think you are confusing proprietary software (software for which the creator keeps the source private) with commercial software (software which is sold) with private use software (software that is not distributed)
Why KDE? Why not go the other way around, and add GNOME support to Qt?
What you said of KDE can be said of GNOME as well.
Free Software: the software by the people, of the people and for the people. Develop! Share! Enhance! Enjoy!
http://www.guest.net/homepages/mmotta/VDKHome
It's a fairly nice set of Foundation Classes modeled on VCL from borland. I like it, but then again I'm a C++ Builder and OWL person, so it is very familiar.
-- Slashdot sucks.
In the end, both projects really should converge (or nearly converge). Why? Choice is good, but only when all of the choices meet certain standards. To give an example: vi and Emacs. Both editors are radically different. but they agree on one simple standard: ASCII text. What does this mean? It means that I can work on a file in either Emacs or vi (or Pico, or joe, or any other text editor) without worrying about who created it.
Gnome and KDE need to do this. They've made one attempt by agreeing on XDND (technically you could say that X is a standard here as well), but that attempt is, quite simply put, feeble. They need to standardize on other issues, such as window manager support and the object models they'll be using. The end goal of this: Take two computers. One has only KDE on it, the other has only Gnome (though both have GTK and Qt). Take one app and compile it on each machine. Then run it on both machines with no problems.
The idea of having to write code for two desktop environments is ludicrous, and developers simply will not do it. TH4ey'll choose one or the other (in the furute it'll more likely be Gnome simply because that frees commercil developers from having to pay monstrously high licensing fees to Troll), and users will have to keep both on their system. That shouldn't have to happen.
As it stands, both DE's are currently flawed. KDE is ugly (even with themes support, which is too limited), the apps don't interact well, and it has the worst WM I've ever seen (though that can be replaced). Gnome, however, should still be in beta; despite the FUD that KDE users love to spread about version numbering it's not quite stable enough (and it still doesn't compile well on LinuxPPC R4; it can be made to compile not not particularly easily). Besides that, the installation is simply too difficult right now. Converge the products, and you have something that's not too shabby.
What KDE and Gnome could use is the component model that lives behind Swing, namely Java Beans and Enterprise Java Beans. This would allow the two systems to interconnect easily.
For those of you that don't like Java in any shape or form then consider that the OMG is using the EJB as a baseline for its forthcoming component model. Contrary to received opinion this has bindings for C++ and Java at the moment. I would expect bindings for other languages to be incorporated later.
I think there is need for some place where authors of articles like this can send them and get help with things like "GNU Public License" and misunderstandings like "GNU ... and Red Hat initiated work on the GTK."
It would benefit everyone. The authors wouldn't have to be embarrased over their writings. 'We' would have more people to understand what things are really about and everyone else wouldn't have to be misinformed.
Comparison, maybe? Anyway, the Sepoy mutiny in India was partially sparked in 1857 because some Indian soldiers were jailed from refusing to use new cartridges. You had to bite off the end of cartridges before using them, and they had been dipped in a mixture of beef and pork fat, which are taboo to Hindus and Moslems. See this article, for example.
The Gnome/KDE "war" gives us the opportunity to think about competing systems in a totally new way. A lot of people think about it in essentially the same terms as Win vs Mac, but I think this is a narrow view.
There are basically two ways of getting a unified system. You can start with a design for how things Should Be Done, and reject anything that doesn't meet the design. It's a good approach - the Mac has done this with great success. We laugh at newbies who try to put a Mac disk in a PC and expect to run the software. Should we?
The other way to do it is to work to make the pieces integrate well. And this, my friends, is more the Linux Way, if you ask me. We don't talk about NFS vs. Samba vs. Netatalk. You've got a heterogenous network? Run 'em all!
Now, to get KDE and Gnome to seamlessly integrate is quite a challenge, both technically and politically. But I have some hope that the two teams are willing and able to work on it, in a way that Microsoft and Apple never could.
Here's a specific example of what I have in mind. Both Gnome and KDE have some mechanism for "themes", ie the ability to configure the graphical look. What if there were a theme setting application that set the themes of both desktop environments, and so that they're consistent? Ultimately, a person might not need to know or care whether an app is KDE or Gnome - it will be a matter of developer preference.
Of course, this vision takes quite a bit of work. A bi-theme application is quite a bit harder than one for a single desktop. Work will no doubt be required to bring the theme systems in harmony. But I think all of this can and will happen.
Raph, a Gnome developer who supports KDE
LILO boot: linux init=/usr/bin/emacs
I guess I'm not clear here -- why is it wasteful to derive a widget? This is what I mean by virtual function event handling. I would expect to do something like:
... somewhere in the bowels of the
...
...
...
//but1 has a member click of type signal. we
//connect the appropriate function to it.
//but2 has nothing connected to its click
//handler
//widgetlib.h
//widget libarary
//please excuse munging of indentation by comment system...
class gtkbutton {
virtual void handle(click *event)=0;
}
//now mycode.cpp
class myButton : virtual gtkbutton {
void handle(click *event) {
printf("Why did you click me?\n");
}
}
Granted, this may not always be a good idea -- while I like the idea of deriving classes from the widgetset and imbueing them with my own functionality, it's silly to have millions of little button classes. In this case, a more logical organization say at the form level is required -- and here a signalling system makes sense. We connect a function to each signal from a button in our form.
But I still want to derive a form from a base widget class of some kind. It might look something like this:
class appWindow : virtual widget {
//conceivably appWindow would be better derived
//from some kind of container class, itself derived
//from widget? i dunno.
gtkbutton *but1, *but2;
void but1_click(click *event) {
printf("you clicked but1!\n");
}
appWindow(...) {
but1 = new gtkbutton("foo",...);
but2 = new gtkbutton("bar",...);
but1.click.connect(but1_click);
}
}
This has some inherent disadvantages -- it does force a coding style on the
As I was saying -- this forces a coding style on the programmer, to some degree. But this leaves us a lot of flexibility. We could choose never to implement handlers for events as class members. Maybe this is even closer to the way Gtk-- works than I think? I still believe that at some level the programmer should derive a type from the library and add functionality...
Boy, that code is unreadable w/o indentation...
but I would code this example slightly differently, still without deriving from Gtk_Adjustment.
... _ value));
.... brrrrr!
class myApp : Gtk_Window {
private:
Gtk_Adjustment *adj;
void set_value(...) {
}
public:
myApp(...) {
adj = new Gtk_Adjustment(...);
adj.value_changed.connect(slot(*myApp,&myApp::set
}
};
so I would still derive from the more important one. But really only because I like the idea of keeping functionality in the interface object. That is to say, I like thinking of an application as a kind of Gtk window with the added functionality I want in there -- thus, all my code is in objects derived from Gtk base objects.
Unless there's a reason the above pseudocode wouldn't work?
Next question (heavily load w/regard to my next project): how usable is Gtk-- in win32? I don't relish having to use MFC
have been on good terms for some time now, according to Ian Peters, the GNOME Games maintainer. Apparently they're working towards interoperability of object models, which will allow components of one desktop to be used with components of the other, giving end users even more free choice.
/. has greatly increase S/N aroud here and reduced pointless flamewars. And increased prevalence of what Ian calls "score whores" -- people who always write long detailed comments (guilty as charged). It's an improvement, by any measure.
I'll also note that the moderation system on
Now for a hard jab: I'm not at all impressed with Gtk--. You shouldn't have to do signal handling that way in C++, dammit. I know Gtk+ does things that way, but it's C, it has an excuse. I want nice civilised event handling via virtual functions. Someday I'll write it m'self, I guess.
The important differences today are the design ones: the two GUIs have different goals, and the difference for commercial developers: the GNOME libraries are usable without a fee by commercial applications while the Qt ones would require a fee from the commercial developer. Both are equally usable, without a fee, by free software developers.
It also looks as if the Harmony project has been resumed, and that there will eventually be an LGPL version of Qt that is usable without fee by commercial applications.
Thanks
Bruce Perens
Bruce Perens.
I agree with you completely. I watched the flamewars prior to installing either desktop, and could not figure out why only one had to be "right." Then, after installing each one for a trial period, I was really confused at the insistence that only one can survive.
There are some things in KDE that I prefer over Gnome. There are also some things in Gnome that I prefer over KDE. In my view, they will each get better. Hopefully there will be some sort of idea sharing as both projects go forward.
To the folks at each project, I thank you for all of your efforts in providing a fine desktop environment. I don't feel that I have been cheated by your parallel efforts. On the contrary, I feel that I have benefitted.
Just develop your apps using the wxWindows toolkit. There's a GTK version out now, a Qt version is in development, and you can also build Windoze apps using the same source code. It's a terrific, sensibly classed API for both C++ and Python, and it eliminates the problem of tying oneself to any particular toolkit (other than itself, of course).
(Incidentally, I'm not part of the wxWindows development team, merely an extremely happy user of the toolkit. I'm developing a fairly large program using it and it just makes development a real pleasure.)
Tired of FB/Google censorship? Visit UNCENSORED!
From a note from RMS on the Harmony maillist.
With that the traffic on the Harmony list has nearly come to a halt. I suspect that too few developers feel the writting a GPL clone of something already free to Open Source code would be worth it. It would be very sad for a free software project to be taken out be the very person who most promotes freedom in software. Many of the coders of the original project and the revival seem to be afraid of being sued by TrollTech and not having the blanket of FSF will likely make the project suffer from lack of programmers.
Note that I am not associated with the Harmony project, but merely monitor their lists. I would hope that the discussions regarding this issue have just gone into the personal mailboxs and not died completely. I would encourage anyone who has the time to help get Harmony up to speed with Qt.
--Karl
I do know that getting the first compile will likely be fun as we are using lots of Unix specific tools like awk, perl, sed, and autoconf. One person did inquired earlier and was told that the tools are available (through cyngus and some other site that I don't have bookmarked.) However, we have not as of yet heard back as to the results of his tests.
The win32 changes were not fulling incorperated into gtk+ at the time of the last release of Gtk--, so I can't be sure the graphic interface is going to compile. Hopefully, 6 months from now when Gtk+ has it next release I can be a little more possitive.
Hope it helps.
--Karl
--Karl
I agree that at some point in the future it would be nice to after the functions and features from Gtk in a more native C++ form, however, that is not the way things are currently going. Also for portablity reasons having pure C++ is not desirable. We are working very hard to increase the readablity of the Gtk-- wrappers as it seems to be the most intimidating thing to starting programmers.
I hope that at some point Qt will switch their signal system to something closer to Gtk-- as Gtk-- only uses the native C++ features. (Thus avoiding the evil preprocessor.) It should also be noted that the template based signal system is considerably faster that both the Qt and gtk models. The Gtk-- signal library will be released seperately as LibSigC++ probably by the middle of summer.
(BTW I also like Fltk but find its callback system a bit limiting. It strives for a very small footprint that rules out some of the features that Qt and Gtk have.)
Those interested in writting there own C++ widget set might be interested in checking out the libsigc++ module from the Gnome CVS. It provides completely native C++ callback mechanisms with unmatched flexibliy.
--Karl
Use XEmacs.
Grab pc-select from here:
http://www.xemacs.org/elisp.html
Install it as appropriate.
Add this to your ~/.emacs:
(load "pc-select")
(pc-selection-mode)
Beauty, eh.
--
#19845
"Viewing Qt with all the enthusiasm of an Indian sepoy regiment facing a fresh shipment of .303 cartridges slathered in pork grease and beef tallow,..."
Not a bad article but the author gets my award for goofiest metaphor of the day.
OK I know it's not really a metaphor but I forget the term... I'm not an English major for Pete's sake...
BTW, I also agree that the new moderation process has overall been more of a Good than a Bad Thing.
Fuck Slashdot
This thread has been up for 20 minutes, without a single reply. Three or four months ago, /. would be in overload mode already because of this article.
*sigh* looks like I won't need this today...
(setting down the fire extinguisher)
0 1 - just my two bits
XFree 4.0 is going to be a quantum leap. Modular design, plug-in drivers for different video cards, native TrueType font rendering, accelerated 3D in a window, etc. check www.Xfree86.org/releaseplans.html for the whole list.
0 1 - just my two bits
Of course this statement is true. Doing the same thing two times IS a waste of time in common business sense.
Just, Linux doesn't work this way.
If you had, say 100 programmers to do such a job in 2 years, you'd certainly not split them up in two groups. BUT: In this case, you have 0 programmers at hand, and 100k potential ones. If you mobilise only a small part more of this potential by splitting the project, both projects will move on faster.
And that's exactly what happens. The kind of technical rivalry between the two group built up a fierce loyalty on both sides, resulting in more motivated contributors.
=>Gnome 1.0, KDE 1.1.1 q.e.d.
But of course there are serious drawbacks, especially when technically superior solutions are shunned because they come from the other camp (NIH syndrome). This was the case with Gnome's window manager hints (just duplicated KDE's effort, just in an incompatible and name space polluting way), and seemed to be similar in the case of the Corba object model (but they do seem to come together now).
As for your points: I don't think KDE and Gnome are so different. I don't see e.g. why "network distribution" is "incompatible" with KDE.
Don't forget KDE used CORBA first and are clearly in the lead with their object model already working in KOffice.
But as both projects seem to be willing to cooperate now, I see a bright future...
Sure that's possible. But I have the impression that more people are dissatisfied with Qt than with gtk, in particular those who want to make Shareware or secret In-House applications (both of which seems to require the proffesional edition of QT).
On the other hand, Gnome developers are usually writing in C, and they don't care so much about gtk's lack of proper C++ support (GTK-- is very restricted in the use of C++ features).
So, my point is:
When people complain about KDE, then it's usually about QT (i.e. the license). I say that's unfounded, as you can write KDE (compliant) apps with other toolkits like tcl/tk.
As GTK is very popular, a KDE support lib would be very helpful for people disliking the Qt license.
Sure, if both environments agreed on more common standards like the XDND, this would be much easier to accomplish...
One thing that is overestimated is the toolkit dependence of KDE. Sure, Qt is needed for the basic libs, but as they are free software, this will never be a problem.
But why does everybody think *every* KDE app does need to use Qt? For programmers, KDE is just a framework, and you can easily 'plug in' other toolkits.
Ktk for Tcl/TK A Tixwish extension, Ktk offers KDE look and feel for Tcl/Tk developers, without using Qt
StarOffice 5.0, offers some KDE integration like Drag&Drop, Mimetypes and KMenu support. Its widget set is not publicly available, but it shows this can easily be done.
FLTK supports theming in the next release, which does also include certain KDE support
There is no fundamental problem in writing a KDE support lib for GTK, making it easy to add a certain KDE compliance to GTK apps. Maybe it's not as comprehensive as with Qt apps, but common Drag&Drop, colours, Mimetypes, address book, help system still make it a lot easier for the user.
It could be a compile-time option (like Window Maker), or even a run-time check for the KDE system running.
So people won't end up having two desktop environment libs loaded into memory.
Once again:
KDE is a open framework for the developer, and an integrated environment for the user.
The user doesn't care about which widgets are used, as long as they feel the same. The developers don't have to use Qt to make their apps fit into this environment.
I hate the Motif look and feel. Let me know if they ever get theme support.
Romans 10:9-10
I've been debating this issue a lot myself. I like the LGPL of GTK. I also like the fact that it will probably become the standard toolkit for unix if it is not already. However, I adore OO programming even more. So I want a true C++ OO toolkit. I don't want a wrapper that lets you do 'some' C++ while eliminating templates, overloading, overriding, etc
:)
:-)
I've looked on LinuxBerg and found FOX. It looks like pure C++. That is cool since you don't have to deal with a pre processor like in QT. However, it isn't a standard and therefore the learning curve will be harder without having a large support group.
Another user here pointed out FLTK to me. It also looks nice. However, it isn't finished yet and seems to also lack a large audience.
So, I decided to 'get over' the preprocessor issue and use QT. Maybe Harmony will be completely finished some day
I'd love some feedback if anyone has any suggestings or critisim even
Romans 10:9-10
- KDE is somewhat more mature than Gnome
- GTK is based on C, Qt based on a variant of C++
- GTK has a free Windows version, Qt does not
- The Qt license is different from the GTK license
To me, those differences come down to that I will use some KDE components on my desktop for now, but for any C/C++-based GUI development, I will use GTK. But despite their utility, both environments seem fairly backwards looking: they are designed like the toolkits of the 80's.GUIs for the next millenium will make much more use of transparency, scaling, 3D, animation, multimodal input/output, browsing, and hypertext. I don't think either KDE or Gnome are in a particularly good position to play a big role in that. Java with Swing, Java2D, Java3D, and its other APIs, however, is in a much better position to become the substrate on which those future GUIs will be built.
To me, it's a shame that so much effort has been going into KDE and Qt, rather than into creating a non-proprietary Java-based desktop. But it is all volunteer work, after all, and people have to work on what they believe in.
For those who have not yet read this, I quote:
Most European cathedrals show differences in plan or architectural style between parts built in different generations by different builders. The later builders were tempted to "improve" upon the designs of the earlier ones, to reflect both changes in fashion and differences in individual taste. So the peaceful Norman transept abuts and contradicts the soaring Gothic nave, and the result proclaims the pridefulness of the builders as much as the glory of God.
Against these, the architectural unity of Reims stands in glorious contrast. The joy that stirs the beholder comes as much from the integrity of the design as from any particular excellences. As the guidebook tells, this integrity was achieved by the self-abnegation of eight generations of builders, each of whom sacrificed some of his ideas so that the whole might be of pure design. The result proclaims not only the glory of God, but also His power to salvage fallen men from their pride.
Even though they have not taken centuries to build, most programming systems reflect conceptual disunity far worse than that of cathedrals. Usually this arises not from a serial succession of master designers, but from the separation of design into many tasks done by many men.
I will contend that conceptual integrity is the most important consideration in system design. It is better to have a system omit certain anomalous features and improvements, but to reflect one set of design ideas, than to have one that contains many good but independent and uncoordinated ideas.
-Fred Brooks, The Mythical Man Month
I know the historical context here, but don't you think this sentence is a bit obtuse? It is amazing how you can just sabotage your own article by using style such as this.
.303 cartridges slathered in pork grease and beef tallow, the most extreme free software adherents decided the only way to prevent such a calamity was to eliminate the taint of proprietary software altogether."
Sigh...
"Viewing Qt with all the enthusiasm of an Indian sepoy regiment facing a fresh shipment of
Bad. Bad. BAD.
Please borrow code and ideas from each other. Eventually one of the desktops will prevail and it will be pity that the other's features will be thrown away.
Personally I am a fan of KDE although GNOME has the best-written mission statement that I've ever read. I intend to run them both for a while.
Well, in my XEmacs double-clicking a word selects it. Shift-cursor doesn't select anything, but I am sure that all it takes is a couple of lines in your .emacs file...
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
Granted, conceptual integrity is a good thing. However, consider two points:
(1) What is a system? For the purposes of this discussion I would call Linux a platform, and an application a system. An application (e.g. text editor) should have conceptual integrity or suffer from bloat, feeping creaturism and other horrors (but see EMACS for a kitchen sink counterexample). But a platform -- no. There is no need for all applications to share the same underlying design concepts. All they have to share is *user interface* design concepts, which are pretty much standard by now in the GUI world. Gnome and KDE should be internally consistent -- true. All Linux applications should be designed on the basis of the same principles -- false.
(2) What if I don't like the underlying design? Let's say KDE is the only desktop for Linux, full of conceptual integrity, but I, personally, hate some of its features. Must I therefore, not use Linux or be limited to command-line interface?
Conceptual integrity in a small system is elegant. Conceptual integrity in a huge system is boring.
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
I don't see the parallel existence of KDE and Gnome as a bad thing. On the contrary, I believe it to be very good for Linux to have competing desktops. The reasons are, basically, (1) Choice is good; (2) Competition stimulates improvement and destroys complacency; (3) Two parallel systems are good for robustness and insurance; (4) Forcing applications to be able to deal with both reduces their tendency to exploit "undocumented features" in the API and in the end makes them more robust and upgradeable.
I don't buy the duplication of effort argument. If Gnome didn't exist, its developers would NOT have all been working on KDE. Besides, the outcome of the Mongolian Hordes approach is well known.
The networking arguments (as in, the more fax machines are in the world, the more useful yours becomes) for a single desktop environment make some sense, but not all that much. There is a fine line between too much standardization and not enough standardization. Clearly it's good that most everybody can talk TCP/IP. Clearly, it's not good if everyone is forced to use the same key mappings in, say, an editor. This fine line is shifty and blurry, but IMHO a single desktop for Linux is too much standardization. Again, choice is good.
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
If someone wants to code, then more power to them. Who's to judge whether or not it is "worth it?"
This is my signature. There are many signatures like it but this one is mine..
Hi
... but...
:-(
This is a bit of a newbie question
I have just installed RH5.9 and in gnome there is a way of chosing which to use but after I switched to KDE I can't work out how to get back to gnome
Check out MKDoc a mod_perl CMS
Would somebody mind clarifying something for me? What exactly entails being "GNOME-compliant" or "KDE-compliant"? I know there's things like drag-and-drop, but I was under the impression that because of the new X drag-and-drop protocol that they would be compatible with each other. Also, there's the idea of embedding into the panel/desktop/whatever. What else is involved?
Also, are there any practical limitations to making an application compliant with BOTH desktops? If not, what was the whole point of the desktop wars? Why couldn't application developers write apps that were compliant with both desktops and let the user choose one based on personal preference?
"Software is like sex- the best is for free"
Sorry but you're wrong. There can be only one window manager running on the same display at one time.
What you have is Afterstep as a window manager and the gnome panel as an application. It is true that the Kde menu can be accessed via the foot button of the Gnome panel but this doesn't mean that Kde is running, simply that the Gnome panel can interpret the Kde menu entries.
"The obvious mathematical breakthrough would be development of an easy way to factor large prime numbers." Bill Gates,
There are several issues making that difficult.
KDE is mostly C++, GNOME is mostly C.
KDE uses Qt, GNOME uses GTK.
This makes it far less fun to borrow code. And on top of that you have the license issue. KDE cannot legally reuse GPL code with Qt without the permission of the author because Qt (even with QPL) doesnt have a GPL compatible license. To solve this, KDE is slowly moving over to the Artistic License (perl (which, IIRC, is distributed under both GPL and AL)). This is not GPL compatible either, altho it is compatible with the QPL (meaning, GNOME cannot use the code without a separate license, altho they can use the GPL version of the code).
So, the idea of code reuse between KDE and GNOME has some problems. This does not prevent common standards and interoperability, of course.
Of course. The problem isnt the amount of money, they problem is the amount of red tape you have to go through to get any money at all. A million or a cent, it doesnt matter.
You dont call Troll Tech to get the license, you call the purchasing department, who need a decision that it is an official product that your company uses, which can only be obtained through an evaluation project approved by a steering comittee, etc etc.
If you really believe they'll give you the company credit card and that you as a developer can order what you want to do a project, that's not the way it happens. With (L)GPL software you can usually wing it; you dont have to bother going through the red tape, because you only have to do that if you buy something.
The reason we need *One* Interface and only one interface, is standardization. I absolutely hate the fact that when I'm using a GNOME theme, all my KDE windows look completely different. I hate the fact that Netscape's button/scrollbars/checkboxes look totally unlike the ones in KFM.
There are simply too many different toolkits being used out there and in order for Linux to become accepted as having a decent GUI, it needs to have a standard interface. That's the whole idea behind UI's isn't it? The idea that you can use every application the same way? Linux is getting closer, but it's simply not there yet.
As much as I disklike Microsoft's quality of software, their interface is just plain better because it's all the same. The same, of course, can be said for the MacOS. Linux needs a standard SDK/toolkit to work with. It will never become the mainstream OS without one.
I would not consider any time used coding to be wasted. Time used on flamewars are wasted, and as an aside one must say, that there is a lot of time wasted here, but that be it. But as I see it, time used on developing public software is all to the common good.
If Dalheimer is satisfied with his doing (and the rest of the KDE team is the same), he should have a fine time making KDE. If the Gnome people feels this way too, there is no waste.
OTOH if anyone is doing their task as "a tough job, but someone has to do it...", they would probably feel it is a waste. But who knows...
:-) = I am happy
:^) = I am happy with my big nose
C:\> = I am happy with my OS
With regards to the OS/2 WPS...check out DFM. It's not perfect, but it's damned nice! I use it in combination with Windowmaker. Quite a sweet combination. The DnD from DFM works with Windowmaker's dock and clip too.
You can find DFM at:
http://www-c.informatik. uni-hannover.de/~kaiser/dfm/dfm.html
Yes, choice is good, but at some point (the long run) KDE and GNOME will become essentially the same in terms of performance, APIs, widgets, etc. Each team will co-opt the ideas of the other.
In the end you will have two toolkits that differ chiefly in name only.
I think it's very natural for both KDE and Gnome to share lots of features and ways of doing things. Personally I haven't tried Gnome yet, I use KDE 1.1 and like it quite a bit. When I acquire Redhat 6 I'll try both. The thing to keep in mind here that generally, when a set of features is expected in ANY gui, no matter what gui it is, there will be similarities. Just as you would like your car to have air conditioning and a cd/cassette player, so too will these gui's have options that match. Flame wars? Not necessary. I like apples, you like oranges, but the thing that matters is we both like fruit.
Many agree that Linux will achieve success only through the continued proliferation of open standards. The X debate must not become blind to this reality.
It is critically important that the developers of GNOME, KDE and another X environment agree on a common set of rules such that all applications can be run on any platform. Without such cooperation, one killer app could make a given desktop the defacto standard and threaten the choice, innovation and new ideas that have drawn us to Linux in the first place.
Many agree that Linux will achieve success only through the continued proliferation of open standards. The X debate must not become blind to this reality.
It is critically important that the developers of GNOME, KDE and another X environment agree on a common set of rules such that all applications can be run on any platform. Without such cooperation, one killer app could make a given desktop the defacto standard and threaten the choice, innovation and new ideas that have drawn us to Linux in the first place.
Many agree that Linux will achieve success only through the continued proliferation of open standards. The X debate must not become blind to this reality.
It is critically important that the developers of GNOME, KDE and other X environments agree on a common set of rules such that all applications can be run on any platform. Without such cooperation, one killer app could make a given desktop the defacto standard and threaten the choice, innovation and new ideas that have drawn us to Linux in the first place.
And it is working just fine. Show me one commercial app written by a large company in GTK, FLTK, or WxWindows....
Yes, the flame wars have somewhat calmed down
which I attribute to the Gnome 1.0 release.
This and the proposed licence change for Qt
have allowed Redhat to include both DE's in their
newest release, and if Redhat includes KDE
it it must be ok, eh?
I am not sure whether the article gets all the
facts straight though. Wasn't the QT Free
foundation announced much earlier than November
last year? Also, what has the fact of the
smoothness of the OpenLinux 2.2 install much
to do with KDE or any desktop.?
And what about the statement that
"in Europe, (where) independence from American
software companies invokes issues of
national security, not just personal choice."
I doubt very much that the KDE developers were
worrying about national security!
It would be nice if the authors would have also
gotten some quotes from Gnome developers, after
all it takes two sides to end a (flame) war.