views:

1360

answers:

17

I've been wanting to become proficient in a new language for a while. There are a few languages I want to learn but it's pretty important for me to be able to create a (Application) GUI. I work in C# so I have become very accustom to the GUI designer.

I would love to get better with C++ or Java (both of which I have a small amount of experience with). Other languages could be interesting too. I just really need to be able to make a GUI reasonably easily.

So what (non .net) language has a really good method of designing GUIs?

An extension to this question might be what are the most common GUI APIs/designers?

A: 

Netbeans IDE for Java as a sweet GUI designer.

pmlarocque
+2  A: 

May I recommend Flex? Flex Builder has a really nice GUI designer.
As for Java, both NetBeans and Eclipse IDEs are good choices. To design GUIs in Java, you can use SWT, AWT or Swing widget toolkits.

I heard that some people experienced problems with SWT projects running on NetBeans. However, NetBeans comes with a built-in GUI Builder for Swing , a very powerful widget toolkit. Of course, there's also a plug-in for Eclipse that allows you to build Swing GUIs, so it basically comes down to which IDE you prefer...

Sandman
Might I ask why my answer was voted down? Is it really that bad?
Sandman
Note: Swing is part of Java SE; it doesn't "come" with NetBeans. What NetBeans provides is a designer for Swing-based GUIs
Rob
:) Yup, that's what I actually meant... Thanks for pointing that out, though, I'll edit my post now.
Sandman
+8  A: 

Hi!

I would recommend you to look at Delphi. It's object pascal with a nice IDE and a nice community!

Take a look at www.codegear.com

CodeGear have also a C++ IDE, so you can have the bundle and put your hand dirty at Delphi and C++!

Hope his helps

vIceBerg

vIceBerg
+6  A: 

I agree with pmlarocque in that you should use NetBeans if using Java. It really makes GUI design easy.

As an aside, I also recommend pencil and paper. That really has helped me throughout the years, start making sketches of what you want it to be then replicate it in the IDE.

+3  A: 

NetBeans has a great Swing GUI Builder (formerly Project Matisse). This is for Java, I think it was started by Sun but is an open source project. Very similar to Eclipse, but I found an advantage with NetBeans due to this GUI builder.

Check it out at: http://www.netbeans.org/features/java/swing.html

marked
A: 

wxGlade is a GUI designer that can generate Python, C++, Perl, or Lisp and uses the wxWidgets library. And it's free.

runrig
A: 

Java Netbeans is good, and since java is fairly close to c# in syntax, it might make an easy learning experience

Fry
+4  A: 

I use both Visual Studio and Delphi, and the Delphi GUI editor is significantly better. It is worth a try. They make a free version.

JosephStyons
+4  A: 

For GUI in C++ you should look C++ Builder, you can get Turbo C++ Explorer for free

Marioh
+1  A: 

WPF/Silverlight: Expression Blend

Mark Allen
A: 

Not as big as it used to be, but Powerbuilder.

Zerofiz
PB is great, it's DataWindow capabilities are terrific! However, it's not cheap :)
Igor Drincic
No, it definitely isnt cheap at all. However, if you join ISUG for 100 bucks a year, you can get a free copy to play with!
Zerofiz
+1  A: 

Visual Dataflex has a decent GUI editor. It's a nice solution for building "database-agnostic" database applications.

Ola Eldøy
A: 

Well, I have two options: Objective-C on the Mac using Cocoa GUI framework, or Java for everything (Mac, Linux, MS-Windows) using the Swing API.

If you want to program in Objective-C targeting Mac OS X operating system for Apple Macintosh, iPhone, or iPod Touch - then the Interface Builder that comes bundled with the Xcode IDE (part of the Developer bundle) is really good.

You will need a Mac, of course, to be able to use it. If you have a Linux or Windows PC already, then you probably have a monitor, USB mouse, and USB keyboard. So you could get an Mac Mini for $599 and hook those up to it.

The Developer bundle is free. Just go to developer.apple.com and sign up for free Developer tools once you get your Mac.

If you are going to be a professional developer, then you might want to go there before you get your Macintosh and see if registering as a Pro and buying a Macintosh and stuff under that deal would net you more bang for your buck.

