views:

224

answers:

11

There are many more technologies and tools available to build the front end for an application.

Which is the best technology/tool/platform available using which I can build a better GUI, by which I'll be able to build a nice looking as well as an efficient GUI?

Definition of "better" includes factors such as efficiency,user friendliness,better content control mechanism, navigation and many more.

A: 

Use the .NET framework in Visual Studio 2005/2008/2010 Studio. I haven't developed in any other environment, but I have been able to create nice looking apps in this IDE / Framework.

contactmatt
-1, the .NET Framework itself brings two GUI-Toolkits with it, WPF and WinForms. Next to that, with gtk# even gtk widgets can be used "natively" in .NET.
BeowulfOF
A: 

"Best" depends on what your evaluation function is.

For ease of development, and high quality UI, in a non-web based app it's hard to beat C#/VB or any other .NET language and environment for a windows-based app. Depending on the quality of the UI, MPF will give you greater flexibility and control, whereas windows form will make it easier to develop.

Larry Watanabe
He said his definition of best included efficiency. Surely that rules out .NET ;-)
Andrew Bainbridge
A: 

Having used Windows Presentation Foundation for a while now i would highly recommend it. There is a pretty big learning curve and, to be honest, MSFT should have included some controls (the datagrid being the biggest one) that were not included by default (but will be in .NET 4.0). Where WPF and XAML exceed is providing a foundation from which you can build just about anything. You can style ANY part of ANY control and build your own composite controls from scratch. A lot of thought went into binding and value converters and once you get used to the declarative nature of XAML you wont want to turn back. The company I work for has been using it for a couple of years now and the difference between the GUIs we used to develop (mainly winforms and asp.net) and what we develop now are night and day in terms of both look-and-feel and functionality. My two cents anyway...

Jason Irwin
+1  A: 

It depends.

What device will the GUI be used on, hand held, PC, Mac? What platform Windows, Linux, Web? What kind of application will it be, accounting, email client, web application? What audience will be using the application (a GUI aimed at a child may be different than one aimed at an adult)?

All of these things must be taken into account before even starting to formulate an answer to your question.

Burt
To be specific, a GUI for a PC and on Windows OS.
Ravi
A: 

You have several choices for developing a GUI. first, if cross platform is an issue consider using Java or Python. you can also use Adobe AIR and develop the gui in Flex.

If you direct the product to windows only users .NET WPF is the best solution, with a very rich set of control and examples. You can also use .NET with mono for cross platform compatibility, but WPF isn't currently supported.

Am
A: 

Have you considered Silverlight?

It can be used to create internet applications, but it can also be run out of browser to create desktop applications. It's has significant overlap with WPF though there are differences which might catch you out when swapping from one to the other.

Expression Blend 3 is a very good visual designer and the code it produces is quite efficient.

ChrisF
+5  A: 

I know this is a question about which GUI toolkit you should use, but your first technology for producing a user-friendly UI is pen and paper. Sketch out some mock-ups. Draw buttons and menus on construction paper, cut them out, and glue them together. Then try your mockups on about a half-dozen people. You'll quickly find out what makes a good UI.

It doesn't matter how good the UI looks or whether it uses the latest snazzy effects -- if your users can't figure out how to use it, they'll go elsewhere. You need to learn what works for your target audience before you write a single line of code.

Read Don't Make Me Think to learn how to make mock-ups and do user testing.

Barry Brown
Damn - this is the answer I should have written ;)
ChrisF
Barry, you've got it right way.
Ravi
http://www.balsamiq.com/products/mockups
Pascal Thivent
A: 

Desktop, Mobile, Windows, Linux, Database, OpenGL: Nokia Qt. Wiht Python - PyQt development process is shortest and easy. Application containing all required python & qt libraries and modules is around 30MB with Inno Setup installation is 8MB and will work on Windows 2000 and newer for Python 2.6.x, Python 2.5.x based application will run from Windows 95 to Windows 7.

A: 

I think all the attributes you list -- efficiency, user friendliness, etc -- are attributes of a good design rather than a good toolkit. Just about any toolkit can be used to meet those goals. I think the question might be different if you were asking about eye candy, fancy multi-media, etc. There are definitely some toolkits that do that better than others.

If you're interested in usability first (and it sounds like you are), focus on the design then pick whatever toolkit meets your current abilities and can handle your design. For example, if you require 3D images that might narrow your choices; likewise if you need to show videos, that will influence which toolkits you can choose from.

So, start with a good design. From that, create a list of requires for the toolkit -- rich editing controls, video, 3D, etc. And then look for a toolkit that provides what you need.

The best toolkit in the world won't make up for poor design.

Bryan Oakley
A: 

Personally after having used Win32, Forms and WPF then going to Mac/iPhone GUI development, I very much prefer the flexibility and high quality of visuals in the Mac/iPhone GUI.

One of the most useful examples is the fact that in NSTable/UITable controls (ListViews or similar in Windows), every cell is a fully customisable View (a Control in Windows).

Where in a ListView you have very little customisation for each cell/item in the view since you only provide details, not an actual control, an NSTable/UITable asks you for a table cell which you can add anything to, such as buttons, switches and image views.

Mac OS GUI development to me is a LOT more flexible and more consistently flexible in that regard. Everything is a View so I can my own contents to anything.

Nick Bedford
A: 

If' you're tracking an IP address, you'll definitely want to create your GUI Interface in Visual Basic.

Jeff Kelley
Whats the reason behind that?
Ravi
It's a joke: http://www.youtube.com/watch?v=hkDD03yeLnU
Jeff Kelley
It's a joke. http://www.youtube.com/watch?v=hkDD03yeLnU
George Stocker
Holy cow that was freaky. We both posted it at nearly the same time (I had this window open for the last two minutes, forgot to hit 'add comment').
George Stocker