Abstract

KScript and KSWorld: a time-aware and mostly declarative language and interactive GUI framework

The fields of graphical widgets are reactive variables and the user can specify the relationships among them. By mod- ifying the specification incrementally and interactively, the user can customizable the behavioral and visual aspects of the graphical widgets on the fly. As the result, the KSWorld environment allows the exploratory manner of application building; the user to construct the appearance of an appli- cation interactively with direct manipulation, and attach the actions in terms of a dataflow dependency definitions to cus- tomize the behavioral aspect of the application.

Today’s computer software used as the personal comput- ing environment becomes so complex that no single person can understand the entire system. (A typical desktop OS and commonly used productivity application-suite are written in over 100 million lines of code.) Our group had early

In this paper, we focus on how we tackled the part of the end-user authoring environment. In our view, it is desirable for the end-users to be able to make the same kind of applications that they are using. Toward this goal, the end-user application is not only just something like an Office-like application suite, but also an HyperCard-like or Etoys-like authoring environment.

Viewpoints Research Institute

1. Introduction

We report a GUI framework called “KSWorld”, and a do- main specific language called “KScript” for describing the framework itself and applications on top of it. The goal of KSWorld and KScript is to try to reduce the accidental com- plexity in writing GUI framework and application building. Toward this goal, we took the declarative and time-aware dataflow-based execution model from Functional Reactive Programming (FRP), and integrated support for high degree of loose-coupling among graphical widgets and direct ma- nipulation on them into it.

Figure 1.

The Frank Document Editor.

We illustrate that how the system was used to build an elaborated universal document editor where the user can cre- ate various documents and dynamic applications. As each Box already provides a way to customize itself, the UI ele- ments used in the document editor were made in the same manner, and then refined in the editor itself.

experiences on the personal computing and determined that much of this complexity is “accidental”, but not “inherent”. In the STEPS project we’ve been working on, we decided to explore the way to reduce such accidental complexity in software [10], took the “entire personal computing environ- ment” as the domain of experiments.

We give a brief overview on the complexity of the system. In a simple metric (lines of code) to build the framework, the FRP evaluator, the document model and the document editor, and the implementation of KScript compiler took about 10,000 lines of code.

Yoshiki Ohshima Bert Freudenberg Aran Lunzer Ted Kaehler

yoshiki@vpri.org, bert@freudenberg.de, aran@acm.org, ted@vpri.org