Theres no real reason other than its what im used to. When I started out on linux, it was a loooong time ago on xubuntu 8.04.
XFCE uses GTK, I learned how to theme/style metacity.
I've got a beefy touchscreen enabled laptop, there's a learning curve but I've grown to really like gnome 3. (Even though I absolutely hated it when it first came out)
Let's put it this way - I still remember the times when each application you run had to have its own video card driver for your video card, or it didn't start (old DOS ages). Then Win 3.1 came along and things got easier, then Win 95 - this was a holy shit moment at the time - built in TCP/IP stack - those where the days. If you got lucky with your modem drives you could get internet access after few hours of work on getting the modem to work. Then Linux came along and FreeBSD was open. It was nightmare to get any hardware to work as there was no drivers. Plug and Play was new shit.
You know, I would still go back to those days - internet was used mostly by university PhDs and programmers. Anything you read on the Internet was high quality, written by intelligent human beings... Not like today - written by people who can hold a phone and type at the same time :)
DISCLAIMER: I have not produced a lot of code for Linux in some time and was never very involved with either GUI system at all, so my information is outdated, and a lot of this is based on old memories since I haven't had an opportunity to seriously diddle with some of this stuff for quite some time.
However, to summarize: a pox on both their houses.
Let's start with KDE, which has had my ire since the get-go. They based their system on Qt. This basically requires application code to use C++. This is IMO a very poor way to go; actually I think it's flat-out obnoxious. It isn't because C++ is so horrible, per se, but because it locks in the choice of language a lot more readily and impacts performance. Performance-minded programmers now have that much more crap to go through. You can't work directly with it with C, and C++-to-C bindings are a great way to have the disadvantages of both with the advantages of neither. People who insist that "computers have enough memory/processing power/etc. to deal with <insert pet bloatware here>" are often right, right up until the 700th abstraction layer is slathered on to the PC, and like a bran muffin that is coated in a half a pound of butter and lard, suddenly things aren't what they were supposed to be and people are back to dealing with the bloat, either physiological (for the muffin) or in terms of their computer's lag or memory consumption. Also, in my experience, C conventions are a lot more universal and flexible when integrating with other languages, which helps if you're writing a program in, say, Pascal, for some reason, if you can interface with a C library as opposed to some C++ binding or something.
I am also not too fond of forcing an OO paradigm on to that level of code, even though I'm certain someone reading this is tearing their hair out and screaming "object oriented GUI code is the One True Path you mouth-breathing neckbeard!" and probably calling for my head on a platter for their mantle right now. Yes, it is, but that can be brought to bear in C as well (not very easily, but effectively nonetheless), and the lower level you get the more flexible you should be for the needs of application programmers. I consider the base code of the UI to be pretty darn low level for most application software. The use of the Qt library is also questionable at best, since it is/was a) proprietary, b) a big point in the whole C++ thing, and c) forced the use of the GPL unless you could cough up $2000 or so for a license that let you do what you want with it. I am of the opinion that the basic tools of development on any platform are generally useless if they force you into a particular license, and that right there is an example of it. As I understand it, Trolltech changed the rules so the license implications are no longer the same, but the fact that the project decided on this from the beginning does not make me particularly inclined to trust its decisions in the future. Additionally, my experiences with KDE fans are that they crow their system's superiority in a way that is very loud, self-righteous, arrogant, assumes universal superiority, and is fundamentally obnoxious. I am not saying most advocates are like this, and I am not saying GNOME doesn't have them, but I've run into more KDE advocates like this, which leaves a very poor impression for the community.
GNOME, on the other hand, was good during GNOME 2, but eventually developed a standard practice of lobotomy-as-upgrade, wherein it is apparently undesirable to allow you to customize your screen saver, probably because it's "too hard" or some other ridiculous reason. This is usually dismissed as being able to do some obnoxious and obscure hack to a configuration file somewhere, but that is utterly ridiculous and reeks of Firefox's attempts to bury good features alive, and then kill them once the fuss has died down. GNOME's design has also apparently shifted far more towards tablets and the like, which is a trend that seems to do a great job of pissing off people who don't want to use tablets as well as those who do want to use tablets but want to be able to use a desktop OS when they have something more serious to do than play a game or browse the web on the bus. Additionally, the GNOME tentacles have grown quite a bit further than they should have, and now the ecosystem is mingling with systemd, which is basically slowly forcing the use of a large, bloated, monolithic software block as the "standard Linux environment" that is filled with software that a very large number of Linux die-hards seriously question. The fact that it seems like nobody is really making the decision here but everyone is mindlessly following it is alarming at best and makes me seriously question if something is very rotten in all this. It is especially troubling since a lot of those involved seem to be very disliked and for good reason, which bodes ill for future community efforts. GNOME as an organization has serious problems as well; aside from its questionable design practices, it also seems to be more interested in using its funds to promote pet political projects rather than write the code those funds were donated for in the first place, and as such I question its ability to sustain itself, since I don't think too many people are going to be opening their wallets again after that little stunt.
Now, what is my solution? Unfortunately as with so many things these days in software, there probably isn't a great one. At this point I would either use a toolkit with portability that hopefully lets you compile against both easily, or write my codebase to thoroughly decouple business logic from the user interface. If I had to choose one I would pick GNOME, because it seems to give the developer more choice and is more popular, but I would not be happy about it.
GNOME as an organization has serious problems as well; aside from its questionable design practices, it also seems to be more interested in using its funds to promote pet political projects rather than write the code those funds were donated for in the first place, and as such I question its ability to sustain itself, since I don't think too many people are going to be opening their wallets again after that little stunt.
Yes, this indeed is a very sad and unfortunate reality of GNOME right now. Quality people who'd actually contribute to the project start leaving (or are even asked to leave) due to political disagreements or lack of funds. It's downward spiral from there on. Quality of product start dropping, more political bullshit is pushed, strange and damaging business models are adopted to replace lost founds, which result in more damage. Soon project is dead. Just look at the sad state of Mozilla right now.
That's a dangerous question to ask... much akin to "which do you prefer: vi or emacs?" -- many wars built upon flame have been made by this.
When I was a Linux young-ling I asked "which is better, ext2, ext3, or reiserfs?" -- being ignorant of the differences. That did not end well for the IRC channel and I felt like an asshole.
KDE because they add features for devs and users alike, whilst keeping existing ones. GNOME is just a tablet interface for sausage fingers hellbent on destroying what it used to be in its glory years of the mid 2000's by removing essential interface features. Qt/KDE applications tend to be easier to work with from an interface point of view across multiple platforms, and Qt/KDE tends to have more documentation i have noticed. Also gtk3 is an abomination -- but i do love gtk2, it was fantastic when widely in use.
I'm actually an XFCE fan. I always had trouble setting up remote desktop with GNOME and I never quite liked the look of KDE. XFCE is a little old fashioned looking but that's what I like. Also, XRDP is super easy to setup with it.
Both have applications that you might want that the other doesn't have. K3B, KDE Connect, Kontact, and Abiword, Inkscape, gucharmap. Among others.
KDE was first, and GNOME was initially started as a free alternative, for good reason that hasn't been relevant for a long time now. It was quite good until 1.4, and did a lot of things right, and was way easier on ressources than KDE. GNOME2 changed everything. It removed customizability and flexibility, and yet used more ressources than KDE2 or KDE3.
KDE4 has a bad rep because SuSE and RedHat released with the development version (unlike Debian, which stuck with KDE3 until KDE4 was user ready). KDE4's plasma is among the most lightweight (yet configurable) DEs, however some of the application back-ends are insane. Yet even with all the SQL and RDF databeses, it is less ressource hungry than GNOME3.
GNOME3 seems to have begun as a re-write of GNOME2 to be more Mac-like, but recently seems to emulate Unity instead. Meanwhile, KDE5 has become even more responsive and light-weight than KDE4, but is still not fully user-ready, so I can't recommend it (yet).
The biggest problem with GNOME currently is GTK3, which strips features that RedHat doesn't need or want, despite app devs and other DEs like XFCE relying on them. LXDE has begun the switch to QT because of this, and the diving application SubSurface has improved greatly since doing the same. The problems with GNOME and GTK in general are made worse by cyclical build dependencies that should remind everyone of Ken Thompson's Reflections on Trusting Trust.
Finally, Qt is simply a joy to work with. It is C++, yet feels like a completely different language of its own. GTK is awkward by comparison. I'd also argue that Qt is more portable that GTK, but that depends on what you do with it. I do want to mention KDE's Smoke libraries which offer bindings for languages including python and JavaScript.
With Tcl, I have only used Tk so far. I am not afraid of C++, so that is what I usually use with Qt, but I have used perl in the past (until I discovered that Tcl is a better perl than perl). I have dabbled with QML, but I don't feel satisfied with it.I am going to try python sometime soon.
That said, qtcl seems to be the usual bridge between tcl and Qt, so I would go with that. And probably will.
26 comments
6 u/ShowMeYourKitties 16 Mar 2016 17:18
I prefer GTK/Gnome.
Theres no real reason other than its what im used to. When I started out on linux, it was a loooong time ago on xubuntu 8.04. XFCE uses GTK, I learned how to theme/style metacity.
I've tried plasma 5, but didn't like it.
1 u/pok3r 16 Mar 2016 19:09
xfce is great. perfect for laptops.
2 u/ShowMeYourKitties 16 Mar 2016 19:49
It is, especially for low power laptops.
I've got a beefy touchscreen enabled laptop, there's a learning curve but I've grown to really like gnome 3. (Even though I absolutely hated it when it first came out)
3 u/devnulll 16 Mar 2016 19:36
Dude, 2008 was not long time ago... dawm... I am getting old...
0 u/Drenki 16 Mar 2016 20:35
I came to say this.
0 u/Tommstein 17 Mar 2016 05:00
I started on SuSE 7.2 Professional, after a failed attempt at Debian. Screw both of you guys.
0 u/devnulll 17 Mar 2016 14:46
Pfff, how does FreeBSD 3.0 sounds like to you :)
1 u/Tommstein 17 Mar 2016 16:08
Oh shit, looks like you got me by two years and change. How was it when men were men and dinosaurs roamed the Earth?
0 u/devnulll 17 Mar 2016 18:10
Let's put it this way - I still remember the times when each application you run had to have its own video card driver for your video card, or it didn't start (old DOS ages). Then Win 3.1 came along and things got easier, then Win 95 - this was a holy shit moment at the time - built in TCP/IP stack - those where the days. If you got lucky with your modem drives you could get internet access after few hours of work on getting the modem to work. Then Linux came along and FreeBSD was open. It was nightmare to get any hardware to work as there was no drivers. Plug and Play was new shit.
You know, I would still go back to those days - internet was used mostly by university PhDs and programmers. Anything you read on the Internet was high quality, written by intelligent human beings... Not like today - written by people who can hold a phone and type at the same time :)
5 u/tribblepuncher 16 Mar 2016 23:24
DISCLAIMER: I have not produced a lot of code for Linux in some time and was never very involved with either GUI system at all, so my information is outdated, and a lot of this is based on old memories since I haven't had an opportunity to seriously diddle with some of this stuff for quite some time.
However, to summarize: a pox on both their houses.
Let's start with KDE, which has had my ire since the get-go. They based their system on Qt. This basically requires application code to use C++. This is IMO a very poor way to go; actually I think it's flat-out obnoxious. It isn't because C++ is so horrible, per se, but because it locks in the choice of language a lot more readily and impacts performance. Performance-minded programmers now have that much more crap to go through. You can't work directly with it with C, and C++-to-C bindings are a great way to have the disadvantages of both with the advantages of neither. People who insist that "computers have enough memory/processing power/etc. to deal with <insert pet bloatware here>" are often right, right up until the 700th abstraction layer is slathered on to the PC, and like a bran muffin that is coated in a half a pound of butter and lard, suddenly things aren't what they were supposed to be and people are back to dealing with the bloat, either physiological (for the muffin) or in terms of their computer's lag or memory consumption. Also, in my experience, C conventions are a lot more universal and flexible when integrating with other languages, which helps if you're writing a program in, say, Pascal, for some reason, if you can interface with a C library as opposed to some C++ binding or something.
I am also not too fond of forcing an OO paradigm on to that level of code, even though I'm certain someone reading this is tearing their hair out and screaming "object oriented GUI code is the One True Path you mouth-breathing neckbeard!" and probably calling for my head on a platter for their mantle right now. Yes, it is, but that can be brought to bear in C as well (not very easily, but effectively nonetheless), and the lower level you get the more flexible you should be for the needs of application programmers. I consider the base code of the UI to be pretty darn low level for most application software. The use of the Qt library is also questionable at best, since it is/was a) proprietary, b) a big point in the whole C++ thing, and c) forced the use of the GPL unless you could cough up $2000 or so for a license that let you do what you want with it. I am of the opinion that the basic tools of development on any platform are generally useless if they force you into a particular license, and that right there is an example of it. As I understand it, Trolltech changed the rules so the license implications are no longer the same, but the fact that the project decided on this from the beginning does not make me particularly inclined to trust its decisions in the future. Additionally, my experiences with KDE fans are that they crow their system's superiority in a way that is very loud, self-righteous, arrogant, assumes universal superiority, and is fundamentally obnoxious. I am not saying most advocates are like this, and I am not saying GNOME doesn't have them, but I've run into more KDE advocates like this, which leaves a very poor impression for the community.
GNOME, on the other hand, was good during GNOME 2, but eventually developed a standard practice of lobotomy-as-upgrade, wherein it is apparently undesirable to allow you to customize your screen saver, probably because it's "too hard" or some other ridiculous reason. This is usually dismissed as being able to do some obnoxious and obscure hack to a configuration file somewhere, but that is utterly ridiculous and reeks of Firefox's attempts to bury good features alive, and then kill them once the fuss has died down. GNOME's design has also apparently shifted far more towards tablets and the like, which is a trend that seems to do a great job of pissing off people who don't want to use tablets as well as those who do want to use tablets but want to be able to use a desktop OS when they have something more serious to do than play a game or browse the web on the bus. Additionally, the GNOME tentacles have grown quite a bit further than they should have, and now the ecosystem is mingling with systemd, which is basically slowly forcing the use of a large, bloated, monolithic software block as the "standard Linux environment" that is filled with software that a very large number of Linux die-hards seriously question. The fact that it seems like nobody is really making the decision here but everyone is mindlessly following it is alarming at best and makes me seriously question if something is very rotten in all this. It is especially troubling since a lot of those involved seem to be very disliked and for good reason, which bodes ill for future community efforts. GNOME as an organization has serious problems as well; aside from its questionable design practices, it also seems to be more interested in using its funds to promote pet political projects rather than write the code those funds were donated for in the first place, and as such I question its ability to sustain itself, since I don't think too many people are going to be opening their wallets again after that little stunt.
Now, what is my solution? Unfortunately as with so many things these days in software, there probably isn't a great one. At this point I would either use a toolkit with portability that hopefully lets you compile against both easily, or write my codebase to thoroughly decouple business logic from the user interface. If I had to choose one I would pick GNOME, because it seems to give the developer more choice and is more popular, but I would not be happy about it.
2 u/Tommstein 17 Mar 2016 05:10
This is what comment sections were invented for.
1 u/VxMxPx 17 Mar 2016 23:40
Yes, this indeed is a very sad and unfortunate reality of GNOME right now. Quality people who'd actually contribute to the project start leaving (or are even asked to leave) due to political disagreements or lack of funds. It's downward spiral from there on. Quality of product start dropping, more political bullshit is pushed, strange and damaging business models are adopted to replace lost founds, which result in more damage. Soon project is dead. Just look at the sad state of Mozilla right now.
2 u/Foobarbaz 16 Mar 2016 18:34
That's a dangerous question to ask... much akin to "which do you prefer: vi or emacs?" -- many wars built upon flame have been made by this. When I was a Linux young-ling I asked "which is better, ext2, ext3, or reiserfs?" -- being ignorant of the differences. That did not end well for the IRC channel and I felt like an asshole.
1 u/Drenki 16 Mar 2016 20:36
Bozos use anything but emacs!
2 u/unixfreak 16 Mar 2016 19:14
KDE because they add features for devs and users alike, whilst keeping existing ones. GNOME is just a tablet interface for sausage fingers hellbent on destroying what it used to be in its glory years of the mid 2000's by removing essential interface features. Qt/KDE applications tend to be easier to work with from an interface point of view across multiple platforms, and Qt/KDE tends to have more documentation i have noticed. Also gtk3 is an abomination -- but i do love gtk2, it was fantastic when widely in use.
1 u/Master_Admin 16 Mar 2016 15:55
Yes
0 u/Tommstein 17 Mar 2016 05:01
But why.
1 u/AlkaiserSoze 16 Mar 2016 19:12
I'm actually an XFCE fan. I always had trouble setting up remote desktop with GNOME and I never quite liked the look of KDE. XFCE is a little old fashioned looking but that's what I like. Also, XRDP is super easy to setup with it.
1 u/clickbot 17 Mar 2016 18:07
Both have applications that you might want that the other doesn't have. K3B, KDE Connect, Kontact, and Abiword, Inkscape, gucharmap. Among others.
KDE was first, and GNOME was initially started as a free alternative, for good reason that hasn't been relevant for a long time now. It was quite good until 1.4, and did a lot of things right, and was way easier on ressources than KDE. GNOME2 changed everything. It removed customizability and flexibility, and yet used more ressources than KDE2 or KDE3.
KDE4 has a bad rep because SuSE and RedHat released with the development version (unlike Debian, which stuck with KDE3 until KDE4 was user ready). KDE4's plasma is among the most lightweight (yet configurable) DEs, however some of the application back-ends are insane. Yet even with all the SQL and RDF databeses, it is less ressource hungry than GNOME3.
GNOME3 seems to have begun as a re-write of GNOME2 to be more Mac-like, but recently seems to emulate Unity instead. Meanwhile, KDE5 has become even more responsive and light-weight than KDE4, but is still not fully user-ready, so I can't recommend it (yet).
The biggest problem with GNOME currently is GTK3, which strips features that RedHat doesn't need or want, despite app devs and other DEs like XFCE relying on them. LXDE has begun the switch to QT because of this, and the diving application SubSurface has improved greatly since doing the same. The problems with GNOME and GTK in general are made worse by cyclical build dependencies that should remind everyone of Ken Thompson's Reflections on Trusting Trust.
Finally, Qt is simply a joy to work with. It is C++, yet feels like a completely different language of its own. GTK is awkward by comparison. I'd also argue that Qt is more portable that GTK, but that depends on what you do with it. I do want to mention KDE's Smoke libraries which offer bindings for languages including python and JavaScript.
All that said, I do most of my GUI stuff with Tk.
0 u/monetus 20 Mar 2016 23:22
That bsd license for the win, ha. Mind if I ask what bindings you like? I've started to dabble in tcl.
1 u/clickbot 02 May 2016 09:19
With Tcl, I have only used Tk so far. I am not afraid of C++, so that is what I usually use with Qt, but I have used perl in the past (until I discovered that Tcl is a better perl than perl). I have dabbled with QML, but I don't feel satisfied with it.I am going to try python sometime soon.
That said, qtcl seems to be the usual bridge between tcl and Qt, so I would go with that. And probably will.
1 u/Men13 20 Mar 2016 04:44
xfce all the way. For development? Yea, xfce.
-1 u/LardOn4Bacon 16 Mar 2016 16:19
No