Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipse-incubator-e4-dev] E4 probably too late?

Hi Ed,

Thanks for response, it looks like I'm early with "too late message" :) - it's definitly looks like newcomer talking about buzzwords. Unfortunately, I'm not a teflon programmer :(. Let me please give some backgrounds resulted in the mail (now I did read modelled UI thread, and understand where you're in terms of UI thoughts):

My experience relevant to Eclipse UI and Scripting:

Contrary to thoughts of many Eclipsers (based on Dash) ability to develop Eclipse-based products completely in sciprting languages exists since 3.1 - for few years, since IExecutableExtensionFactory was introduced.

Technique is simple like this:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
   <extension
         point="org.eclipse.ui.views">
      <category
            id="category.helloworld"
            name="Scripting Demo"/>
      <view
            category="category.helloworld"
            class="org.eclipse.scripting.javascript.JavaScriptExtension:/scripts/helloworld.js"
            id="view.helloworld"
            name="HelloWorld View"/>
   </extension>
</plugin>

JavaScriptExtension (implements IExecutableExtensionFactory) retrieves script from location specified in extension data, execute script and returns script result (of course it shall be of type required by corresponding extension point). Of course technically you can implement any Java interface and derive from Java class using any JVM scripting language, so since Eclipse 3.1 there are no obstacles to develop plugins without any line of Java code ("biggest" problem is classloading issues :).

