Is GUI programming a database research problem?

  • Authors:
  • Nita Goyal;Charles Hoch;Ravi Krishnamurthy;Brian Meckler;Michael Suckow

  • Affiliations:
  • HP Labs;HP Labs;HP Labs;HP Labs;HP Labs

  • Venue:
  • SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
  • Year:
  • 1996

Quantified Score

Hi-index 0.00

Visualization

Abstract

Programming nontrivial GUI applications is currently an arduous task. Just as the use of a declarative language simplified the programming of database applications, we ask whether we can do the same for GUI programming? Can we then import a large body of knowledge from database research? We answer these questions by describing our experience in building nontrivial GUI applications initially using C++ programming and subsequently using Logic++, a higher order Horn clause logic language on complex objects with object-oriented features. We abstract a GUI application as a set of event handlers. Each event handler can be conceptualized as a transition from the old screen/program state to a new screen/program state. We use a data centric view of the screen/program state (i.e., every entity on the screen corresponds to proxy datum in the program) and express each event handler as a query dependent update, albeit a complicated one. To express such complicated updates we use Logic++. The proxy data are expressed as derived views that are materialized on the screen. Therefore, the system must be active in maintaining these materialized views. Consequently, each event handler is conceptually an update followed by a fixpoint computation of the proxy data. Based on our experience in building the GUI system, we observe that many database techniques such as view maintenance, active DB, concurrency control, recovery, optimization as well as language concepts such as higher order logic are useful in the context of GUI programming.