home · mobile · calendar · colloquia · 2009-2010 · 

Colloquium - Basman

The Fluid Project and the New State
University of Cambridge

The aim of the Fluid Project is to promote the development of accessible interfaces delivered over the web. However, since the broadest definition of "accessibility" comprises any kind of mismatch between the form of an interface and the capability of the user to achieve a particular task through it, this aim is unrestricted to the delivery of any particular form of excellence.

The web is notorious for exposing inadequacies of approach in software design. Delivered artifacts frequently are hard to maintain, and hard to repurpose, fail to be portable or to meet any reasonable breadth of requirements. Whilst the fundamentals of REST and the cross-domain function of markup were put in place with good forethought by the original architects of the Web, these values are typically turned upon by generations of developers who declare "the web is broken" and that they have a new, or else an old, methodology designed to fix it.

Fluid aims to create an architecture where fundamentals (markup, JavaScript, CSS, and plain data) can speak for themselves, and not to imprison them within object hierarchies or other inappropriate constraints. In order to provide a view to all stakeholders (user experience experts, markup mechanics, data curators, developers, and all the varieties of end user and user agents), ideas are drawn from some of the oldest (functional programming) and newest (IoC -- inversion of control) areas of software conception to weave an infrastructure where all of these viewpoints can be smoothly accommodated, free of painful shearing.

A direction more particular to Fluid centers on the primacy of data. One of the core values of software development over the past 20 years has been the importance of "encapsulating" data and state, the crucial lifeblood of an application, in a place where the primary stakeholders of a design cannot get at it. In contrast, Fluid aims to provide tools and idioms that facilitate working with designs where data is "on the surface", in units which are provisionally dubbed "state-bodies". These carry the idiom called REST at the HTTP level into the very heart of application design, creating a complete dehydration of the "controller" section of the traditional MVC triad.

At the practical and community level, Fluid is working with partners drawn from cultural institutions (museums, art galleries, libraries and others) as part of Fluid Engage to create both a self-contained software package as well as a decomposed tool set to enable the marvels of content which these institutions have stored up to be liberated for scholarly research, creation of new learning experiences and general public delight to the widest variety of users on the widest variety of devices. The choice of JavaScript at all layers of application design (in the client, within the middleware, and in the persistence layer) creates a unified and harmonious design that makes minimal demands on the mental space of developers and maintainers, and markup-centricism provides a direct route to delivering the same content tailored to a variety of agents (desktop browsers, in-museum kiosks, mobile devices) to users with a variety of accessibility concerns (sight impairment, cognitive impairment, motor impairment) with the least end-to-end effort and repetition of design and implementation work.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:13)