LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - General
User Name
Password
Linux - General This Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.

Notices

Reply
 
Search this Thread
Old 08-15-2011, 01:00 AM   #1
dan2
LQ Newbie
 
Registered: May 2011
Posts: 14

Rep: Reputation: Disabled
which linux distro is easiest to write a gui program for?


I would like to write some multi-document, multi-window applications.

Which linux distribution is best (i.e., easiest) to do this in?

(Things like what language to use or what tools to use are irrelevant to me, and i don't need an IDE. But what i do need is some idea of the right libraries to use. And it would be surprising if all distros were equally friendly to developers, although maybe that's the case.)

TIA for any info.

dan
 
Click here to see the post LQ members have rated as the most helpful post in this thread.
Old 08-15-2011, 03:12 AM   #2
eSelix
Senior Member
 
Registered: Oct 2009
Location: Wroclaw, Poland
Distribution: Kubuntu
Posts: 1,190

Rep: Reputation: 301Reputation: 301Reputation: 301Reputation: 301
I think it is not distribution relevant, rather Desktop Environment and Window Manager. I only known KDE and Qt libraries and can recommend to you, but also there is a GTK used mainly on GNOME.
 
3 members found this post helpful.
Old 08-15-2011, 03:16 AM   #3
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,412
Blog Entries: 2

Rep: Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995
As eSelix already stated, this is not a question of the distribution, but of the toolkit you want to use. The most widespread are GTK and QT. There are also others that are not so widespread, but I would focus on QT or GTK, since there is the most documentation for them.
 
2 members found this post helpful.
Old 08-15-2011, 10:02 AM   #4
dan2
LQ Newbie
 
Registered: May 2011
Posts: 14

Original Poster
Rep: Reputation: Disabled
Thanks eSelix and TobiSGD.

For reference, eSelix said that desktop environment and window manager were the most important factors rather than distribution, and TobiSGD said the most important factor is the toolkit you want to use.

It's easy to believe that you are both exactly right, although it is a little counterintuitive --- because, after all, if a distro has a particular look-and-feel or any special features, it would seem like it would provide some means for to let programmers tune for it. And it also seems a little surprising that all distros would be equally easy (or difficult) to program for. (I mean, it sounds like there's some redundancy among the distros in that case.)

But you are probably right, so given this, then, what desktop environment, window manager, and toolkit combo would be easiest to program for, and why?

I'm aware of qt and gtk, and also that there may be long-term issues with qt due to changes at nokia.

Are there other toolkits that i should investigate?

And what about desktop environment/window manager?

My goal is to write multi-document, multi-window applications, sort of the way you can on the mac.

I don't need an IDE, but would like to know the easiest path in in terms of libraries to use.

Portability to non-free platforms is not much of a concern for me.

What requires you to construct as little infrastructure yourself as possible (that is not directly tied to your subject domain)?

Thanks again for your replies and thanks for any further info.

dan
 
Old 08-15-2011, 10:18 AM   #5
johnsfine
Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,051

Rep: Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100
Quote:
Originally Posted by dan2 View Post
TobiSGD said the most important factor is the toolkit you want to use.
I agree that toolkit is the important factor. I don't know of a good third choice after qt vs. gtk (but I'm not sure there isn't a good third choice).

The choice of toolkit might influence your choice of desktop, either to have a desktop that is behaviorally more similar to the applications you are developing (reduce your own learning curve) or to reduce resource use on an under powered computer (more code sharing between desktop and your own work).

The choice of desktop usually influences the choice of window manager, but that is a minor detail you don't really need to worry about.

The choice of desktop might influence your choice of distribution. You can use either (or other than the two main choices) desktop with almost any distribution. But by selecting the default desktop for the distribution you make that distribution's documentation more understandable and you can get better results from forum support for that distribution. So if you choose the Desktop first, you may then be best to choose a distribution for which that desktop is the default.

Quote:
it also seems a little surprising that all distros would be equally easy (or difficult) to program for.
I would say almost all distros. But otherwise, surprising or not, that is Linux.

