Interface Description Languages

    I came across a curious overview of interface description languages ​​on the website . The review, however, is not the first freshness, but still quite relevant.

    1. User interfaces and web.

    What is a user interface? Logically, this is what we encounter every day in everyday life: cutlery, door handles, TV remote controls, etc. It so happened that in the world of information technology, the user interface is primarily associated with the GUI of the operating system. This is not surprising, because nowadays computer program control elements are as familiar to us as toggle switches of household electrical appliances. User interfaces are an integral part of any web application. Any website that we can access via the Internet is a user interface for accessing information. However, currently the task of programming user interfaces for the web is somewhat different than in the case of desktop programs. The modern operating system is based on the established standard user interface for all programs interacting with it. Accordingly, there is a certain model to which any interface solutions in programs for a given operating system obey. And if so, then creating a user interface comes down to using the functions of standard libraries. For example, it can be Win32 API functions or MFC objects for MS Windows programs. This approach has one remarkable property. If a user has learned to use at least one program, he will quickly get comfortable with any other for the same operating system. But this state of affairs cannot be attributed to web applications. Each new site is a new information and graphic design, as well as a new user interface. In this case, hardly applicable software libraries for any one specific user interface standard. And until now, most often in the development of sites, “manual” programming is used, which implies an off-system task of design and program reactions, for each element of the user interface and for each of its states. In the case of a large, full-featured solution, this approach means "the beginning of the end." But let's turn to existing and promising standards in the field of describing user interfaces. for each user interface element and for each of its states. In the case of a large, full-featured solution, this approach means "the beginning of the end." But let's turn to existing and promising standards in the field of describing user interfaces. for each user interface element and for each of its states. In the case of a large, full-featured solution, this approach means "the beginning of the end." But let's turn to existing and promising standards in the field of describing user interfaces.

    2. The language of user interfaces UIML.

    In the 90s, HTML gained immense popularity and, above all, due to its simplicity. In order to create a small site did not require special programming skills and special tools. Anyone could do this and almost everyone tried it. However, the progenitor of HTML SGML language implied the structuring of documents, and this is a much deeper model than the simple appearance of the data. The original idea of ​​an ordered structure of distributed data came back with XML and spawned an era of meta description of the abstract components of web resources. Against this background, the task of removing the UI markup from the application program code clearly loomed. In addition, the technology of cascading style sheets (CSS) appeared, which paved the way for creating customizable interface design. These circumstances were prerequisites for the creation of the UIML (User Interface Markup Language). The first UIML specification was introduced by Harmonia in January 1998. Specification 3.0 is now available on the project .

    What is UIML? In general terms, this is a concept in which the data path from the application to the physical data display device runs through abstract areas of logic, interface, and presentation. The interface area includes a description of the structure, styles, content, and behavior of elements. The task of the UIML language is to effectively implement the interface area.

    A deeper look reveals that UIML defines the following:
    • composite user interface elements;
    • how will the user interface elements be presented (visually / verbally / tactilely);
    • what kind of content will be used in the user interface (text, images, sounds, etc.);
    • what will be the reaction of user interface elements to user actions;
    • how the user interface events will be controlled (Java Swing classes or HTML tags);
    • what external API the user interface will interact with.

    UIML in my opinion is the most successful solution in terms of describing the logic of user interfaces from existing ones. Which is quite natural, given the fact that its initiator, Harmonia, specializes in user interfaces. However, unlike the other languages ​​discussed in this review, UIML is not supported by any browsers. To perform a UIML transformation, you should use one of the third-party UIML processors on the server side. However, at there is an impressive list of open source UIML processors.

    3. "There is no more data, there is only XUL."

    Currently, the XML User-Interface Language (XUL) is a very popular language for describing user interfaces. XUL is part of the cross-platform development environment known as XPFE. It is a fully functional markup language for application objects such as windows, labels, and buttons. The language complies with the W3C XML 1.0 standard. XUL applications can also use HTML, CSS, DOM, Java-script. And most importantly, XUL is trying to separate data presentation and application logic. This is done through the following abstract layers:
    • Content: Declaring windows and user interface elements associated with them.
    • Design (skin): the inclusion of CSS and images, determining the appearance of the application.
    • Localization (locale): the text displayed within the application is distributed in special local files, which ensures portability of the language.

    Theoretically, XUL provides cross-platform interfaces (at least at the moment it is available on Windows, Unix, Mac operating systems). However, the first vivid impression of the technology is immediately overshadowed by its tight binding to the core of Mozilla (Gecko).

    Incidentally, one curious case is associated with the name of the technology. It so happened that the abbreviation XUL comes from the name of the character Zuul from the movie "Ghostbusters." The key phrase was the phrase from the film “There is no more Dana, there is only Zuul” transformed into the slogan “No more data, there is only XUL”. Maybe that's why the XUL community is so diligently following the correct pronunciation of the language name.

    4. "XAML - Avalon language."

    It would be strange if Microsoft would ignore such a promising market niche. Now in the active development of XAML (eXtemsible Application Markup Language) is the interface language of the Windows Longhorn platform.

    The Longhorn application model includes an Application object. Its set of properties, methods and events allows you to combine web documents into a related application. The Application object controls the execution of the program and generates events for user code. Application documents are written in XAML. However, using XAML, the user interface is primarily described. The application logic is still controlled by procedural code (C #, VB, etc.). XAML can be used for both browser-based applications and local desktop applications.

    XAML includes four main categories of elements: panels, controls, elements associated with a document, and graphic shapes. 7 classes of panels are declared that set the principles for displaying elements nested in them. To set the position of elements relative to the borders of the parent panel, attributes are used in the manner of properties in object-oriented languages. This syntax is not very consistent with CSS recommendations, but will be familiar to desktop programmers.

    XAML-declared applications can include many pages. The PageViewer control allows you to paginate content and provides navigation on them. The ContextMenu element helps in creating application navigation menus. The procedural language code can be placed directly in the XAML file or assigned during the assembly of the project.

    There is currently no stable version of Longhorn, but Microsoft released Avalon CTP in November 2004, which allows XAML to be used on Windows XP and Windows Server 2003 platforms. The latest version of this package can be found at this address: ? familyid = C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74 & displaylang = en

    5. The language of rich MXML web applications.

    Macromedia has traditionally stood out in the market for web technology providers with an atypical approach. So, let’s say, the ubiquitous Flash currently used is so dramatically different from other information delivery technologies that it would somehow not be clever to even consider it in parallel with the same markup languages. However, in the era of XML and Macromedia, it did not stand aside from the fashion for declarative languages. The response of the company is indicated by Flex technology, which contains the XML-based MXML (Macromedia Flex Markup Language).

    Like the Mozilla working group and Microsoft, Flex developers sought to create a language that effectively combines two popular paradigms: a markup language and an object-oriented programming language. MXML allows you to visually describe the user interface structure by which it will be recreated by the client application. ActionScript performs the tasks of the controller (programmatic response to events in the environment) and provides the level of the application model.

    In addition to standard elements of data entry forms, Flex contains such relevant user interface components as Tree component (data structuring), DataGrid component (managing large data arrays), various navigation components (TabNavigator, ViewStack, Accordion, etc.).

    As I recall, one of the fundamental properties of XML is that you can assign your own tags. Flex effectively inherits this idea. We can create an application, place it in a separate file named MyInnerApp.mxml, after which the tag will become available in Flex applicationsreferring to the source code.

    Flex has tools for integrating applications. We can use the SOAP protocol and send their Flex applications instructions to the remote service, and then receive data from it. This allows you to use service oriented architecture (SOA) when developing FLEX applications.

    The specifics of Macromedia's interfaces are their interactivity, multimedia richness. Obviously, there is a rich library of special effects (event library) available to Flex application elements. It should be noted that the documentation for the Flex technology is made in the best traditions of Macromedia. Particularly impressive is the interactive technology tour at .

    On the client side, Flex applications are installed on browsers with the Flash Player 7 extension. This circumstance provides Flex applications with the broadest support on client devices. On the other hand, the necessary server support is implemented by the Flex Presentation Server component installed on the J2EE application server (Macromedia JRun, IBM Websphere, BEA WebLogic, Apache Tomcat, etc.). This is the very mechanism that is building a new generation of rich applications (RIAs - Rich Internet Applications). The initial price of Flex Presentation Server is $ 12 thousand.

    6. Opera batch of web applications.

    If browser developers fully adhered to the same standards, it would make life easier for web developers. By writing applications for one of the browsers, you could not worry that it would otherwise behave in another. It would seem that all the major players in this market have declared support for W3C standards, but it’s no secret that the same HTML code can be translated differently by IE, Netscape and Opera browsers, and CSS is not always the same for them. And about JavaScript and the DOM, I guess you should not even mention it. Browser developers, in an effort to attract more attention to their products, are technologically ahead of independent standardization organizations. As a result, the market has many comparable, but different technologies, which, among other things, creates fierce competition. When the Mozilla band marches the world under the XUL flags, Microsoft heralds the Longhorn / XAML era, Opera Sofware is simply forced to take a step back. At least in this light I see the company's work on the Web Applications 1.0 specification ( This specification does not carry any revolutionary innovations, but outlines many relevant (at least for the Opera browser) tasks:

    • management of pop-up menus and context menus;
    • servicing server events in the application without reloading the page. Remote call of procedures on the server side and manipulation of fragments of XML documents;
    • servicing the device independent events DOM;
    • user interface forms for displaying dynamic trees and lists;
    • predefined HTML editor;
    • API for Drag & Drop;
    • API for manipulating selections in the content;
    • Clipboard API

    This specification is still quite crude. Its revision of March 1, 2005 literally replete with red notes "perhaps it will be so, but it could be otherwise ...". The completion of its development will probably enrich the Opera browser with new features, but this is unlikely to be noticeable against the background of more significant competitor innovations.

    7. Results.

    The overall picture emerges as follows. Microsoft has focused on blurring the line between the browser and desktop applications. To do this, the Longhorn platform is created, which includes the XAML interface markup language. At the heart of Longhorn is the CLR system layer, which guarantees portability of applications for various devices. At the same time, the Mozilla working group does not encroach on the stereotypes of web developers, but, nevertheless, provided a XUL tool that allows you to write web applications that are similar in functionality to desktop ones. The obvious advantage of the Mozilla community at the moment is the availability of a number of already implemented applications available on Aside from the battle between the open source community and the Microsoft software empire, Macromedia is successfully promoting Flex technology. Macromedia solutions are traditionally distinguished by impressive multimedia and Flex is no exception to this rule. The popularity of Flash in presentation projects is hard to overestimate, and the technology duo MXML and ActionScript 2 open Macromedia's niche for full-featured business portals. However, the effect of high-quality Flex-applications still requires additional labor, so I dare to assume that this technology will not become the main tool of most web developers.

    But go down to the sinful earth. A typical technical task for a web project includes requirements for supporting the most popular browsers. Those. XAML and XUL technologies automatically disappear. You could choose Flex, because the Flash Player plugin integrates easily into various browsers. However, the cost of the Flex Presentation Server casts doubt on the cost-effectiveness of most web development companies. In addition, each of the claimed solutions implies a markup language for the user interface. However, in each case it is more of a browser / platform language than a concept of describing an interface. That is why I included in the review the UIML language, which is not tied to any platform, but clearly separates abstract applications. Thus, UIML defines the structure of the interface, its design, its content and its behavior. This is a model for describing interfaces, which is simply the most intuitive. And since UIML is apolitical in the global IT market, it can be used with equal ease to translate code to any browsers, to any devices. UIML does not destroy the familiar web development workflow, but complements it. The developer can still rely on previously selected technologies of HTML, XHTML, CSS, XSL, WML, etc. As for accessibility, we can only choose one of the open source UIML processors to our taste and install it on our server. but complements it. The developer can still rely on previously selected technologies of HTML, XHTML, CSS, XSL, WML, etc. As for accessibility, we can only choose one of the open source UIML processors to our taste and install it on our server. but complements it. The developer can still rely on previously selected technologies of HTML, XHTML, CSS, XSL, WML, etc. As for accessibility, we can only choose one of the open source UIML processors to our taste and install it on our server.

    The original article with examples, illustrations and links - .

    PS. I’ll add from myself that Web Applications is now better known as HTML 5 . And in WHATWG , besides Opera, there are also Mozilla and Apple. Accordingly, you can hope for support for HTML 5, at least three browsers - Firefox, Opera and Safari.

    Also popular now: