PDA

View Full Version : Best programming language for application development?


movilogo
3rd February 2009, 10:28 AM
Currently have Python & C++ in my Fedora.

But if I want to do graphical interface design (like Visual Basic) what do I need?

:

sonoran
3rd February 2009, 12:21 PM
Hi movilogo-

Check out Glade - not a language but a gui design tool that can be
used with numerous languages.

C is the standard for unix/linux and gives you access to the most
libraries you might want to hook up to, and the most code to
study and steal...er, learn from.

Python is great for rapid prototyping.

And for something completely different, there is e17, the
Enlightenment Desktop Shell, where program code and user
interface are separated.

So many toys, so little time! Have fun.

sleeve
3rd February 2009, 05:08 PM

I'm with sonoran on Glade... great gui design tool.

You may also want to check out the QT Toolkit.
Nice for cross platform compatibility.

Datu Puti
3rd February 2009, 06:04 PM
glade is your friend - you can use it to create interfaces for your python and C / C++ apps, without really having to learn anything new! I can't imagine anything much easier than using glade with python. so don't hesitate to "yum install glade"!

however, if you like c++, you may also feel somewhat comfortable with java, and you can do some great stuff with that, especially considering the cross-platform benefits. you might want to look into the NetBeans IDE for that - i use it for making javaME apps for my cell phone, and it's a piece of cake. NetBeans is a pretty huge and professional IDE. it actually feels weird not paying for it, haha. i haven't done this, but i have read that it can be used for your c++, php, and other languages as well.

still, you should play with glade first. that's the best answer i can think of for your question. you'll be glad you did.

-dan

wathek
3rd February 2009, 06:06 PM
I'm using Qt and C++ and really Qt is cool as a framework I suggest you to try it you'll love

Linux Archive (http://www.linux-archive.org/)

movilogo
3rd February 2009, 07:41 PM
How to I actually use Qt with C++ in Fedora?

Visited Qt site, but not clear how exactly I install it over Fedora 10.

:confused:

sleeve
3rd February 2009, 07:49 PM
you can get it directly from the Fedora repositories.

try "yum search qt"

I think the product you want to install is called qt-designer.
So it should be something like "yum install qt3-designer"

RupertPupkin
3rd February 2009, 08:46 PM
For something even more different, try GNUstep (http://www.gnustep.org/), which is a development environment based on the Objective-C language and the Cocoa API (used in OS X, formerly the old OpenStep API). One nice thing about GNUstep is that by being (mostly) source-code compatible with OS X Cocoa apps, you can compile OS X apps to run in Linux. There is a nice GUI app builder for GNUstep called Gorm (http://www.gnustep.org/experience/Gorm.html), which can be used with the ProjectCenter (http://www.gnustep.org/experience/ProjectCenter.html) IDE to create GNUstep apps fairly quickly. Plus, Objective-C is such a cool language. :)

bee
3rd February 2009, 08:55 PM
Let's think about programming languages and their results...... :rolleyes: :rolleyes: :rolleyes:
Linux is written in C and beesu as well!!! :D :rolleyes: :rolleyes:
Linux is written also in assembly!!! :cool:
Games are written in C++, and any mission critical project is written in C and/or C++. :)
Firefox, OpenOffice, GNOME, KDE (Qt), GNU coreutils, GIMP, Quake, Apache, etc... are in C (and/)or in C++. Powerful software is never written in JAVA!!!!!! :p :p :p :D
JAVA applications are bloatwares by default!! :p :p :rolleyes:
Think about big projects in Java... netbeans, eclipse, azureus/vuze... :rolleyes: 100MB needed for each of them just to show the main form!!!!!!!! :D :D :D :cool:

bye!!!!!!!!:):):)

Firewing1
3rd February 2009, 09:04 PM
The "best" language and toolkit all depends on what your needs are... I've tried both Qt and GTK+ (with Glade) as well as Python and C++, and I've found that Qt on the whole is better than GTK+ as I found it to be cleaner, faster, more portable and easily customizable (styling with CSS or subclassing widgets is a breeze). On the downside though, Qt has a steeper learning curve than GTK+. Overall though, unless portability is number 1 on your list, GTK+ will do just fine too. If you use PyGTK & Glade you can have a solid GUI ready in no time and focus your efforts on coding the callbacks in Python.

For language selection, the main criteria there is speed. If your program is going to be processing lots and lots of data, go with C/C++ since it's so fast. Otherwise, stick to Python. It may be because I'm not as well versed in C++ as I am in Python, but coding is always much faster for me in Python.

bryancole
3rd February 2009, 09:07 PM
For GUIs, python rules, be it wxPython, PyQt or PyGTK.

Beware of "visual" GUI-designers (glade, wxGlade, QtDesigner etc); laying out your GUI in a designer is great when you start a project, but as the applications grows, the need to use the designer program for even the smallest change to the UI becomes a burden. I much prefer constructing the UI in (python) code, with dynamic layout.

sej7278
3rd February 2009, 10:13 PM
For GUIs, python rules, be it wxPython, PyQt or PyGTK.

Beware of "visual" GUI-designers (glade, wxGlade, QtDesigner etc); laying out your GUI in a designer is great when you start a project, but as the applications grows, the need to use the designer program for even the smallest change to the UI becomes a burden. I much prefer constructing the UI in (python) code, with dynamic layout.

wow that's almost word-for-word what i was going to say!

RupertPupkin
4th February 2009, 01:14 AM
For GUIs, I'd say that Tcl/Tk is better than Python (http://groups.google.com/group/comp.lang.tcl/msg/72a050e966750b18).

ihavenoname
14th February 2009, 12:08 AM
I'm waiting for someone to come in and suggest using Lisp :p. Just type the following and your application will dynamically create itself at run time and then re-make itself as the usage cases demand:

(((((()))))(())))((defun makedynapp (doitall) (* doitall 1))))

If things don't work the way you intend then keep in mind that Lisp knows what's better for you, it's not a bug it's a feature :P.

Just kidding Lisp is actually a cool language, but not great for Desktop application.

I'm going to go ahead and say Qt is well worth your time. I faced a similar question a little over a year ago, and after extensive research and learning both Qt and Gtkmm I can honestly say that I think Qt is far and away the more powerful toolkit. By more powerful I mean to say it's less likely to force you to do a lot of tedious low level work.
C++ is probably the best choice of language because of two defining features:
1. Speed.
2. Object Oriented
If there was a 3rd category it would be that Qt uses c++ (although there are bindings to python etc.).

If you stick with gtk, then I would look into vala or C#/mono. Google will offer you a wealth of information on these two languages and how they work in linux.