BT

InfoQ Homepage News Using Newspeak and Hopscotch for UI Composition

Using Newspeak and Hopscotch for UI Composition

Bookmarks

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

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • IDE

    by Rodolfo Rothganger /

  • Your message is awaiting moderation. Thank you for participating in the discussion.

    For a Newspeak language, a better name for the IDE would be Big Brother.

    :-)

  • Re: IDE

    by Werner Schuster /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Well, the GUI framework _is_ called Brazil...

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.