XML Windowing Toolkit in e4
JAXenter speaks with Yves Yang, the main contributor to XWT, XWT and e4 Workbench Designer, about the future of declarative UI in Eclipse and whether we can expect to see other products integrating with XWT anytime soon......
JAXenter: Hello Mr. Yang. You are one of the main developers of XWT, the project that brings declarative UI Design in XML to Eclipse. Why do we need declarative UIs, and what are the advantages of using XML for it?
Yves Yang: As you know, the UI development is a very important part of most projects. It directly affects the quality of the finished product. The development of UIs in programming languages, which represents the main stream technique in Eclipse, has several drawbacks:
* Deep knowledge of UI is a pre-requisite
* It is difficult to separate the UI's appearance and business logic
* Reusability is poor
* Dynamic UI support is limited
* It is difficult to integrate with development tools
Declarative UI is a new UI development paradigm, which is widely used in Web development. It is becoming the standard solution for desktop applications in Windows .Net 3.0+, and Web RIA in Silverlight. It provides an abstraction and a separation between UI concept and its implementation. XML was originally designed for software computing systems and data transformation, and the same advantages are available for UI.
The benefits of this solution are significant:
- Minimises the technical pre-requisites
- Provides a true reusable component system with a clean architecture
- Provides high customisation to define domain library
- Provides a flexible Data Presentation solution
- Offers rich integration with all existing Eclipse environments and frameworks
- Provides a good foundation for building all advanced tools: WYSIWYG Designer, MDA, etc.
JAXenter: Can you tell us a bit about the project history? When did the XWT project start? Who is behind the project, and who are the developers?
Yves Yang: We have been working on declarative UI since 2006, for a customer (CCR) who wishes to extend the Visual Editor of Eclipse for a proprietary XML UI solution. During this project, we discovered the customer had been looking for a standard solution in Java for a long time. Saab is our second customer who has worked on declarative UI, and asked us to develop a Visual Editor for XSWT.
We have found that this requirement exists and the advantages are significant, but XML UI is frequently missing from the Java world. This is the motivation behind our eFace project, which is XAML/WPF compatible for Java. XWT is in fact a clone of eFace for Eclipse.
The XWT project started in October 2008, when e4 expressed the need for a declarative UI specific for Eclipse. All developers of XWT are employees of Soyatec. XWT is a solo initiative of Soyatec and an auto-financed project.
Behind us, are industry customers who are interested in adopting this solution in their products, like CCR (reinsurance) Thales and Saab (Defense).
JAXenter: XWT is not XAML, right? What are the differences between XWT and XAML?
Yves Yang: Yes and no. In general, we always refer to XAML as “XAML for WPF.” So, “no,” as XWT doesn't have the same UI model as WPF.
But in actual fact, XAML itself is just a generic Markup Language. It is a common mechanism to dynamically map XML schema/element to a programming language model. Not only can it be used in UI, but also in other domains such as building system, workflow, communication, etc.
XWT uses the same mechanism to dynamically map XML with all Eclipse UI solutions: SWT/JFace, Data Binding, Eclipse Forms, Eclipse/e4 workbench, etc. It represents a subset of the XAML Specification.
JAXenter: Is the XWT framework open to integrate other formats, such as JSON or YAML?
Yves Yang: We haven’t investigated this integration yet. Basically, we are open for integrating all other formats like SVG. The integration with CSS has already been done in e4.
JAXenter: You are working on a special WYSIWYG editor for XWT; the XWT Designer, right? Will there be an integration of XWT with other editors like the Eclipse Visual Editor or the VEX (Visual Editor for XML) project?
Yves Yang: Yes, XWT Designer is our second important contribution to Eclipse. It was initially designed to be a part of the VE project for all XML-Base UI technologies. It will probably be moved to VE when e4 graduates.
JAXenter: In e4 there is another approach to declarative UIs: the Toolkit model. What are the differences between XWT and the Toolkit Model?
Yves Yang: XWT is designed to be a UI foundation unifying all the existing UI components of Eclipse. The primary rule is “Don’t re-invent the wheel;” it should rely on an industry proven solution. The second rule concerns the adoption by the Eclipse community. It is very important to provide a seamless transition for existing applications, and for SWT developers wanting to adopt this new technology.
The switch from a programming approach to a declarative approach is challenging; hence we should avoid adding anymore technical knowledge pre-requisites. Otherwise, we will forgo our main goal: to simplify the UI development. Regarding the second rule, declarative UI in XWT can co-exist with existing UI components developed directly in Java; these two work together naturally. As the programming APIs remain in SWT/JFace, SWT developers can easily adopt this solution. The integration of existing UI components in XWT is just as straightforward; in most cases, there is no need for additional development.
In XWT, the UI notation has been changed and widely extended. It isn't limited to static UI structure anymore, like most UI solutions. XWT deals directly with data presentation by including the latest technologies like Data Binding and CSS.
I’d like to add one important point here. Our conviction is to make Eclipse successful. All frameworks, languages and technologies should be working towards this goal. Our aim is to select, propose and contribute the best solutions to help Eclipse reach this goal. We do not wish to promote any one framework or language.
JAXenter: XWT is part of the e4 project. Why didn´t you join the Eclipse 3.6 Helios Release Train?
Yves Yang: As you know, any new Eclipse project starts in incubation to validate its usability and prove its benefits. e4 is an incubation project for the next generation of Eclipse. It has taken several initiatives to evaluate the latest technologies. Declarative UI is one of them. So, e4 is the best incubation project for XWT to promote a revolutionary UI development approach.
JAXenter: How do you see the e4 project in general? Why isn’t the Eclipse 3.x line sufficient any more?
Yves Yang: Eclipse was initially designed as an IDE. It has since evolved into a desktop application platform, known as RCP. The integration of Web applications is the next step for Eclipse. Each evolution requires some changes in the infrastructure in order to meet the new requirements. So, it is a natural evolution process.
e4 is a very interesting project. I’m sure it will be successful and Eclipse will gain more of a share in the market.
JAXenter: What are the next steps for XWT? Where are you now, and what is planned for the Eclipse 4.0 release in summer 2010?
Yves Yang: The next step is to integrate XWT with other solutions, specifically PMF (Presentation Modeling Framework) and EGF (Eclipse Generation Framework). The goal of these projects is to develop a UI Engineering System for enterprise applications.