📜 ⬆️ ⬇️

Interface Description Languages

I came across a curious review of interface description languages ​​on the site www.raleigh.ru . 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 face every day in everyday life: cutlery, door handles, TV remote controls, etc. It turned out 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 the controls of computer programs are as familiar to us as the toggle switches of household appliances. User interfaces are an integral part of any web application. Any site that we can access via the Internet is a user interface for accessing information. However, at present, 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 well-established standard of the user interface for all programs interacting with it. Accordingly, there is a certain model, which obey any interface solutions in the programs for this operating system. And if so, then creating a user interface comes down to using the functions of standard libraries. For example, these may be Win32 API functions or MFC objects for MS Windows programs. This approach has one remarkable property. If the user has learned to use at least one program, he will quickly become familiar 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, software libraries are hardly applicable to any one specific user interface standard. And still most often, when developing websites, “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 user interface descriptions.
')
2. 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 skills in programming and special tools. Anyone could do it and almost everyone tried. However, the progenitor of HTML SGML language meant the structuring of documents, and this is a much deeper model than a simple design of the appearance of the data. The original idea of ​​an ordered structure of distributed data has returned with XML and spawned an era of meta descriptions of the abstract components of web resources. Against this background, the task of making the UI markup from the application code was clearly looming. In addition, cascading style sheet (CSS) technology has emerged, which has opened the way to creating customizable interface design for a particular device. These circumstances were prerequisites for the creation of the UIML (User Interface Markup Language) language. The first specification of UIML was introduced by Harmonia in January 1998. Now specification 3.0 is available on the project website www.uiml.org .

What is UIML? In general terms, this is a concept in which the data path from an application to a 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 the elements. The task of the UIML language is to efficiently implement the interface area.

Looking deeper, it turns out that the UIML defines the following:

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

3. "No more data, only XUL."

Currently, the XUL (XML User-interface Language) user interface description language is very popular. XUL is part of the cross-platform interface development environment known as XPFE. It is a full featured markup language, on application objects, such as windows, tags, and buttons. The language conforms to the W3C XML 1.0 standard. Applications written in XUL can also use HTML, CSS, DOM, Java script. And most importantly, XUL tries to separate the presentation of the data and the logic of the applications. This is done through the following abstract layers:

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

By the way, one funny case is connected 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 turned out to be from the film “No More Dana, Only Zuul” that transformed into the slogan “No More Data, Only XUL”. Maybe that's why the XUL community so diligently monitors the correctness of the pronunciation of the name of the language.

4. "XAML - avalonian language."

