Using Newspeak and Hopscotch for UI Composition

| by Abel Avram Follow 11 Followers on Apr 28, 2009. Estimated reading time: 2 minutes |

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 Stage

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.

Tell us what you think

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

Email me replies to any of my messages in this thread

IDE by Rodolfo Rothganger

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


Re: IDE by Werner Schuster

Well, the GUI framework _is_ called Brazil...

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

Email me replies to any of my messages in this thread

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

Email me replies to any of my messages in this thread

2 Discuss

Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you