This Interface Builder of Apple's is pretty famous. It is what gave the NeXT computer is high reputation for being the way to create applications really fast. Wall Street financial firms, government agencies, and research types - plus a fair number of 3rd party commercial software developers - used it to create GUI applications very rapidly.

The name of Apple's Cocoa framework, by the way, used to be Next Step. When Apple bough NeXT from Steve Jobs, they renamed Next Step Cocoa. However, the classes still begin with NS as a little artifact of their heritage.

What people like about Interface Builder is that it has a very good layout manager and it lets you "wire" UI objects to other objects, making the latter "targets". Wiring them together this way creates a "connection".

So far this sounds very unexciting, I know. However, it gets exciting when you start doing it. You can design your actual runnable GUI in the designer and actually run it before you have written any code. Writing code lets you incrementally flesh out the user interface that have behavior more than UI stimulus-response behavior.

Anyway, the idea is that you can bang out a prototype extremely quickly, get feedback from someone based on this concrete GUI - and then fill in the details with Objective-C programming.

The most famous thing that was ever created with Next Step (Cocoa) is the World Wide Web (WWW). You may have heard of it. Well, the first web browser in the world was created by Tim Berniers-Lee at CERN in 1989 using Next Step, which had just come out the year before (1988).

He said he liked Next Step because it let him create his web browser very quickly. Even more impressively, his web browser not only allowed users to view web pages - his browsre also let users edit the web pages they viewed.

If you want to program in Java, NetBeans has a very nice Swing GUI designer.

It comes built into NetBeans. The GUI designer very easy to use and seems to have a full set of capabilities. My ownly dislike is that it puts commented sections in the code that you cannot edit. JBuilder did not put those annoying comments/restrictions in but JBuilder has pretty much faded from the scene these days.

Another downside of NetBeans is that it creates a .form file with the same name as the GUI class you are editing. Java code refactoring tools, other than NetBeans, are not going to know about this file. So, if you manually move the package the class is part of (or rename the class) - or use Eclipse or some other program to do it - you are going to have problems. You will need to be sure to use NetBeans to move/rename your class.

Eclipse had one in the form of an experimental plugin that was an okay start for a GUI designer called VE (Visual Editor) a number of years back. However, VE does not appear to have been updated in a couple of years.

I really like the true portability of Java programs. Java programs with GUIs are no exception.

I recommend adopting Java as your new language and using NetBeans as your first IDE, since you favor GUI program designs with a WYSIWYG editor.

Later, I suggest you also learn Eclipse. That way you will benefit from its more powerful code editing/refactoring capabilities.

You do not have to make an either-or choice between the two IDEs. With some caveats, like I have given - you can use both.

JohnnySoftware
+2  A: 

The cross-platform Qt GUI framework (which is mainly for C++) comes with Qt Designer.

CesarB
now we have Qt Creator, wich comes with SDK in one install package. http://qt.nokia.com
Alexander Malakhov
+1  A: 

Use Microsoft Expression Blend to layout your GUI.

WPF...

Before, I was using Qt Designer. First time I started using Expression Blend, I fell in love with it. So much easier to use than Qt Designer.

If your app requires high-performance, back-end it with some native-code language like C++.

If not, just stick with C# or Python.

Remember it's not just the tool that you use, but how it works as a whole

Too many combinations of different languages/vendors sometimes just makes you want to pull your hair our!

+2  A: 

Interface Builder and Qt Designer are by far the best GUI design tools I've ever used.

Michel
I second that. I tried a lot of stuff Visual Studio, different Java IDE's Delphi, Visual Basic, Dolphin Smalltalk etc And nothing beats Interface Builder. Qt Designer isn't comparable, but has the best way to deal with layout managers that I experienced. All Java IDEs I tried suck at that.
Adam Smith
actually..Netbeans GUI builder, I found, is much easier to use in terms of layout management than Qt Designer. Netbeans has the "snap-in" that automatically aligns GUI components. With Qt Designer, there's no such visual feedback. Give it a try, and judge for yourself.
ShaChris23