Open dhh1128 opened 9 years ago
One useful point of comparison would be to test the usability of existing languages in some of these dimensions, to understand what does and does not work.
Maybe I could test language constructs unfamiliar to a given programmer (e.g., give a ruby loop to someone who's never written ruby).
Consider building paper prototypes instead of polished stuff. Could apply to tutorial as well as IDE experience.
Use Nielsen's 10 rules of thumb:
http://www.nngroup.com/articles/ten-usability-heuristics/
I am particularly interested in recognition vs. recall and progressive disclosure/minimalism. In Nielsen's verbiage, it's about dialogs or windows, but think about this in terms of blocks of code: can we design for() loops or switch/handle/dispatch blocks or function decls such that little has to be specified in the normal case?
Aspects to evaluate:
See http://www.nngroup.com/articles/usability-101-introduction-to-usability/ for a reference on usability. 5 aspects: Learnability, Efficiency, Memorability, Errors, Satisfaction. Usefulness = usability + utility.
One way to make operators more usable is to allow users to insert questions (like an autocomplete prompt) or to use mnemonic names such as "IN" instead of "::".