It would be strange if such a promising market niche was ignored by Microsoft. Now in the active development of XAML (eXtemsible Application Markup Language) - 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, with the help of XAML, the user interface is described first of all. The application logic is still controlled by a procedural code (C #, VB, etc.). XAML can be used for browser-based applications as well as for local desktop applications.

XAML includes four main categories of elements: panels, controls, elements associated with a document, and graphic shapes. Declared 7 classes of panels that define the principles of displaying the 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 doesn’t really fit in with the CSS recommendations, but will be familiar to programmers of desktop applications.

Applications advertised in XAML can include multiple pages. The PageViewer control allows you to paginate content and provide navigation through it. The ContextMenu element helps in creating the navigation menus of the application. The procedural language code can be placed directly in the XAML file or assigned when building the project.

Currently there is no stable version of Longhorn, but Microsoft released Avalon CTP in November 2004, which allows using XAML on Windows XP and Windows Server 2003 platforms. The latest version of this package can be found at this address: www.microsoft.com/downloads/details.aspx ? familyid = C8F904E1-B4CA-402B-ACCF-AAA2BD60DA74 & displaylang = en

5. A language rich web application MXML.

Macromedia has traditionally stood out in the market for web technology providers with an atypical approach. So let's say, the now widely used Flash is so strikingly different from other information delivery technologies that it would somehow not be cleverly even to consider it in parallel with the same markup languages. However, in the era of XML and Macromedia did not stay aside from the fashion for declarative languages. The company's response was marked by Flex technology containing an XML-based MXML (Macromedia Flex Markup Language) 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 structure of the user interface by which it will be recreated by the client application. ActionScript performs controller tasks (programmatic response to events in the environment) and provides an application model level.

Flex, in addition to standard data entry form elements, contains such up-to-date user interface components as the Tree component (data structuring), the DataGrid component (managing large data arrays), various navigation components (TabNavigator, ViewStack, Accordion, etc.).

As I recall, one of the fundamental properties of XML is the possible assignment of your own tags. Flex effectively inherits this idea. We can create an application, put it in a separate file called MyInnerApp.mxml, and then in Flex applications the <MyInnerApp /> tag, which refers to the source code, becomes available.

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

Specificity of Macromedia interfaces in their interactivity, multimedia saturation. Obviously, there is a rich library of special effects (event library) available to Flex application elements. It should be noted that the documentation for Flex technology is made in the best traditions of Macromedia. Particularly impressive is the interactive tour of www.macromedia.com/software/flex/productinfo/brz_overview technology.

On the client side, Flex applications are installed on browsers that have the Flash Player 7 extension. This circumstance provides Flex applications with the most extensive 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 mechanism that builds a new generation of rich applications (RIAs - Rich Internet Applications). The initial price of Flex Presentation Server is 12 thousand dollars.

6. Opera party web applications.

If browser developers fully adhered to the same standards, this would make life easier for web developers. Having written applications for one of the browsers, it was possible not to worry that it would otherwise behave in another. It would seem that the support of the W3C standards is stated by all major players in this market, but it’s not a secret to anyone that the same HTML code can be broadcast differently by IE, Netscape and Opera browsers, and CSS is not always the same. And about JavaScript and DOM, I think 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, there are many comparable, but different technologies on the market, which, among other things, creates fierce competition. When the Mozilla group marches around the world under the XUL flags, Microsoft heralds the era of Longhorn / XAML, Opera Sofware is simply forced to take some kind of reciprocal step. At least, it is in this light that I see the company's work on the Web Applications 1.0 specification (http://www.whatwg.org/specs/web-apps/current-work/). This specification does not carry any revolutionary innovations, but it describes many actual (at least for the Opera browser) tasks:


This specification is still quite raw. Its edition dated March 1, 2005 is literally replete with red marks “perhaps it will be so, but it may be otherwise ...”. Completing its development is likely to enrich Opera's browser with new features, but this is unlikely to be noticeable against the background of more significant innovations from competitors.

7. Results.

The overall picture emerges as follows. Microsoft has focused on blurring the line between the browser and desktop applications. To do this, a Longhorn platform is created, including the XAML interface markup language. Longhorn is based on the CLR system layer, which guarantees portability of applications for various devices. At the same time, the Mozilla workgroup does not infringe on stereotypes of web developers, but, nevertheless, provided a XUL tool that allows writing web applications that are close in functionality to desktop ones. The obvious advantage of the Mozilla community at the moment is the presence of a number of already implemented applications presented on the mozdev.org website. Aside from the scramble of the open source community and the Microsoft software empire, Macromedia is successfully promoting Flex technology. Solutions from Macromedia are traditionally distinguished by impressive multimedia and Flex is no exception to this rule. The popularity of Flash in presentational projects is hard to overestimate, and the technological duet MXML and ActionScript 2 opens up the niche of full-featured business portals for Macromedia. However, the effect of high-quality Flex-based applications still requires additional labor costs, so I dare to assume that this technology will not become the main tool of most web developers.

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

The original article with examples, illustrations and links - www.raleigh.ru/a/pub/2005/ui-langs.html .

Ps. From myself I will add that Web Applications is now better known under the name HTML 5 . And in the WHATWG , in addition to Opera, Mozilla and Apple are also composed . Accordingly, we can hope for support for HTML 5, at least three browsers - Firefox, Opera and Safari.

Source: https://habr.com/ru/post/12778/


All Articles