Quote:
(I mean, it sounds like there's some redundancy among the distros in that case.)
Overwhelmingly correct!

Last edited by johnsfine; 08-15-2011 at 10:20 AM.
 
1 members found this post helpful.
Old 08-15-2011, 10:38 AM   #6
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,412
Blog Entries: 2

Rep: Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995
Quote:
Originally Posted by dan2 View Post
because, after all, if a distro has a particular look-and-feel or any special features, it would seem like it would provide some means for to let programmers tune for it.
To make this a little bit clearer, The three big desktop environments rely on the underlying toolkits, at least to the most part: KDE (QT), Gnome (GTK) and XFCE (GTK). The particular look of a distro is almost only defined by the theme for that toolkit. That means, if you are running a distro with for example XFCE as main desktop and you are programming with using the GTK toolkit your applications will perfectly fit to your current desktop. If you change the GTK theme the theme of your application will also change. Even if you run your application on another computer that runs a GTK based DE it will perfectly fit to that desktop. But if you run that application in KDE it will not fit, since KDE is QT-based. There are some themes and theme-engines that try to make a unique look, regardless of you use GTK or QT, but I don't know how good that works, I never tried that.

Quote:
it sounds like there's some redundancy among the distros in that case
Absolutely true.

Quote:
What requires you to construct as little infrastructure yourself as possible (that is not directly tied to your subject domain)?
I may be wrong here (and please correct me in that case), but AFAIK is GTK a GUI toolkit, while QT is an application framework. I don't know for sure, I never have programmed for one of them.
 
Old 08-15-2011, 12:45 PM   #7
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713
Quote:
Originally Posted by dan2 View Post
Which linux distribution is best (i.e., easiest) to do this in?
The distro is almost completely irrelavent.

Quote:
Originally Posted by dan2 View Post
And it would be surprising if all distros were equally friendly to developers, although maybe that's the case.
They are. All distros are still Linux inside, and work almost exactly the same way. The only real differences are the package manager, the way things are configured by default, and the pre-installed programs.

Quote:
Originally Posted by TobiSGD View Post
GTK a GUI toolkit, while QT is an application framework.
Yes, Qt is more than just a GUI toolkit. Here is a list of all the stuff it provides: http://doc.qt.nokia.com/4.7-snapshot/modules.html. I don't know is GTK has more functionality than just a GUI toolkit, since I never really used it. I tried both, and personally I found Qt far easier to use than GTK.
 
Old 08-15-2011, 01:39 PM   #8
johnsfine
Guru
 
Registered: Dec 2007
Distribution: Centos
Posts: 5,051

Rep: Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100Reputation: 1100
Quote:
Originally Posted by TobiSGD View Post
But if you run that application in KDE it will not fit, since KDE is QT-based.
I want to comment on that statement, but with the caveat that I personally care about appearance issues less than most people do. (If you saw how I dress for work, you'd realize the above is a bit of an understatement).

I have used applications in KDE and Gnome that were based on the other's toolkit, so by the above logic (in each direction) the application did not "fit". Those applications worked just fine and I didn't notice any appearance issues.

It makes sense that themes can't apply properly (if at all) to an application from a different toolkit. But whether that matters is a separate question.
 
Old 08-15-2011, 02:10 PM   #9
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,412
Blog Entries: 2

Rep: Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995
I meant the pure optical part (I use XFCE with a black theme, and since I didn't fiddle with the QT theme yet QT-apps come with a light grey theme), of course they will work as intended.

Quote:
But whether that matters is a separate question.
Absolutely.
 
Old 08-15-2011, 02:12 PM   #10
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713
Quote:
Originally Posted by TobiSGD View Post
I use XFCE with a black theme, and since I didn't fiddle with the QT theme yet QT-apps come with a light grey theme
Try "qtconfig".
 
Old 08-15-2011, 02:15 PM   #11
TobiSGD
Moderator
 
Registered: Dec 2009
Location: Hanover, Germany
Distribution: Gentoo
Posts: 15,412
Blog Entries: 2

Rep: Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995Reputation: 3995
Quote:
Originally Posted by MTK358 View Post
Try "qtconfig".
Thanks for the tip, will have a look at KDE-Look.org for a nice black theme.
 
Old 08-15-2011, 03:22 PM   #12
John VV
Guru
 
Registered: Aug 2005
Posts: 12,669

Rep: Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683
Quote:
Which linux distribution is best (i.e., easiest) to do this in?
any , none , every , all
Quote:
Things like what language to use or what tools to use are irrelevant to me, and i don't need an IDE
learn to use VI or emacs
 
Old 08-15-2011, 05:58 PM   #13
dan2
LQ Newbie
 
Registered: May 2011
Posts: 14

Original Poster
Rep: Reputation: Disabled
Quote:
Originally Posted by John VV View Post
any , none , every , all

learn to use VI or emacs


Actually John, the reason i am on this quest is because of emacs.

emacs is the most powerful tool (i guess apart from the compiler and debugger themselves) that any programmer can use: you can have hundreds of open files, dozens of shells, compilations, and gdb sessions running at once, and easily transport text from any of them to any of the others.

But it is not as universal as i thought: on some very nascent systems you apparently have to work quite hard to get it installed.

And that is my dilemma.

There is one free OS that i am very interested in, because it has a good application model: the system comes with a good library of classes representing windows, events, applications, etc. The system itself provides intelligent menus so there's a consistent user interface. There's lots of documentation available. In fact, it reminds me of NeXTstep. Not in appearance, because that is different, but in terms of intelligent design, so to speak. And i can also install it on my hardware.

I think in fact that this system might be easier to develop on than a mac, although i cannot say for sure because i ran into an obstacle.

The one respect this system is lacking in is that emacs is emphatically not bundled with it. And although there certainly are emacs packages for it, it looks like it will be some slow sledding to make emacs functional on it. Emacs is as deep as it is powerful, and so i'm very hesitant to embark on what could be an open-ended, unbounded effort to get it to run. And, if i do, the next rev of the OS may well break it.

The situation with GNU/Linux is nearly the opposite.

It installs easily, and although for whatever reason some systems do not ship with emacs (how can it be that a linux system doesn't ship with emacs when the mac does?), you can always get a package for emacs, and mindlessly install it.

So the infrastructure available for GNU/Linux is immense and highly functional.

But afaict, the only possible windowing system you can get is something layered on top of X.

And it seems like developing a multi-window, multi-document application involves a definite learning curve, and it is also not clear what's at the end of the curve (whether, for example, you'll get lowest common denominator effects).

I would like to avoid that curve if i can, which is why i put out this query.

And of course i could be wrong about any or all of what i've written regarding GNU/Linux (or anything else, for that matter), so i'm all ears for corrections, or pointers to the fine manual, or any other suggestions.

And thanks everybody for all the info so far, which does include several leads that i should look up.

dan
 
Old 08-15-2011, 06:48 PM   #14
John VV
Guru
 
Registered: Aug 2005
Posts: 12,669

Rep: Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683Reputation: 1683
most programs DO NOT have the ability to build a QT and a GTK , or glut interface and in to it a windows and mac osx interface

pick one
get used to it then add additional support

the one program that i am very familiar with is Celestia
it uses gtk2 or glut or qt4(was qt3)
however glut and gtk were the first it ran on mac,windows and any linux os with gtk installed
and QT was added later ( second class citizen ) QT4 will soon be the default replacing gtk


nothing lasts

gtk2 has some very nasty resource issues that 3 should mostly fix but qt handles very large data sets better
gimp is moving away from ( the Gimp Tool Kit [ gtk])


start with something that FITS your current needs
then grow it .


start with a good stable OS
opensuse 11.4 KDE is
opensuse using Gnome -- not so gnome2 crashes all the time and Gnome 3 ??? you like it or you DO NOT like it .

I would NOT use fedora - it requires A LOT and i mean A LOT of work on YOUR part to keep working

rhel6.1 or ScientificLinux 6.1 good stable but not very new versions of programs

both Gnome(gtk2,3) and KDE (qt4) have some very nice ide tools for rapid deployment
both have built in code for a window and adding options to them

try them out
then decide
 
Old 08-15-2011, 07:06 PM   #15
MTK358
LQ 5k Club
 
Registered: Sep 2009
Posts: 6,443
Blog Entries: 3

Rep: Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713Reputation: 713
Quote:
Originally Posted by dan2 View Post
But afaict, the only possible windowing system you can get is something layered on top of X.

And it seems like developing a multi-window, multi-document application involves a definite learning curve, and it is also not clear what's at the end of the curve (whether, for example, you'll get lowest common denominator effects).
You don't need to know about X to create multi-window applications. In Qt, for example:

Code:
int main()
{
    QApplication app;
    QLabel *label = new QLabel("Test");
    QPushButton *button = new QPushButton("Click Me");
    label.show();
    button.show();
    app.exec();
    return 0;
}
Quote:
Originally Posted by John VV View Post
most programs DO NOT have the ability to build a QT and a GTK , or glut interface
???????
 
1 members found this post helpful.
  


Reply

Tags
application, development, document, gui


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Easiest to use linux distro for i486 applecheeks Linux - Newbie 17 03-12-2011 08:26 AM
Easiest Linux Distro? Yull29m Linux - Distributions 40 11-02-2008 06:33 AM
How to write invisible GUI program in Linux with hotkeys to come to foreground? DGMavn Programming 5 04-19-2008 08:09 AM
The Easiest Linux Distro For New User davethegenius Linux - Software 10 12-12-2004 08:46 AM
i need help with installin linux and which distro is the easiest to use lazyassassin8er Linux - Newbie 10 07-01-2004 06:06 AM


All times are GMT -5. The time now is 04:40 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration