Desktop Environment for Proprietary Applications?
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?"
Jesus, GNOME != Suse.. GNOME != Miguel.
How we know is more important than what we know.
That's what nushoin uses, after all. Yeah, it's flamebait. The whole freaking summary is flamebait as well. Just because someone that writes code likes some stuff that MSFT makes doesn't mean that we should abandon ship. If proprietary code is found in the codebase, it should be easy to remove. So far it hasn't shown up, which is pretty amazing since it's all opensource.
Help! I'm a slashdot refugee.
Motif
... Java SWT i fine for me.
No but seriously
And not because it's inconsequential that QT was bought by Nokia or that Miguel *hearts* MS. It's just not news, not shocking and at the moment not a problem.
How about any other distro you can run Gnome on?
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"?
*Repent!Quit Your Job!Slack Off!The World Ends Tomorrow and You May Die!
Mac OS X. If you want more free than that, GNUstep/Etoile
==================
Hippie Logger Jock
==================
Nokia poses absolutely no threat to Qt and it's the best GUI toolkit available for Linux by far. It also works wonderfully on Windows, OS X, *BSD and Solaris.
I'm partial to wxWidgets, or more specifically, wxPython. But that's just me.
I have been using xfce for a few months now and really like it. its a little different layout from your typical default gnome/kde/windows desktop but the learning curve is still no harder than memorizing the changed icons. its also very light and fast compared to gnome or kde. and at least on arch and ubuntu its complete right out of the gate unlike most of the *box window manager setups where you need to get your own panel and file manager, which can be daunting for people who are new to that particular desktop environment.
thats right, I rarely use capitals. deal with it. but don't mistake my laziness for stupidity
Just use WxWidgets and let the WxWidgets developers decide how to interface with whatever operating system and desktop you want to use?
If you take into consideration the "implementation" of moonlight and the developers "we are covered by Microsoft agreements and you are safe to get this code from us but no one else" attitude (I could quote a certain lead developers words if need be). Then these are not unreasonable concerns.
:-
:-
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 get a *free* implementation, this however, is not fully compatible.
Hopefully this "We're alright we signed with Microsoft" is the beginning of the end for these projects are more and more developers realise that any code contributed can only safely be re-released by entity who "signed with Microsoft".
Projects to be wary of include but are not limited to
Moonlight (any non free implementation)
Mono (any non free extensions and now possibly including System.Windows)
Under question
Monodevelop (seems to now be a Novell project how did that happen??)
With this commercial drift developers are now more than ever entitled to be concerned over what patents / intellectual property that are using.
Can you give some examples to support that claim?
You get free portability to the Apple Macintosh built in.
Deleted
That was a good answer. Specifically, I would follow the examples of firefox,
thunderbird (free), acrobat reader for unix (proprietary), and go GTK+.
Or you could follow the examples of Opera and Skype and go Qt.
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.
Don't thank God, thank a doctor!
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 I've done anything with GTK and Glib, but it seems to me the majority of problems intended to be solved by Glib have been solved by POSIX. I realize GTK predated POSIX, but shouldn't they have written it for POSIX compatiblilty instead of Glib in version 2.0? It just shows to me that GNU has the same "not invented here" mentality as Microsoft...
here you go!
Do you even lift?
These aren't the 'roids you're looking for.
Regarding 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 I've done anything with GTK and Glib, but it seems to me the majority of problems intended to be solved by Glib have been solved by POSIX. I realize GTK predated POSIX, but shouldn't they have written it for POSIX compatiblilty instead of Glib in version 2.0? It just shows to me that GNU has the same "not invented here" mentality as Microsoft... Some points:
And ed is the standard *nix text editor.
We live, as we dream -- alone....
And it seems to be you.
In real life, those making claims and expect to be taken seriously bear the burden to validate those claims. The absence of this is what leads to things like "sensationalism" and also outright lies. In the case of false or less-than-wholly-true claims, this is because average consumption of information is taken at face value, and regardless of whether any intelligent few actually ever follow up with their own research to disprove statements of falsehood, the pool has been tainted.
The onus is on you.
Welcome to the adult world.
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
UC Berkeley XCF, not GNU. I give up; you're clearly trolling.
TO BUY A NEW CAR WOULD MAKE YOU SEXUALLY ATTRACTIVE.
But a GPL library is not very useful in a proprietary application, so you'll have to get the library under a proprietary licence, which costs money.
I suffer from attention surplus disorder.
Target the VT100, and you won't have to worry about evil corporations
No desktop environment that runs now on Linux (or any Unixlike OS other than OSX) requires you to use each and every crappy library that comes with that environment. Both popular toolkits are successfully used by open and proprietary applications alike, and even Qt commercial license has a pretty reasonable price for functionality that Qt provides. Also I can't imagine either KDE or GNOME adopting anything tied to Microsoft as a mandatory part of their environment regardless of what Miguel or Nokia people may want -- this would instantly cause a fork, just like XFree86/Xorg.
In any case this trollish article has nothing to do with the purpose of "Ask Slashdot" category and everything with the fact that no one bothers rejecting crap when it is submitted as "Ask Slashdot".
Contrary to the popular belief, there indeed is no God.
elvis is like vi only with sideburns and drives a pink Cadillac...
Politics is Treachery, Religion is Brainwashing
Java Swing (over JWS for remote distribution), pure gnome-less GTK, or some really good Ajax programming which can keep your app from being permanently desktop-confined for that day when someone goes "do you have a web version?" which we're asked *constantly* at my company for our flagship desktop product.
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 direction.
And Gnome is on a TON of distros, including Fedora, (non-K) Ubuntu, and a lot of the light-weight live distros I've seen.
If you really need the desktop integration features, I would first ask myself why? Why can't I just write a really good application that stands on its own without the need for such tight integration with the containing environment.
"But remember, most lynch mobs aren't this nice." (H.Simpson)
-- Joe
Honestly, I'm a little surprised. The very first reply opens with GNOME != SUSE... but, let's look at this seriously - GNOME may not be SUSE, but it certainly is Novell. You're talking about a company that employs many key GNOME developers. To futher quote the replies to this post, GNOME != Miguel deIcaza - true - but a LOT closer to the mark is GNOME == Nat Friedman. More importantly, look at the list of GNOME project thought-leaders under Nat's leadership at Novell... people like Larry Ewing (F-Spot), Michael Meeks, Dave Camp, Joe Shaw, Robert Love, and (yes) Miguel de Icaza.
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?
"Adventure? Excitement? A Jedi craves not these things."
wxWidgets is native to all supported operating systems. GTK was originally designed for Unix-style X Windows. My understanding is that under Windows it still has X Windows quirks and limitations. There is also a difference in grief:
GTK -- Using Microsoft's Compiler:
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 that you should not use newer versions of the Microsoft compiler than Visual C++ 6 without knowing exactly what you are doing.
wxWidgets Compiler support:
wxWidgets supports more compilers than probably any other framework. All popular Windows C++ compilers are supported with the exception of Symantec C++ (this is being worked on), and on Windows you can use the Cygwin or Mingw32 free compilers. Even the 16-bit versions of Visual C++ and Borland C++ can be used. On Windows, makefiles are provided, with project files for VC++ 5 and above.
Just about all known Unix C++ compilers are supported, for the Motif and GTK platforms. If you have a compiler that isn't supported, with help from the wxWidgets team we should be able to fix the problem quickly.
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 happy, but that's not going to happen. (QT3+ won't compile on this thing)
I thought there was an agreement that if Trolltech were bought out, Qt would be released under a BSD license?
If what I want to do is supported by the widget set of Tk (and it's just been significantly enhanced with Tcl/Tk 8.5) that's what I'll use. It's BSD-style licensed, runs natively on X11, Win32, and Cocoa/Carbon, and was designed from the start around rapid prototyping and embedding.
"But a GPL library is not very useful in a proprietary application, so you'll have to get the library under a proprietary licence, which costs money."
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.
"GTK produces revolting UIs on Windows and Mac, so it's not good either."
Why not use wxWidgets and let professional GUI toolkit developers decide? See the comment below.
"You can get Visual Studio Express for free and [the] professional version for something like $150."
Visual Studio 2008 Professional Retail-Box Win32 : $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 for "Only" $5096.99. Otherwise known as $5100.
Source: Microsoft's buy page.
Sorry, I meant 'Standard Edition': http://www.amazon.com/Microsoft-Visual-Studio-2008-Standard/dp/B000WM1Z46 - it can be bought even cheaper in quantity. We got it for about $150 for 10 developers.
Team software suite is not necessary for a lone developer or a small company.
"Mono right now shines as a platform for developing desktop applications, and we want to make sure that the developer experience there is great. Once we have conquered that space, we can organically reach into other spaces, but lets first get the first generation of Mono-based GNOME applications rock solid and shipping." - Miguel de Icaza
The focus on the "developer experience", the conquering, the reaching into other spaces... creeps me out, you?
Do you think Miguel is most concerned with the technology itself or it's penetration? Why?
Well, I don't really have a dog in this fight, but here's my experience:
.not as nice.
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 bindings that are up to date. This would be a plus for GTK, but there are QT bindings available too, so it's really a wash.
Distributing a compiled QT app is dead simple, you include three or four libraries and you're off to the races. GTK apps are a nightmare of libraries and config files that have to be structured just so. GTK is a pain in the ass in this regard, especially PyGTK.
QT runs beautifully on Windows, while GTK has a few bugs to iron out.
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. .
If moderation could change anything, it would be illegal.
That's just paranoid. When something is standardized, it's standardized. I don't see too many lawsuits over OpenOffice (Sun) supporting Word 97/2000/XP formats.
Apple certainly didn't have too much trouble implementing OOXML for TextEdit, either. Neither has Novell or Corel. Almost every innovation in the tech industry starts out at one company or another- even Unix is from Bell Labs.
The only reason Microsoft has had law suits against the open source world at all is because of how many desktop unix technologies were blatantly gouged from Xenix- and that's over. It didn't work out and now they seem to be working towards interoperability, which is simply business. Do you think companies like Novell and Sun do not have legal departments? Do you honestly think they're unknowingly walking into the dark and evil plans of some moderate sized tech company in Seattle?
There is a world outside of the desktop computing world. Microsoft is a medium sized fish and it is staying relevant by pushing standards that they believe they can outpace their competitors with. There's a major game in innovation. Was Sun the only Java provider? No, but they were certainly the most notable.
Reality: Microsoft is a fairly large and well grounded technology firm in Seattle. Their major product is a VMS-based operating system which uses a hybrid microkernel with an integrated windowing system. They are currently on top of the desktop computing market because their technologies proved to be easy to use (and ran on SUPER CHEAP hardware), flexible, and offered decent support and compatibility for enterprises and home users. Linux has been picking up recently as a viable alternative for home computing and business. It's now on its second year of being competitive with commercial offerings (thanks to Ubuntu). New corporate interest has brought expertise and organization to the once unruly mass of hobby developers, giving linux unprecedented interoperability with mainstream technologies.
If linux is ever to take the lead, it first needs to be a proper replacement for its competition. Most users want compatibility and ease of transition moreso than whining and doomsaying. If they ever reach a point where (the now failing) Microsoft tries to use IP to hold back their ever-growing competition- if their competition is larger, they'll just get a check written for them and business will continue. They might get slight royalties at best.
Ooooo SINISTER.
The other good thing about Java is that the Java Native Interface (JNI) is reasonably well documented, and it lets Java call C/C++, and it lets C/C++ call back into Java. Maybe a little clunky and you have to understand the global and local locks thing on the native side or you can get some horrific bugs, but it is quite powerful once you get the hang of it.
My understanding of AJAX is that your programming is mainly in JavaScript to get code running on the client to do a lot of things that can only happen or happen efficiently on the client. Is there any way to call from JavaScript down to C/C++, either client side or server side?
I have been using xfce for years now, for my personal desktops (with 30 virtual screens!). For me, it is the right balance between complexity (nifty accessories) and lightness of use. With the Gnome aesthetics - I do really prefer the graphical look of Gnome over KDE. This is not only due to the fact that I try to avoid anything C++.
For work, most of the times I use plain X. Without a windows manager. I develop applications for interactive arts installations. I generally use one or more SDL-managed windows with or without OpenGL inside. If I really need windows decorations, I use Oroborus, a very simple, very lean windows manager, and I use GTK+ if interactive widgets are needed. All of this, in Ruby. With C-coded snippets when speed is crucial.
There is life outside of the Gnome/KDE dichotomy. Sometimes, I still use text mode!
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.
Martin
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
-- "So, what's the deal with Auntie Gerschwitz et all?"
- Qt: Until being bought out by Nokia, their core business was licensing Qt commercially so it would have been a sound enough bet for closed source development (a little expensive maybe). For open source, it's GPL so no issue there. At this stage though, I'd be a little nervous if I had bet the company on Qt.
- GTK+: The toolkit that underlies Gnome is licensed under LGPL. This means it's permitted to create/distribute closed source apps which use GTK so the only question is whether you like the toolkit. GTK is written in C and not everyone like the approach that it has taken.
- GTKMM is a C++ wrapper for GTK+, also licensed under LGPL so it's good for commercial and open source
Obviously, there's Java but that's a different day's flamewar. It would have been nice if Miguel had not diverted his considerable abilities into something which I think will end badly (mono) but the Gtk and Gnome projects continue without him so there's no danger of these becoming evolutionary dead-ends due to mono. There's also the Fox toolkit (http://www.fox-toolkit.org/) which is used in the amazing rezound (http://rezound.sourceforge.net/) and WxWidgets (http://www.wxwidgets.org/). Both of these support multiple platforms and are licensed under LGPL.Mia kusenveturilo estas plena da angiloj
Please read the following Blog entry: http://blogs.gnome.org/mortenw/2008/02/02/themes-are-evil-part-ii/ It boils down to: Using a QT based theme engine resulted in a completely different behaviour of the number handling of a GTK program. So the answer might be in special cases: it is not that simple.
If you meant Windows or OS X, then yeah, much trickier there. GNOME is great on Linux, less so as a cross-platform tool. However it is improving in that respect.
wxWidgets (http://wxwidgets.org) is a platform agnostic toolkit. Use it, it's great.
If you are making a closed source app, then I assume you want to make money. In that case, you are going to want to release a windows version, and probably a mac version, to reach the biggest market.
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.
Combination - fun iPhone puzzling
The point being made, I guess,is that GTK does not ask for license money in order for you to use it, even if you app is not open.
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.
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. .That's a quite subjective statement, don't you think?
I would hope that we have no reason for insults in discussions like this.
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.
I agree that the current situation is a good one.
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.
It is my opinion that GUI's should be treated like a service, similar to RDBMS, rather than compiled into applications. We are still in the primative stage when it comes to GUI's such that the API's are too low-level or unnecessarily tied to specific languages.
Table-ized A.I.
Yup, you guessed it!
Yes, it's being used for civil engineering. And not only does it run on Windows, but my job is to port it to 64-bit.
"[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz
"Here's what frustrates me about QT: You have to know what license you are going to use before you write any code."
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 you never distribute the code until you purchase a proprietary license"
That's not only false; that's stupidly false. I beg you share your mind paths to reach such a surpresive conclusion to our fair enlightment.
"I understand that if they didn't do this, people would develop proprietary applications internally"
You just CAN'T develop such a beast as a "internally propietary application". If it is not distributed, it can hold any distribution agreement or license, it's that simple.
"then only purchase a proprietary license when they were ready to release."
Again, I kindly ask what's your basis for such an astounding idea that you just can't download the freely avaliable Qt libraries then start developing and if you want to distribute the result of your hard work under a privative license buy *then* a license from Troll Tech and start distribution by the terms of the license Troll Tech has agreed to you (not that you really need it, but the worst case scenario *if* Qt privative license was entangled to some specific binaries from Troll Tech would be that you would need to recompile your source code -the same you already developed in-house, against the blessed libraries -not that you really need it, mind you, but that would be the worst case).
"There is some irony in the fact that it is more legal to prototype your undecided-licence QT application internally either using free GTK or "free" Microsoft UIs than it is to prototype using the free version of QT itself."
I find terribly difficult to believe you are so clueless. Certainly, specially considering you publish as an "anonymous coward", it's easier to believe that you are a troll.
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 stable / usable implementations of all those standards in place at the time, especially with Linux and GCC. POSIX does have functions for regular expressions--regcomp, regexec, and regfree.
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 I would take the time to give detailed links, they'd just come back with another detailed statment. A very efficient attack for the trolls, for little effort on their part, they'd either make someone waste lots of time or others wouldn't believe the poster's statments, even though they were true.
Yeah, I'm letting the trolls win by changing my attitude...
No, if you make a claim then YOU NEED TO BACK IT UP and not treat
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.
A Pirate and a Puritan look the same on a balance sheet.
Hi,
Good choices for developing either free or proprietary software are gnome and kde.