Desktop Environment for Proprietary Applications? 146
nushoin writes "Gnome and KDE are the two major desktop environments used on Linux today. However, Gnome is growing more and more affiliated with Microsoft's proprietary technologies (Mono, OOXML). Targeting the Gnome desktop environment could prove dangerous in the long run, assuming that one would like its applications to run on distributions other than SuSE. On the other hand, TrollTech is being bought by Nokia, whose commitment to the desktop world remains to be proven. Assuming that one would like to develop a desktop application (either free or closed source), which desktop environment would you target, and what widget tool kit would you use?"
FUD (Score:3, Insightful)
Re:FUD (Score:5, Insightful)
Yes, Novell is working on Mono and partnering with Microsoft, while at the same time investing in GNOME. But that doesn't 'taint' GNOME in any way. The core GNOME technologies - GLib, GTK, and so forth - are not written in C# and have nothing to do with Mono. The licensing of those core GNOME technologies is the LGPL, in fact, precisely to ensure that there is no risk in developing for that platform. No one 'owns' it, and no one can 'taint' it. You will be able to run GTK and GNOME anywhere you compile it to run, be it SUSE, other Linux distros, Solaris, or whatever; again, as LGPL, you can do whatever you want with it, if you abide by that license. In particular, you can run any app you want on such a platform, which is the question here. The claim that "Targeting the Gnome desktop environment could prove dangerous in the long run" simply shows a lack of understanding of what GNOME is and how FOSS licensing works.
Regarding Qt, Qt is dual licensed as GPL and proprietary. If you want to run FOSS apps on KDE, you have no problem (at least if your FOSS license agrees with what Nokia will accept, and that includes most of those existing today). But if you want to run proprietary applications on a desktop, Qt is a poor choice. For starters it costs money. Furthermore, Nokia can charge whatever they want for proprietary licenses, and this might change at any point; there are no guarantees. However, if you are willing to take that risk, then Qt/KDE is a nice platform (although the portability, one of its main advantages, seems lost in this particular context, since it appears a single desktop is going to be chosen).
So, if you want to develop a FOSS application, both GNOME and KDE are fine (just make sure with KDE that you agree to the licensing). If, on the other hand, you want to develop a proprietary application for a particular desktop, I would say GNOME is the way to go.
Re: (Score:1, Troll)
But if you want to run proprietary applications on a desktop, Qt is a poor choice. For starters it costs money. Furthermore, Nokia can charge whatever they want for proprietary licenses, and this might change at any point; there are no guarantees.
This is quite trollish. Qt is no different in those respects from the other innumerable commercial libraries that are routinely used in proprietary software development. Singling out Qt as a "risk" suggests an axe to grind, and recommending GNOME for proprieta
Re: (Score:3, Insightful)
But if you want to run proprietary applications on a desktop, Qt is a poor choice. For starters it costs money. Furthermore, Nokia can charge whatever they want for proprietary licenses, and this might change at any point; there are no guarantees.
This is quite trollish. Qt is no different in those respects from the other innumerable commercial libraries that are routinely used in proprietary software development. Singling out Qt as a "risk" suggests an axe to grind, and recommending GNOME for proprietary applications confirms it.
Yes, you are right, Qt is no different from other toolkits that cost money for proprietary apps: I would make the same argument against Microsoft tools. If you get hooked on Visual Studio/.Net/etc., then you run the risk of Microsoft raising prices in the future. Exactly the same as proprietary apps on Qt, that is the risk of developing for a platform owned by a corporation.
This risk does not exist if you develop for a platform that is LGPL, you can write apps for it (FOSS or proprietary) without such c
Re: (Score:3, Interesting)
On the other hand, QT costs a lot (I'm not going to pay that much money for a desktop toolkit) and its price IS going up with each release.
GTK produces
Re: (Score:2)
GTK is improving on Windows and Mac (Mac in particular recently), but yes, it is inferior in its cross-platform capabilities in comparison to Qt. It's great for GNOME, though, and the original question was about a single desktop, not cross-platform development.
Re: (Score:2)
So in practice, choosing Microsoft is almost risk-free. It's not the same with QT, nobody knows what is going to happen with them a ye
Re: (Score:2)
Let professional GUI toolkit developers decide? (Score:2)
Why not use wxWidgets and let professional GUI toolkit developers decide? See the comment below [slashdot.org].
Re: (Score:2)
wxWidgets is great if you don't need to create custom controls or a very complex GUI. I know, I tried both. And sometimes you need to deal with issues of underlying platform.
QT is much better, but it's commercial.
Re: (Score:2)
It works acceptably on Windows. It most certainly does not work quite fine on Macs, though. The OS X port is a very buggy work in progress; it's bad enough that the GTK+ website doesn't even suggest using it, preferring instead to provide would-be OS X users with a terse "coming soon" [gtk.org] page.
(Yeah, there's an X11 version, but X11 on OS X is a horribly clunky second-class citizen that most Mac users have never even heard of, let alone have installed, and would
$700 for the low-end version. $5100 for the full. (Score:2)
Visual Studio 2008 Professional Retail-Box Win32 [provantage.com]: $699.84. (They didn't want to be honest and say $700.)
That is a low-end version of Visual Studio 2008 Team Software Developers with MSDN Premium [provantage.com] for "Only" $5096.99. Otherwise known as $5100.
Source: Microsoft's buy page [microsoft.com].
Re:$700 for the low-end version. $5100 for the ful (Score:2)
Team software suite is not necessary for a lone developer or a small company.
Re: (Score:2)
I don't care how good Microsoft's Visual Studio is, you have to pay me quite a bit of money to run it. License management in a multi-server, multi machine Windows development environment is a nightmare.
Re: (Score:2)
I don't really mind reasonable restrictions on VisualStudio and Windows. After all, I make money from selling software, so it's fair if Microsoft gets (a rather small) cut of my money. And with Microsoft I can be reasonably sure that they are not going to disappear next year.
Of course, I like to use OpenSource stuff, and I contribute bugfixes and features to several pr
Re: (Score:2)
Note, though, that you're using "free" the opposite of the way the Free Software Foundation does -- that's why the LGPL is "Lesser".
Re: (Score:2)
Microsoft wasn't allways cheap (Score:3, Insightful)
However, today Microsoft tools cost almost nothing. You can get Visual Studio Express for free and professional version for something like $150. I don't think that this price is going to change in foreseeable future. And you don't need to upgrade it often - I still use VisualStudio 2003 for my C++ development, and a lot of people still use ten years old VS6!
Prices for MS$ tools have gone up and down depending on how strong the competition was at the time. When Borland was strong in hobby arena (When MS-C/C++ came without "Visual") prices where low. When Borland more or less abandoned Hobbyist/Student use Viusual-C/C++ went up in price until GCC became more mainstream when Express was introduced.
Besides I consider Express is cripple-ware. Quite a bit of interesting stuff is not included (at least last I checked). And it's of course the same for Borland tools.
M
Re: (Score:2)
There's an opinion that Microsoft held high prices because it _wanted_ the competition to attract more developers to Windows platform.
Re: (Score:2)
Forget cross platform widget sets. There is no way to get a 100% native look
If you want to write non-trivial cross platform apps that conform well to the UI guidelines for the target platforms, you need to commit to using the
Re: (Score:2)
I don't know about MacOSX, cause OSX is different.
Re: (Score:2)
So again, unless there is a platform specific front end, some poor bastards lose out. Usually the Linux users.
/Mike
Re: (Score:2)
Re: (Score:2)
So, in order for you to be able to sell licenses of your program, some library asks for license money in order for you to use it, while it is open/free if you will deliver your program open/free. I call it fair play.
Re: (Score:2)
Re: (Score:2)
Sorry but you are terribly misinformed. You have to know what license you are going to use before you *USE* any third party code. That's valid for Qt, for Gtk, for WxWidgets for Motif and for *ANY* toolkit you may use.
"If you download the free version of their library and start writing code, that code can never be part of the same product as the proprietary version of their library, even if y
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re:FUD (Score:5, Insightful)
Most of us are betting that the landscape will be littered with corpses, and the MS Lawyers will be wiping their swords.
Beyond that, where have you been with OOXML? It's not complete! Since when does a *standard* read crap like "Do this the way Word95 does"? If you want a real standard, and if that real standard must accept Word95 has what has been de-Facto, then you need to adequately describe exactly what it is Word95 does. Then instead of "the way Word95 does" insert the real description. (And even with that shorthand, it's over 6000 pages?)
Re: (Score:2, Informative)
My concern with Gnome is not the license (that is, copyrights) but rather patents. I know that Mono is GPL, but that does not protect me from Microsoft's litigations in the future over grounds of patent infringements. Currently only a few distributions (SuSE, Xandros etc.) are 'protected' from such litigations. I know that Gnome is not Mono etc, but they do seem to adopt several 'problematic' technologies.
About Qt, I happen to trust Nokia
Re:FUD (Score:4, Interesting)
The concern with patents is a valid one, because of the sad situation with the (US) patent system. This is an issue with all desktops, and we all need to be aware of it. I do agree with you that Mono is more vulnerable to this issue than other random technologies, simply because we know of Microsoft patents relevant to it. So I can understand if someone is wary of Mono (but I, myself, am not too concerned about this). Yet, as you say, GNOME isn't Mono and certainly does not depend on it, so this is a non-issue. Especially if all you use is GTK - that certainly has no connection whatsoever to Mono. Hence, given that GTK is LGPL, which is a big benefit if your app is proprietary - it doesn't cost money - this seems the best idea for you.
(Btw, not sure what you mean by 'other problematic technologies' aside from Mono. Like what? OOXML? That is also not related to GTK in any way... it might appear in Gnumeric and OpenOffice, neither of which is directly GTK-related.)
I wouldn't be enthusiastic about wxWidgets - it's a nice concept, but doesn't seem to have enough momentum behind it. In particular there are few applications using it compared to the other platforms, GTK and Qt, and for good reason.
Re: (Score:2)
Re: (Score:2)
But, on the other hand, if you want to run free, open source applications, and retain your rights to see and change the code, use Qt.
Gotcha!
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
You miss the point. The danger is that Microsoft controls the patents which control the software technology upon which Gnome depends. Only Suse has a license for these patents.
If you mean .NET patents or OOXML patents, then yeah, Microsoft has them. But .NET and OOXML aren't in GNOME and certainly not in GTK (might be OOXML in Gnumeric, though?). So if this is your concern, you can use GNOME/GTK, just don't install Mono or Gnumeric (I don't, but not for these reasons). GNOME does not depend upon .NET or OOXML in any way; if you have been told otherwise, you have been misled. I am using GNOME right now without either of those technologies.
If you mean Microsoft patents in gener
Re: (Score:2)
Re: (Score:2)
Why not just use Ubuntu? (Score:3, Insightful)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:3, Informative)
Anyhow, to respond to the original question, I would use wxWidgets or SWT for any new GUIs, due to the native l&f wi
Re: (Score:2)
hasn't bothered to lay it's cards on the table yet. For all we
know CDE will have the same taint as anything else.
The patent problem is universal.
I guess we are left with... (Score:1)
No but seriously
Re: (Score:2)
But what if your existing code isn't Java? For example, I'm looking for a toolkit in which to write a new UI for a legacy mostly-FORTRAN program (and trying to decide whether to recommend GTK, QT, or something else).
Re: (Score:2)
Why do you not recommend GTK? And how would you choose between wxWidgets and QT?
I wish. Unfortunately, this program was begun in the 50's or 60's, and has all that legacy baggage. In fact, the mainframe it was originally written for didn't even have a finished operating system at the time, so they had to finish writing it for the mainframe manufacturer! Over the decades, it's been ported
Re: (Score:2)
Yup, you guessed it!
Yes, it's being used for civil engineering [gatech.edu]. And not only does it run on Windows, but my job is to port it to 64-bit.
Re: (Score:2)
heres my ~/.fvwm2rc http://pastebin.com/f5f82f926 [pastebin.com]
Epic FUD (Score:3, Insightful)
Re: (Score:1)
Re:Epic FUD (Score:4, Insightful)
First of all, Qt is GPL (even v3 now); Nokia can't undo that. Future developments might change things, but people can always fork it and continue as if Trolltech never existed.
Secondly, GNOME is *NOT* adopting Microsoft technologies. Miguel != SuSE != GNOME. OOXML, Mono are not essential technologies, and can be removed quite simply (with very little deficit to usability; the only significant Mono applications in the GNOME stack are a photo manager (GThumb already exists), Tomboy (retardedly complex code for sticky notes; already several replacement projects AND E-D-S can already do everything Tomboy does, AND Conduit can sync E-D-S across machines) and Beagle, and Tracker's not only faster, but it uses less memory and has been accepted as default across most of the prominent GNOME-based desktops). Futhermore, effort is underway to give C# users a better way to integrate into GNOME: Vala is modeled after C# and compiles directly to plain-ol' generic GObject C. On top of that, the most new code going into GNOME is Python, by a rather wide margin.
Re:Epic FUD (Score:5, Informative)
I am pleasantly surprised that most new code is in Python, interesting, how was this measured?
Re: (Score:2)
Re: (Score:2)
been put out to pasture by the rest of the gtk/GNOME team?
Otherwise, you're just blowing a lot of hot air and wishful thinking.
Re: (Score:2)
Suse?,how about.. (Score:1)
Right now for example,I have Gnome on a 64 bit Debian variant,Studio64.
BTW,isn't the word proprietary just a synonym for " verge of extinction"or"in house garbage no-one could be bothered with anyway"?
Cocoa / GNUstep (Score:1)
Use Qt4 for GUI toolkit (Score:2, Insightful)
Re: (Score:2)
How many 12 year old kids are posting to slashdot? (Score:2)
What the hell is with these types of posts? "Do my research." "Where is your proof?" When GTK an open source library is the proof. WTF? You can download and look at the source code, then you yourself can say if the other poster's comments are true or not. If you knew anything about the subject, I doubt you would make such a vague statement.
Thanks for wasting our time.
As to what the poster was talking about, one of my guesses as to mistakes would be how GTK is entangled with Glib. It's been a while since
Re: (Score:2)
While GTK has become visually polished and really pretty to look at, it still is poorly designed from a developer point of view and suffers from horrible implementation mistakes that probably would require a complete rethink/rewrite to correct.
Having used GTK to develop apps, I do not think this is true at all. In fact I found GTK to be a lot of fun to develop for (the only inconvenience, for me at least, being that the 'native' GObject on C is a little verbose, but thankfully we can now code apps in PyGtk and Vala, just to name two possibilites). So, when the parent made such a claim, I was hoping to see him base it on some concrete argument
Re: (Score:2)
Re: (Score:2)
GTK is not going to be disentangled from glib, ever: the fact that you consider this realistic shows that you have no understanding of the issue.
Perhaps we misunderstand each other. When I spoke of disentangling GTK from GLib, I meant to have a good and logical separation there. Once GTK had linked-list routines, for example; this was separated away into GLib. But of course GTK depends upon GLib; it is based upon it. If that is what you mean by 'disentangle', then yes, GTK relies on GLib, and this will remain so.
I would hope that we have no reason for insults in discussions like this.
Re: (Score:2)
In what way is the current situation not one of a `good and logical separation'?
I did not insult you or anyone. Anyone minimally familiar with GTK understands that `disentangling' it from Glib is an absurd proposition.
Re: (Score:2)
I think the misunderstanding is the use of 'disentangling'. I tried to clarify this in my previous post. If it still seems wrong to you, then ignore that word. My point was that GTK, in the past, wasn't logically separated into nice components, but that that has improved. I hope I am clearer now.
Re: (Score:2)
Thanks for the responce. That was what I was looking for. Sorry to be harsh, but vague statments like that set off my bullshit meter. My experience with GTK matched the other guy's, so I didn't think your statment was fair. I also wanted a real discussion because I am thinking of doing a little GUI programming in the near future, and want the pros and cons of the different toolkits.
I was annoyed especially because many times before trolls have made vague dismissive comments just like yours, and even when
Re:How many 12 year old kids are posting to slashd (Score:2)
Grandparent made the positive claim, therefore grandparent has to provide supporting proof. The rest of us can cheerfully ignore his banter until then. Or, if we are intrigued by the claims, subscribe to the newsletter as it were and ask for more information.
Wow, POSIX provides linked lists and hash tables and memory pools and Windows compatibility and gettext interfaces? Support that assertion.
Wrong yet again
Re:How many 12 year old kids are posting to slashd (Score:2)
the claim as if it were some article faith. If you can't actually
support your thesis then the rest of us should ignore it.
If you can't even come up with a single obvious annoyance than
obviously you're full of it.
Re: (Score:2)
Isn't this how most libraries do it--specify their data structures in the header file? Where is the problem?
Doesn't it already do this? So GTK using gpointer everywhere which is a typedef for void* (look in glib/gtypes.h) was just my imagination?
As for POSIX, I should have completed it by saying "and other standards." I wasn't confused exactly, there just weren't any s
Re: (Score:2)
GTK tried to do object oriented things in C, and the result is fairly ugly. This isn't a show-stopper, but the flexibility of QT just isn't there. Let's say I'd like a widget that works slightly differently than the default that either toolkit provides -- QT makes changing widgets through inheritance easy and elegant, not so in GTK.
GTK supports many, many programming languages, but only the most popular at any given time have language
Re: (Score:2)
Do you mean on Windows or OS X? On Linux, distributing a GTK app requires nothing at all, for all major distros. Pygtk as well; 'import gtk' works out of the box on all major distros AFAIK, which is nice because one of my projects is in pygtk.
If
Re: (Score:2)
GTK tried to do object oriented things in C, and the result is fairly ugly.
This is a very anhistoric statement. At the time GTK was started, there was not even a stable ABI for C++ the language... Do you even understand what that means?
This isn't a show-stopper, but the flexibility of QT just isn't there. Let's say I'd like a widget that works slightly differently than the default that either toolkit provides -- QT makes hanging widgets through inheritance easy and elegant, not so in GTK.
Have you actually tried doing this?
QT's thread api is simple to use with the signal/slot mechanism providing an excellent way to pass data between threads and synchronize them. GTK's thread api is. . .not as nice.
That's a quite subjective statement, don't you think?
Re: (Score:2)
The same applies to GYK apps, don't add Gnome dependencies if not absolutely required.
It would also be nice if apps could be compiled to use either GTK or QT, make everyone
wxWidgets (Score:2)
Let the toolmakers decide? (Score:2)
wxWindows produces native GUIs. (Score:3, Informative)
GTK -- Using Microsoft's Compiler: [gtk.org]
It is possible to use these packages with Microsoft's compiler. However, these DLLs use the MSVCRT.DLL runtime library. This means that also applications that use these DLLs should use the MSVCRT.DLL runtime. Specifically, this means tha
Re:wxWidgets (Score:4, Funny)
xfce (Score:2)
Not unreasonable concerns... (Score:1)
For example.
There is currently no free fully functioning implementation of Microsoft's Silverlight.
You can get a *working* implementation through Novell, however there are certain parts that remain Microsoft's.
You can
Re: (Score:2)
GNUStep / Étoilé by far the most common (Score:3, Informative)
vt100 (Score:2)
Just use GTK or Qt, dumbass! (Score:2)
why are those my only choices? (Score:2)
As for either of the two choices mentioned, why worry about the future of them? The libraries are not going to disappear or suddenly "not work" just because someone decides in the future to change their d
Is there an AJAX counterpart to Java JNI? (Score:2)
The other good thing about Java is that the Java Native Interface (JNI) is reasonably well doc
Methinks the community doth protest too much... (Score:5, Interesting)
Even more concerning is influence that Novell simultaneously exerts over the KDE project. In this case, Novell certainly doesn't have the impact on KDE that TrollTech does - however, they do have the legacy SUSE team, who were (are?) huge KDE advocates, users, and comprise many of the developers.
So, does Novell present a nexus of influence and control on the core of Linux's desktop systems? Can they exert undue influence on these projects and, therefore, bend them to the good of their corporation - as opposed to the projects being driven primarily by unaffilated community developers? (Or at least a community of developers with varied and diverse affilations, effecting the same net result...)
And, then, the question that naturally flows from this discussion is "Is this a good thing?". While I don't think anyone one entity should have paramount influence over two competing projects, in this case there may be some significant advantages. Having a unified driver behind both GNOME and KDE could allow a desktop to take advantage of the best from each. We've seen Novell already attempt to do this in their own distro - SUSE Linux Enterprise Desktop 10 has many useful KDE features ported to GNOME and integrated into their standard desktop configuration.
I guess at the end of the day, it comes down to two questions: 1) Do you think really can influence both projects (or even either one)? and 2) Do you trust Novell to drive the desktop in a direction beneficial to all?
Re: (Score:2)
Novell doesn't have as many developers working on GNOME as RedHat, and Imendio have more developers working on Glib and GTK+ than Novell. The developers that Novell does have working on GNOME related applications and development tools are focused on Evolution and Mono respectively, and even Evolution has no dependencies on Mono.
...if Trolltech were bought out (Score:2)
Re: (Score:2)
Tk (Score:2)
Re:Tk (Score:5, Interesting)
Hmm...so are you advocating writing GUI apps completely in Tcl, or writing the app in some other language, but doing the GUI parts in Tk? From what I've heard, Tcl itself is a reasonably nice language. But personally I don't want to learn a whole new language just so I can use a particular GUI toolkit, and if I'm going to write my app in a scripting language I'd prefer to use Perl or Python, due to their excellent, comprehensive libraries.
I've done a Perl/Tk GUI app, and my experience was decidedly a mixed bag. On the one hand, I found it very pleasant and efficient to code to the Perl/Tk interface. On the other hand, I ran into some major issues with code quality and the fact that nobody is actively maintaining the code base. If you look through the Perl/Tk source code, you see page after page of C that handles pointers as if it was still 1978. This led to one major snafu that made me decide never to touch Perl/Tk again: there was a null-pointer bug [cpan.org] that interacted badly with a GTK release that came out ca. 2005, causing Perl/Tk applications to crash randomly. I submitted a patch, but it took ages for it to be applied, and during that time all Perl/Tk apps were crashing frequently on, e.g., all the recent releases of Ubuntu.
Re: (Score:2)
Depends on the problem you're trying to solve. Both approaches work, so does writing the GUI in Perl/Tk or Scheme/Tk, or even using a captive Tcl interpreter for the GUI under your scripting language of choice. If Perl/Tk is not being maintained, that's a problem, of course. I'm not sure what you mean by "handles pointers as if this was 1978", unless you're talking about p
Re: (Score:2)
What, me cynical?
Hell yes.
where are they finding these people? (Score:2)
Nokia drives Qt proprietary? Fork it.
GNOME includes support for OOXML? Ignore it.
Want to write an GUI app? Use what ever desktop suits you and your users most.
Thinking of posting to ask
/Mike
Do you want to make money? (Score:2)
In that case, your only real choice is Qt, seeing as the windows and mac gtk ports are, last time I checked, fairly poorly supported.
If you can't afford Qt licences, or don't want a windows version, then you clearly aren't actually seriously planning on making money, in which case do whatever you feel like.
Re:The answer is simple, very simple (Score:5, Insightful)
Same rules apply, though. Don't be afraid to pull in libraries, but no matter how closely you tie it to a particular desktop environment, unless you do something incredibly stupid, it will work on others -- it will just be that much more bloated on them.
Re: (Score:2)
And ed is the standard *nix text editor.
Re: (Score:3, Funny)