Structure and architecture

<< Click to Display Table of Contents >>

Navigation:  Introduction >

Structure and architecture

Previous pageReturn to chapter overviewNext page

Gekko can be thought of as a graphical user interface (GUI) combined with an engine for running command files and solving models. The GUI and the engine are fundamentally separate, even though they are still allowed to interact somewhat (for instance, the 'Run status' window tracks the live progress of active Gekko programs). But basically, the components are separate, and it would be possible to run Gekko command files without opening up the Gekko user interface at all (the so-called Gekcel sub-project is an example of that).

 

                               GUI                                Engine

                 clip0013

Even when Gekko is used interactively, it still feeds the engine with something akin to a command file. This "command file" is just particularly simple, since it consists of only one line (namely the command issued while pressing [Enter]). It is the intention to try to keep the GUI and the engine as separate as possible, and in general Gekko is command-driven rather than menu/window-driven (the latter kinds of programs perform tasks via pointing/clicking/selecting through menus and input windows).

 

By keeping the GUI relatively simple, and not mixing the GUI and the engine too much, it is the hope that a potential porting of Gekko to other environments such as Mac or Linux would be a feasible task if deemed beneficial. But this is not the only reason. Developing a rich GUI with well-designed menus and windows for the selection of options and issuing of commands is quite time-consuming. It is for instance hardly a big surprise that the GUI that comes with R in its default version is very basic to say the least (RStudio is not a formal part of R proper). The focus is on the language and the packages, and the user has to learn the R commands. On the positive side, a given result is very well-defined and reproducible because it is the result of some particular R commands and packages.

 

It is the intention to develop Gekko using the same philosophy, that is, with focus on solving the tasks via Gekko command files, rather than via interactive menus and windows (except in those cases where such menus/windows really add to the value of Gekko).