In 2005 we did a project called RCPML (http://kb.xored.com/display/rcpml/Home), which is about to develop Eclipse-based application completely in scripting languages. Besides scripting part it have declaraive UI (modeling) part, CSS support, etc.

>From end-user perspective UI definition in declarative language looks like:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>
<plugin>
   <extension
         point="org.eclipse.ui.views">
      <category
            id="category.helloworld"
            name="Scripting Demo"/>
      <view
            category="category.helloworld"
            class="org.rcpml.core.RCPMLExtension:/views/helloworld.xml"
            id="view.helloworld"
            name="HelloWorld View"/>
   </extension>
</plugin>

And View code itself:

<?xml version="1.0"?>
<ui:view xmlns="http://rcpml.org/swt"; xmlns:ui="http://rcpml.org/ui";>
	<label>Hello World</label>
</ui:view>

...where xmlns="http://rcpml.org/swt"; is a package (in terms of EMF) with components reflecting SWT world, xmlns:ui="http://rcpml.org/ui"; package reflect Workbench classes, etc.

Three years ago we did used DOM instead of EMF (right now I'd vote for EMF models of course), however the project works like discussion in the modeling UI thread:

We instantiate DOM from the file specified. Package-aware "renderers" maps DOM objects to corresponding problem-domain objects (SWT, etc), install appropriate listeners and translate SWT UI events to DOM events, listening for DOM changes and update views (in terms of MVC), as well as scripts (JavaScript) are triggered by DOM events and executed against DOM instances. 

Besides this we are supporting CSS both for layouting and components styling: please look at "classical" Eclipse forms tutorial "ported" to RCPML: http://kb.xored.com/display/rcpml/RCPML+Forms+Tutorial

CSS for layouting example:

<ui:view xmlns="http://rcpml.org/forms"; xmlns:ui="http://rcpml.org/ui"; xmlns:core="http://rcpml.org/core";>

	<core:style type="text/css">
		form#myform {rcpml-layout:grid;rcpml-layout-columns:2;}
		form#myform > hyperlink {rcpml-colspan:2}
		form#myform > text {rcpml-fill:horizontal;rcpml-grab:horizontal;}
		form#myform > checkbox { rcpml-colspan:2; }
	</core:style>
	
	<form id="myform" title="This is RCPML Form">
		<hyperlink>Click here</hyperlink>		
		<label onclick="javascript: this.color=#ff0000">Text field label:</label>
		<text/>
		<checkbox title="An example of a checkbox in a form"/>
	</form>		
</ui:view>

EMF for sure would be much better choice comapring to DOM, however many things shall be worked out. W3C have everything necessarily for years: DOM event model, JavaScript bindings, CSS formalized, etc...

This RCPML stuff exists for years. Initially done as a proof-of-concept, it was used in several products including commerical ones having thousands of users. For example Zend Studio for Eclipse uses RCPML-based properties view and dialogs. If interested you may see RCPML-based UI in action at second part of this screencast: http://media.xored.com/ecldemo/ecldemo.html, so I'm a little bit aware of the problems and ideas related to modeled UI and scripting.

For me, everything is about modeling too. If intersted please take a look at my ECL proposal (which is about processing models inside eclipse with scripting languages): http://kb.xored.com/display/ECL/Home ... but let's back to JavaFX/WPF

JavaFX and WPF are more about high-performance UI models transformations and rendering. JavaFX Script is a cool language for dynamic UI model manipulations. JavaFX render to DirectX/OpenGL. WPF render to DirectX. Past time Sun improving Java Runtime to support JavaFX well, Microsoft adding new features to DirectX like glyphs caching to support WPF. JavaFX and WPF UI models scales down to rendering primitives such as lines, brushes, and fills. Everything they need is a Canvas. Modern UI layer shall be able to render UI models to canvas, and SWT looks redundant stuff. Moreover Swing support added to JavaFX to support legacy technology. WinForms supported in WPF as legacy technology. And their performance is just impressive. (Intersing that rendering to canvas will break all the borders between SWT and GEF).

I'm very happy to see modelled UI discussion at E4 list, and I'm agree with most points there. But did anyone asked a simple question: "how E4 will render button, or text-edit control"? And corresponding question: "what is a physical button from E4 standpoint". If E4 will physically treat button as underlying OS widget (e.g. GTK) - folks, I'll start to choose JavaFX for my non-tooling tasks (and who knows how many people will switch to Netbeans later). 

To get better understanding on what WPF can do I'm attaching two screenshots I just did (sorry I'm very new to their tools, but what I saw impressive already):

* Microsoft Expression: design your UI
* Run this UI on Vista out-of-the-box

Hope these pictures can give some food for thoughts. In the meantime I think I shall prepare more detailed letter about what is "new UI" and some important requirements as I see them (honestly, run on the web aspect I heard at EclipseCon and scripting is not enough).

Kind Regards,
Andrey

----- Original Message -----
From: "Ed Merks" <merks@xxxxxxxxxx>
To: "E4 developer list" <eclipse-incubator-e4-dev@xxxxxxxxxxx>
Cc: "eclipse-incubator-e4-dev" <eclipse-incubator-e4-dev@xxxxxxxxxxx>, eclipse-incubator-e4-dev-bounces@xxxxxxxxxxx
Sent: Sunday, April 13, 2008 8:23:05 AM GMT +06:00 Almaty, Novosibirsk
Subject: Re: [eclipse-incubator-e4-dev] E4 probably too late?

Andrey,

Are you sure "FX" isn't just the latest buzzword designed to appeal to the
Teflon Programmers of the world?

    http://ed-merks.blogspot.com/2008/04/teflon-programming.html

It seems to me there's yet another cool way to build UIs approximately
every other week.  I suppose we can only hope that eventually someone will
do something of lasting value, but what makes you believe this would be it?
Until then, I'll personally remain skeptical of anything that smacks of
hype and place my bets on technology that's focused on lasting value...

When it comes to innovative ideas, I found Jim van Dam's approach to
Intentional UI modeling to be quite compelling:

   http://www.eclipsecon.org/2008/index.php?page=sub/&id=56

But of course for me, everything is about modeling.  The realization of
those models,  along with the details about how to render them in the
shifting UI technology stack,  seems subservient to the high level
abstractions that transcend these details...

Without something of lasting value, we'll all remain in the "rinse, lather,
repeat" loop for our entire careers...


Ed Merks/Toronto/IBM@IBMCA
mailto: merks@xxxxxxxxxx
905-413-3265  (t/l 313)




                                                                           
             Andrey Platov                                                 
             <andrey@xxxxxxxxx                                             
             >                                                          To 
             Sent by:                  eclipse-incubator-e4-dev            
             eclipse-incubator         <eclipse-incubator-e4-dev@eclipse.o 
             -e4-dev-bounces@e         rg>                                 
             clipse.org                                                 cc 
                                                                           
                                                                   Subject 
             04/12/2008 07:41          [eclipse-incubator-e4-dev] E4       
             PM                        probably too late?                  
                                                                           
                                                                           
             Please respond to                                             
             E4 developer list                                             
             <eclipse-incubato                                             
             r-e4-dev@eclipse.                                             
                   org>                                                    
                                                                           
                                                                           




Hi folks,

Few weeks passed after EclipseCon but I'm still under E4 impression. I saw
excited people around applauding demos of scripts, which changes caption
color. I saw full room of people excited with demo of the editor on the
web, and I believe many of them left EclipseCon feeling bright Eclipse
future. I have heard from E4 gang "we do not know details but it will be
cool", and I believe E4 will be cool. There was questions about 3.5,
diversity, and technical problems (like event handing), but to the best of
my knowledge no one asked E4 gang: "guys, why do you so happy? do not you
think E4 is very late?.. probably too late".

As for me - I left EclipseCon with dark thoughts about Eclipse future.
There are two names made me unhappy: WPF and JavaFX. Nevertheless I'm aware
of WPF and JavaFX exists I did not paid attention to them. After I looked I
was shocked. Both WPF and JavaFX very similay and both are definitely new
way to develop UIs. And SWT (as well as "classic" component based OS UIs)
is far away. I'm afraid many eclipse developers did not looked into WPF or
JavaFX deep. Personally I was thinking about them like declarative UI
languages and corresponding frameworks - nothing new comparing to
DHTML/Scripting for example. But I was totally wrong - they definitely
rethinked how UIs shall be build. After looking inside I started trust
Sun/MS marketing people and believe that any of these two technologies can
start new age for UI development.

For me eclipse is everything during past 5 years, my work, my hobby, my
hopes... I can find everything I need in eclipse world. If I can't find
anything I can develop it. After looked at JavaFX/WPF - I can't imaging
anything better, but I can't have such technologies in my eclipse-oriented
world. Most disappointing to my totally eclipsed mind that I can have them
now, but out of eclipse. In 2008 I can start programming with WPF/JavaFX
and provide UI designer with top-notch tooling. While E4 is just an
incubation community-driven project at warming up stage, well funded and
formed teams at Sun and Microsoft worked hard on new UI development
concepts for past *years*. They done, E4 did not started.

Folks, we talking about to run E4 on desktop OSes and web runtimes such as
Flash, they own that runtimes (Java and WPF/Silverlight); we talking about
new programming models for UI; they own new technologies introducing new
programming concepts for UI (JavaFX Script and WPF/XAML) and these
programming models doing a lot intersting things in terms of databinding,
event processing, UI composition, rendering, and performance optimizations
- E4 did not face that problems in practice yet. We predict to have
something (hope "something" will include great UI tooling) in 2010 - Sun
and Microsoft releasing tools for their technologies in 2008 (upcoming
JavaFX design tools, which will be interoperable with Adobe products, and
Microsoft Expression WPF tooling).

I did shared my concerns with a friend (who is an eclipse committer). I
told, hey I'm frustrating how eclipse is far from what I saw in WPF and
JavaFX. The answer was: It's OK - Eclipse is a conservative platform...
This is contrary to my understanding of Eclipse during past years - I was
thinking Eclipse is an innovative platform...

5 years ago SWT was a best choise for me: it was much rich compating to AWT
and much faster comparing to early Swing. Now SWT looks like dinosaur
comparing to WPF and JavaFX. Do you think it's possible to jump into this
running train?

Please can anyone comment of my concerns about SWT future (I mean basic UI
rendering layer for E4).

Will be there a switch to JavaFX? If not - do you think there can be enough
resources involved to catch JavaFX/WPF with alternative but comparable
technology (New SWT) and relevant tooling?


Kind Regards,
Andrey Platov
Eclipse DLTK Project Lead



_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev


_______________________________________________
eclipse-incubator-e4-dev mailing list
eclipse-incubator-e4-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipse-incubator-e4-dev

Attachment: ms expression - design UI.jpg
Description: JPEG image

Attachment: ms expression click Run button.jpg
Description: JPEG image


Back to the top