InfoQ

News

Using Newspeak and Hopscotch for UI Composition

Posted by Abel Avram on Apr 28, 2009

Community
.NET,
Ruby,
Java
Topics
IDE ,
Language
Tags
Composite UI

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.

IDE by Rodolfo Rothganger Posted Apr 28, 2009 1:28 PM
Re: IDE by Werner Schuster Posted Apr 29, 2009 1:58 AM
  1. Back to top

    IDE

    Apr 28, 2009 1:28 PM by Rodolfo Rothganger

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

    :-)

  2. Back to top

    Re: IDE

    Apr 29, 2009 1:58 AM by Werner Schuster

    Well, the GUI framework _is_ called Brazil...

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.