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!
I prefer xfce myself, it's not as full featured, but I like it that way. Sure KDE looks really pretty and all, but I've had some bad experiences with it; Mandrake 9.1? it ate all my CPU frequently and Slackware (can't remember version) the sound desynced very badly with popups (mind you that was probably my fault). Nothing major, just slight irritations, I moved away from those distributions because of broken compilers actually (corrupt install maybe). I can't remember why I avoid gnome though.
Motif is the standard *nix toolkit. It's stable and not controlled by any particular vendor.
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.
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.
I would add a hint for desktop applications developers though: please don't add KDE dependencies if not absolutely required by your software. QT is a clean and powerful toolkit even without using or linking against the KDE widgets and libraries that would add a plethora of dependencies and would considerably grow the size of your program.
If there's no particular reason to be close to the hardware or the OS, I would write a desktop app in Java. You get compatibility amongst a number of operating systems families for free.
You get free portability to the Apple Macintosh built in.
Deleted
The answer is so obviously simple. Do not "target" or "develop" for a particular "desktop environment". Simply write an X windows application, using whatever X toolkit you want to use, but don't target it at a "desktop environment". This will assure it works with all "desktop environments" and also will work for those of us who do not use any of the "desktop environments" because we don't care for the bloat that comes along with them.
If you target a "desktop environment" all you are doing is reducing the potential pool of people who can use your program.
It's more than that. It's outdated. I believe QT went completely GPL awhile back.
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...
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 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.
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.
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.
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.
"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.
I would probably use a athena widgets or a similar one, and not targeting any particular desktop to make it work with any desktop or even working without desktop at all, I don't even know why you need a desktop anyways!
"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?
I think he means, anybody with half a brain will obviously think this is a bogus claim, and so he wants specifics.
So should GTK+ have implemented all of its data structures inline? Or just passed around void* everywhere and ignored data structures? What's the alternative you're proposing?
You seem confused. POSIX dates to 1988. GTK+ (and GLib) were spun off of the GIMP, which was created in 1997. You're off by a decade. And if you look at what glib and POSIX provide, you'll notice almost no overlap. POSIX has no lexer, no high-level string functions, no type system, no binary trees or doubly-linked lists, no regular expressions. POSIX was a good step, back in the 1980's, but it's foolish to think it's the end-all-be-all of C libraries.
Or that FUD is still a problem for GNU software.
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?
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?"
Apple came nowhere close to fully implementing OOXML. It did only a rather limited subset.
Sounds like ICES.
ICETRAN and CDL were components of ICES -- Integrated Civil Engineering System -- a sort of development environment for various civil engineering applications that was developed, if I remember correctly, by NASA. I worked alongside some groups who used it. As I recall, it added some fairly nice, at the time, extensions to Fortran.
Interesting that someone has ported it to Windows. Is it being used for civil engineering applications or something else?
- 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
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
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.
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.
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.