[racket] DrRacket needs work

From: Jukka Tuominen (jukka.tuominen at finndesign.fi)
Date: Mon Nov 14 15:09:10 EST 2011

Hi all,

I wish I had more time for this thread topic at the moment since it's extremely interesting to me because usability and visual GUI design is my daily work and passion, but also because I'd also like to improve the Racket IDE and hopefully even see a GUI builder integrated into it eventually. I'm sure to come back to this later on, but for now, I hope I can contribute at least a little.

The easier part. To get rid of some of the 80's/shareware/non-native looks a few generic things could be improved without being a professional graphics designer.
- Get rid of all the hard-coded colour and font definitions on the GUI framework, and use OS-specific mappings instead. To verify them afterwards, test the results on different OS'es, different themes on each, with different system font sizes applied.
- Get rid of all the self-made widgets (GUI controls), and use native OS controls instead (GTK mappings to native OS?).
- More professional help is needed for refined look and feel on layout details, illustrations, and icon design (metaphors and looks). Also, the font and colour definitions on the definitions/interaction panes could use a professional touch for more stylistic and legible defaults (atleast to get rid of the odd default font size and 16 colour palette). 

The more difficult part. To improve the usability, more precise information is needed, and especially, prioritising of it to be able to then apply it to actual GUI design. Eventhough there is a lot of expertise, experience, opinions, passion, and desires in the air, it all seem unstructured and partly contradicting, and therefore difficult to turn into concrete and reasoned GUI design. So, a perfectly normal starting point :)
Here are some issues usually needed for a good concept design brief, useful also to later validate the concept proposals (the product validity and usefulness for its knowingly selected target groups, rather than verifying the correctness of functionality, for example. Verification comes later). 

Who are the precise, targetted product stakeholders? Usually usability is considered as something concerning end users only. Overly generic target groups aren't very useful either. I'm starting with an educated guess. Feel free to add and correct as necessary, and arrange to prioritised order (the most important one on top)
- People new to programming
- CS teachers
- Professional, semi-professional Scheme/Racket users
- People with more or less experience with other programming languages evaluating Racket as something potentially useful/interesting to them.
- Self-learners

The most important, frequent, or otherwise essential use cases _for_each_ target group, prioritised. 

More base information and guidelines for the concept design. A FAQ for each group could be useful; what issues are raised most often? Other requirements, needs, and desires for each group?. Examples where the use cases are best handled or ideas for good solutions. Anything else relevant?

Profiling against other similar products? How would you like Racket to be differentiated from others, what should it be known of? Guessing again...
- Easily approachable for people new to programming, or Scheme.
- Easily teachable
- The language for creating languages
- Powerful and practical beyond others

All of this, could then be used to determine what is present foremost in the GUI and how, and what is buried deeper for less frequent or more advanced use. Where single, well-thought solution is better, where user-specific flexibility is required?Actual use cases can be tested against the GUI proposals to choose the most fit approach and optimise details even further (e.g. less phases for the most frequent tasks, shortcuts added where needed to support advanced use, and so on).

I hope you find this useful.

br, jukka

|  J U K K A   T U O M I N E N
|  m a n a g i n g   d i r e c t o r  M. A.
|  Finndesign  Kauppiaankatu 13, FI-00160 Helsinki, Finland
|  mobile +358 50 5666290 
|  jukka.tuominen at finndesign.fi  www.finndesign.fi 

Posted on the users mailing list.