In practice, for power users, Yacas is already a convenient system when accessible from the command line. The command line allows one to enter calculations rapidly when the user already knows the commands that are available, and knows what he wants to do and what is possible. This unfortunately includes all developers working on Yacas, so there is little incentive to create a user interface front end for Yacas.
Nevertheless, this chapter will try to specify a graphical user interface that services users other than power users.
The single big usability issue is currently that one already needs to know the system a bit before one can use it. The user is greeted with an intimidating flashing cursor, waiting for the user to enter a command. The user needs to know which commands are available, and when to use those commands. In short, the user, whether it is a new or experienced user, can be greatly helped with information that is more readily available.
The following sections describe the possible features a graphical front end could offer to facilitate these.
The user can then play around with some commands, and finally set up a file with code that will perform the calculation and run that file.
A graphical user interface offers the opportunity to allow the user to access relevant information more quickly than scanning the hundreds of pages of documentation (with the chance of getting lost).
Of course documentation in combination with examples that show how to do specific types of calculations go a long way when a user needs to find out how to do a specific calculation, or wants to know what is possible. However, a user interface might provide the required information more readily.
One solution might be to pop up a tip box with the possible ways the command can be completed.
When the user doesn't know which command to use in the first place, the system could provide a list of possible commands, perhaps categorized by type of operation. For each command a short blurb could be shown about what the routine does, when it is applicable, and perhaps some examples for the user to try out to get a handle on the command.
Arguably the last option is offered by the manual already.
The user can then use the example as a template for his own calculation. The user interface could even offer a facility to have a template for a calculation, where the user enters some final parameters for that specific calculation. With such a template, most of the work is already done, and all the user needs to do is change some parameters to reflect the calculation he wants to do.
A tree view of the source code, allowing a programmer to easily navigate through the code could be useful. As a project (and the code body) becomes larger and larger it becomes harder to find things in the scripts.