|
From: | Rik |
Subject: | Re: UI/UX implementation for suggestions |
Date: | Fri, 27 Apr 2018 09:44:45 -0700 |
On 04/27/2018 07:33 AM,
address@hidden wrote:
Sudeepam, For better or worse, you have a project which is generating a lot of interest. First, I agree with the others that you should separate the implementation of a suggestion algorithm, from the interface to the user. Logically, they are different and it allows a "divide and conquer" approach to engineering. It also helps future proof the system. If the actual suggestion algorithm is implemented through a stable API then as new techniques come along we can improve the quality of the suggestions without ever disturbing the user. Second, I think you need to spend some time up front thinking about the user interface (UI) and user experience (UX). Unfortunately, this is an area where there will be a lot of opinions. Nevertheless, you eventually need to have user's like how the feature is presented, or they will disable it and it will eventually atrophy and be removed from Octave. Here are some questions to help motivate discussion. 1) Should keywords be included? The script I sent earlier was only for functions, but I personally would like a typo like "fndfunction" corrected to "endfunction" 2) Should user variables be included? If I define a variable "myvar" and then type "myver", what should happen? 3) Should internal functions ever be offered as suggestions? Internal functions start with the prefix "__". They are not meant to be called directly, so is there any reason to make them a suggestion? If I type "betaind", I should be reminded that I probably want "betainc", but I don't think I should be offered the choice "__betainc__" 4) What about deprecated functions? Should they ever be offered as a suggestion? You could just remove them from the suggestion list, or maybe you want to go a step further and recommend their replacement? 5) How are you going to offer alternatives and allow them to select an alternative? Remember that Octave has both a CLI and a GUI so you may need two solutions. --Rik |
[Prev in Thread] | Current Thread | [Next in Thread] |