XML Windowing Toolkit in e4

Jessica Thornsby

Interview with Yves Yang.

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

* 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
  • 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

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

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.

As for TM, it is an EMF based solution that supports JavaScript.
As far as I know, the features are by now limited to UI structure
and event handling, and I believe reusability and extensibility are
the main weaknesses of this solution. It still has a long way to
go, to become an industry solution.

JAXenter: In the Toolkit Model it is possible
to use JavaScript. Are there plans to integrate support for
JavaScript and other scripting languages in XWT?

Yves Yang: Definitively, XWT depends only on
XML, which is supported by all programming languages. Therefore, it
is programming language independent. It can support other
programming languages like JavaScript, Ruby, Python etc. For
example, in .Net, XAML supports VB, C#, and Silverlight supports
JavaScript and C#.

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

comments powered by Disqus