The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Building UI with UI designer tool vs. manual coding

I am writing my Java application with Eclipse SWT/JFace. I am deciding between manually coding of UI using SWT/JFace/opensource libraries  v.s using visual design tool such as windownbuilderpro. My application is not very UI intense, not drag-drop support, but has fair amount of interaction and include charting and such. In your opinion, it is better to use design tool or to do manually coding, in the long run? Do you know if any website that do some pro vs. con of the two approaches...Thanks
J.T Send private email
Friday, November 03, 2006
If you have to ask the question, use the designer tool.  You will get something that works faster - its design will suck but it will work.  Then you can learn from the user feedback and try to improve the design by hand coding it.  If that works out, you have Version 2.0 ready to go.

PS:  Even if you don't have to ask the question, its often a good idea to rapid prototype, test with real users, and then implement the Real Thing (TM) based upon the feedback.
Lionell K. Griffith Send private email
Friday, November 03, 2006
Use a tool. There's no merit badge for doing it the hard way.

If you're worried about tool lock-in or if the tool will go away, most of them generate code that's portable anyway so you can edit it manually if you really wanted/needed to.
Jason Moore Send private email
Friday, November 03, 2006
Use a tool. Laying out a GUI is a visual problem best solved when you can easily make changes to the distribution of components graphically. GUI invariably require multiple iterations to get right, why waste time tweaking code when you can quickly make a change with just a couple of mouse clicks.

Here at work we have a contingent of vi only programmers who eschew an IDE such as Netbeans or Eclipse. For them the only tools needed are a compiler and a text editor, hence they struggle mightily with GridBagLayout to build mediocre GUIs and howl in pain when a change is requested. I just fire up Netbeans and smile.
Friday, November 03, 2006
Although its only a small part of the art. Steve Yegge's blog entry below covers the issues very well.

In summary templating the interface then manipulating that interface: good. Using pure OOP to build the interface from the ground up: bad.

Friday, November 03, 2006
If your tool supports anchoring and docking then just use that.

If it doesn't, you'll have to write all the layout code in the resize event handler anyway
Friday, November 03, 2006
Tool. I remember the bad-ole-days of hand coding X/Motif UIs. No more for me, thank you.
A. Nonymous
Friday, November 03, 2006
Thank you for your feedbacks,
Also on this issue, we have a few people collaborating on this app, none is experienced UI designer/developer. Let say we have a spec with all the screens and interactions, the code generated by the tool(packages, file, layout manager, etc) need to wire up in sync with each other and with business domain code. Do you think it is better to have single one person using the tool to generate all screens and interactions, and the rest doing the wiring up, so that it is more in syn, or each person can work on a feature (let say a menu task) and generate Dialog, etc forllow the spec. What I am worrying this the control manager part because it neees to sync up all interaction...Thanks
J.T. Send private email
Friday, November 03, 2006
Software like Borland CaliberRM + StarTeam can work that way.  You can have a UI designer draw the screen and then create the skeleton code and put the requirements in the code, and StarTeam has integrated integrated Bug/Issue/Task management, IIRC>

- Nate.
Nate Send private email
Friday, November 03, 2006
In my opinion it would be better to have the UI put together by a single individual. Consistent behavior is one of the hallmarks of a good UI and there are probably some little nuances that your design does not cover (tab order, spacing of controls?). If the entire UI is done by the same person they are more likely to be consistent in their implementation than if several people each do their little portion of it. I am not suggesting that it could not work, I just think it might be easier to have it managed/implemented by one person.
A. Nonymous
Friday, November 03, 2006
UI tools are for pansies who don't want to understand how things work and are therefore helpless when the teeniest thing breaks.

Well, not really, but sometimes. Depends on the tool and the individual.
Greg Send private email
Friday, November 03, 2006
There is something to be said for having one person who has the vision of how the app is supposed to look. Though all of you may not have UI design backgrounds, find the one who is the best dressed or has the nicest apartment or the best taste in art and give the reigns to them.

Have them read Joel's UI Design for Programmers on this site or in print. Then, have them decide how the UI is going to work. Any time someone has a question about how the software should look, go to them. They should, of course, include others, but let them decide, ultimately, what it's all going to look like.

The main reason for this is that you'll end up with a consistent look and feel. It might not be good, but it'll be the same. The worst applications are the ones where every programmer designs their own features, and you end up with an application where sometimes you need to double click to select something, and sometimes you need to check it off and press "close".

One vision, that's the key.
Tim Sullivan Send private email
Saturday, November 04, 2006

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz