Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Suppose, I have an idea and I have to put it into code quickly. And then I am presenting it to someone who is not so computer savvy. Which language should I use for quick and dirty coding? And which GUI toolkit should I use so that the the computer semi-literate find it easy to use (read shiny-eye-candy). It is a desktop application.

share|improve this question

closed as not constructive by gnat, Martin Wickman, Joris Timmermans, BЈовић, GlenH7 May 17 '13 at 13:20

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Please tell us more about your prototype. Do you want to prototype a web-application or a desktop application? – Falcon Aug 31 '11 at 8:21
It is a desktop application, more like a calculator program for a specific purpose. – KenSuvy Aug 31 '11 at 11:49
up vote 7 down vote accepted

You could use an application to draw mockups instead of writing code. Like Balsamiq Mockups or equivalent.

Using Mockups feels like drawing, but because it’s digital, you can tweak and rearrange easily. Teams can come up with a design and iterate over it in real-time in the course of a meeting.

share|improve this answer
+1. Usually a bad idea to make a prototype/mockup that looks like a finished application, especially with a non-technical client. Chances are they'll look at the demo and think that means the application is done. Show them a sketch instead so they understand it's NOT done but this is a general idea of what it will look like. – Wayne M Aug 31 '11 at 15:08
Pencil is a free and open source (GPL) GUI prototyping tool that has many nice features to help you design your prototype screens and interactions. It works as a Firefox addon but standalone application builds are also available on the downloads page. – John Tobler Aug 31 '11 at 16:46
None of these tools will ever beat pen and paper. – rightfold Sep 4 '11 at 23:40

Marco Dinacci's suggestion of using a tool to draw mockups is a good one.

However, if you do decide to implement a prototype, be sure to know if it's a throw-away prototype or an evolutionary prototype. If it's a throw-away, I would suggest using a language and toolkit that you won't be using to implement the final product. For example, if you are going to be implementing the final system in Java, string together some GUI screens using the Visual Studio GUI building tools and C# or VB.NET. This will prevent you from being able to use subpar prototype code in your final implementation. If it's evolutionary, spend the time to learn and develop the UI and evolve it with the entire application.

share|improve this answer

A language you feel comfortable in and the GUI toolkit you want to use in the end product.

That way you can reuse the GUI parts in your final version. The language doesnt really matter for the prototype - if you are comfortable in it, it'll be easier and faster to write.

share|improve this answer
That's only true for evolutionary prototyping. In a throwaway prototype, you want to ensure two things - (1) the customer doesn't associate a prototype that demonstrates a UI with a mostly finished product and (2) you can't reuse the (most likely poorly designed) code in your final product. – Thomas Owens Aug 31 '11 at 14:34
The answer is not wrong per se, but I disagree with it, vehemently. A client/non-programmer, seeing a GUI very similar to what the product should look like, will assume "it's almost complete. It just needs a few of those weird programmy thingies out back, but hey, it looks about 90% done, so it must be about 90% done". Hey presto, every meeting from then on will be "why is it not done yet? You were at 90% with the prototype, stop slacking off"; and there is no way in heaven or hell to convince such person that no, GUI != complete program. This is why Balsamiq looks like an ugly sketch. – Piskvor Aug 31 '11 at 14:36
@Piskvor Do you know where that originally came from? I remember reading it somewhere, and I think I own that book (or a book that cites that advice), but I can't remember what it's from. – Thomas Owens Aug 31 '11 at 14:38
@Thomas Owens: Painful experience? ;) I, too, have seen this stated somewhere in a much more concise form; alas, I can't seem to find the source, either. – Piskvor Aug 31 '11 at 14:42
@Piskvor: that's true. But if you use a themeable GUI toolkit, chances are that a "mockup" theme exists precisely to avoid these problems. See for Java Swing. – barjak Aug 31 '11 at 16:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.