Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Using Newspeak and Hopscotch for UI Composition

Using Newspeak and Hopscotch for UI Composition

This item in japanese

Hopscotch is an application framework and IDE for Newspeak, a new programming language and platform inspired by Smalltalk, Self and Beta. Hopscotch avoids a number of design limitations and shortcomings of traditional UIs and UI frameworks by favoring an interaction model and implementing a framework architecture which enable easy composition of interfaces.

Newspeak is a dynamic, class-based language with all names lately bound and having no global scope. One of the consequences is the lack of static state. All classes can be nested in each other, they are virtual and there is class hierarchy inheritance.

Hopscotch IDE runs on Brazil, a widget GUI library which is connected to the underlying operating system through a mapping layer which is bound dynamically either to a Squeak window or a native one, Mac or Windows. The purpose is to be able to take snapshots in order to store the complete state of a process (memory, stack, processor registries, etc.) and restart it on a different machine or a different operating system. For that to happen, it is necessary to have dynamic binding to the underlying windowing system because new window handles need to obtained when the snapshot is restarted.

Hopscotch is not just an IDE for Newspeak but rather a document-based GUI application framework, including a DSL for creating presentation pages from fragments. Atomic widgets are leaf fragments while aggregates correspond to compound fragments. A presentation is created using combinators like blank, filler, button:action:, row:, column: or deferred:. The latest is used for aggregates that are to be constructed in the background. An IDE tool written in Hopscotch would contain a number of such presentations using hyperlinks to navigate between them.

Usually, an IDE contains tools represented by a form having a certain number of widgets. Connecting such tools is not an easy task. Hopscotch has a different approach to creating user interfaces through composition and it is using the subject-presenter paradigm as explained by Vassili Bykov in this paper:  Hopscotch: Towards User Interface Composition.

Gilad Bracha, creator of Newspeak, shows in a presentation how several tools, a debugger, a unit tester and an object inspector, can be seamlessly connected in a tool-chain allowing a developer to jump from one tool to another providing more detail information with a single click.

An example of an application written in Newspeak and Hopscotch is a Twitter client written by Luis Diego Fallas. Hopscotch is open sourced under Apache License 2.0.

Rate this Article