|
|
![]() |
|
|||||
|
|||||||
|
|
Overview History | ||||||
|
History The success of HTML by the mid 1990's in allowing non-programmers to design user interfaces with a rich user experience was a beacon of light to the team that designed the original UIML language: Could we start with a clean sheet of paper, and design a new declarative language powerful enough to describe user interfaces (UIs) that historically were built only in imperative programming languages and toolkits (e.g., C with X-windows, C++ with MFC, Java with AWT/Swing)? Doing so would bridge the gap between HTML, which allows easy design of UIs with limited interaction, and imperative languages, which allow design of rich UIs but only in the hands of experienced programmers. Because good programmers often know little about Human Computer Interaction methodologies, bridging the gap is important. This question lead to the first goal of UIML: to design a declarative language that could describe any UI that an imperative language could describe. Three additional trends in 1997 influenced the UIML project. First, XML emerged as a standard representation for declarative languages. Second, the world was clearly on a trend to untether users from the desktop computer, allowing them to use a plethora of devices via growing wireless technologies. Therefore the second goal of UIML became one language to represent UIs for any device, using any language, any UI metaphor, and any operating system. Given the variety of new devices appearing on the market, UIML also had to be extensible to permit use with devices, languages, and UI metaphors not yet invented. The third trend influencing UIML was Cascading Style Sheets, which provided a mechanism to achieve a language description that was independent of the target device. The result was the creation in January 1998 of the UIML1 language by Harmonia. A rendering engine for AWT/Swing was built by Harmonia and later released with source code. When the language was retired in late 1999, that renderer had be downloaded by people in over 40 countries. Also a prototype renderer for WindowsCE was built. These were demonstrated at WWW8. As with most engineering endeavors, building the first version of something teaches you how the thing really should have been engineered. This was the case for UIML. Intensive work began in 1999 to design a second version of UIML, called UIML2. The work was done by Harmonia and in the Center for Human-Computer Interaction at Virginia Tech. The UIML2 specification was first released in Summer 1999, and can be freely implemented by anyone. The UIML2 specification has undergone changes in the course of implementing the language. Renderers for UIML2 have been or are being built by various organizations or people for Java AWT/Swing, HTML, WML, PalmOS, VoiceXML, the Linux QT widget set, and one embedded processor. © 1999-2000 UIML.org (all rights reserved) |