<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Andrey Platov</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.xored.com/e4/atom.xml" />
    <id>tag:blogs.xored.com,2008-04-19:/e4//3</id>
    <updated>2009-10-15T17:59:42Z</updated>
    <subtitle>Andrey Platov on next generation of Eclipse Platform (E4) and Eclipse Technologies</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Personal 4.1</generator>

<entry>
    <title>JetBrains goes open source. Is that beginning of ... what?</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2009/10/jetbrains-goes-open-source-is.html" />
    <id>tag:blogs.xored.com,2009:/e4//3.18</id>

    <published>2009-10-15T17:11:37Z</published>
    <updated>2009-10-15T17:59:42Z</updated>

    <summary>JetBrains just announced an open source edition of their popular IntelliJ IDE, under the Apache 2.0 license. Ian Skerrett, Director of Marketing at the Eclipse Foundation welcomes this move, while Eugene Kuleshov asking if that is beginning of the end....</summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="e4" label="E4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="eclipsefoundation" label="Eclipse Foundation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jetbrains" label="JetBrains" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>JetBrains just <a href="http://newsblaze.com/story/2009101510120200001.pnw/topstory.html">announced</a> an open source edition of their popular IntelliJ IDE, under the Apache 2.0 license. Ian Skerrett, Director of Marketing at the Eclipse Foundation <a href="http://ianskerrett.wordpress.com/2009/10/15/intellij-now-open-source/">welcomes this move</a>, while Eugene Kuleshov asking if that is <a href="https://twitter.com/euxx/status/4894872972">beginning of the end</a>.</p>

<p>I'd agree with Eugene, this is definitely beginning of the end... With some difference: now eclipse is more close to the end than it was 2 years ago.</p>

<p>To understand this let's guess JetBrains' motivation:</p>
]]>
        <![CDATA[<p>Please do not forget JetBrains is a small company. So a few hundred more users paid for IDE is probably nothing for IBM but a value for JetBrains. Moving to open source will very likely decrease their sales in short term because of some potential IDEA users who knows about IDEA will not buy it but will use free one. There will be some time while open-source will spread a world and reach potential users who are not aware of IDEA yet (if such people ever exists). And some of JetBrains potential users who are thinking about to buy IDEA will be OK with free version.</p>

<p>So considering this fact let's think why they decide to move open source?</p>

<p><strong>Guess #1:</strong> Their are focusing on more profitable products like ReShaper; do not count on IDEA as a profitable product and let it be open source to gain indirect benefits.
If this is true, nothing positive about this move, and this is just a beginning of IDEA end.</p>

<p>Personally I do not believe in case #1</p>

<p><strong>Guess #2:</strong> This is beginning of world-wide "JetBrains attack" on the IDE market. There is only 2 products which were restraining such an attack: eclipse and netbeans. Because while eclipse and/or netbeans are strong -- such attack would be very stupid move for (again!) small self-funded company. If guess #2 is closer to the reality, and JetBrains decided to open source IDEA -- this is a serious message to eclipse: JetBrains do not consider eclipse as a competitor in the middle term, and they believe they can take significant part of current eclipse and NB market.</p>

<p>Personally, I more believe in guess #2, considering stalled innovation in the eclipse ecosystem (except great things still happening at modeling); inability to explain where eclipse is moving; how it will look like in 2010 or 2012; suicide with OSGi resurrection <a href="http://blogs.xored.com/e4/2008/04/foundation-for-anything.html">I blogged 1.5 yrs ago</a>, and many more things going or not going within eclipse ecosystem.</p>

<p>Reality of course is much more complex, but I can't see any good signal for eclipse ecosystem in relation with this event. Collaboration between two communities? Nonsense for the similar reason: JetBrains is very small. This could be possible if JetBrains will have 50% of eclipse market, which just support guess #2. And of course if they even had such plans -- they were able to make them real many times.</p>
]]>
    </content>
</entry>

<entry>
    <title>Summarized wishes for E4</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/05/summarized-wishes-for-e4.html" />
    <id>tag:blogs.xored.com,2008:/e4//3.17</id>

    <published>2008-05-21T09:39:59Z</published>
    <updated>2009-04-28T11:25:57Z</updated>

    <summary>Before E4 Summit I&apos;d like to summarize my wishes for E4 Modern UI layer like WPF or JavaFX (I blogged a lot on this already) Embedded EMF database and EMF everywhere Transactional Workspace JavaSpaces-alike programming model for event handling, concurrency,...</summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="e4" label="E4" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>Before <a href="http://wiki.eclipse.org/E4/Summit">E4 Summit</a> I'd like to summarize my wishes for E4</p>
<ul>
<li>Modern UI layer like WPF or JavaFX (I blogged a lot on this already)</li>
<li>Embedded EMF database and EMF everywhere</li>
<li>Transactional Workspace</li>
<li>JavaSpaces-alike programming model for event handling, concurrency, and distributed computing support</li>
<li>Extensive (or full) use of modern programming language (hint: not Java)</li></ul>]]>
        
    </content>
</entry>

<entry>
    <title>My &quot;Two Things&quot; for E4</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/05/my-two-things-for-e4.html" />
    <id>tag:blogs.xored.com,2008:/e4//3.16</id>

    <published>2008-05-12T20:03:59Z</published>
    <updated>2008-09-22T16:35:42Z</updated>

    <summary><![CDATA[I'm feeling like heretic when posting to E4 mailing list, so my last posts did not went there (this one&nbsp;regarding OSGi/SWT/EMF Trinity&nbsp;looks to be a straight road to anathema).&nbsp;But I'm already on this road, so I'd like spell my key...]]></summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="e4" label="E4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="expression" label="Expression" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flex" label="Flex" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javafx" label="JavaFX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="osgi" label="OSGi" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swt" label="SWT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wpf" label="WPF" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>I'm feeling like heretic when posting to E4 mailing list, so my last posts did not went there (<a href="http://blogs.xored.com/e4/2008/04/foundation-for-anything.html">this one</a>&nbsp;regarding OSGi/SWT/EMF Trinity&nbsp;looks to be a straight road to anathema).&nbsp;But I'm already on this road, so I'd like spell my key wishes for E4.&nbsp;Below are&nbsp;my <a href="http://wiki.eclipse.org/E4/Eclipse_Application_Model">"two things"</a> or what I'd like to see in E4...</p>]]>
        <![CDATA[<p><font style="font-size: 1.25em;">Goodbye OSGi...</font> </p>
<p>Well, run Eclipse architecture on top of any (reasonable) modularization model including OSGi.</p>
<p>Do not get me wrong, OSGi is cool technology, however I do not believe OSGi is good for Eclipse. I already blogged on my vision of <a href="http://blogs.xored.com/e4/2008/04/foundation-for-anything.html">OSGi/Eclipse marriage</a>, some more&nbsp;thoughts below:</p>
<ul>
<li>OSGi is strictly Java-oriented. Eclipse extension points concept is about injection of any [XML] data.&nbsp;Having E4 trend to be multi-lingual/runtime platform in mind, OSGi do not look to be&nbsp;good foundation due to its Java nature. Consider&nbsp;trivial scenario:</li></ul>
<p><em>E4 JavaScript client what to query for mime-types (Strings) supported by current Eclipse installation...</em></p>
<p>Eclipse plugin architecture serves this task well: just query for extensions bound to x.y.z.mimetype extension point. Extensions in form of DOM can be easily processed on JavaScript client, but I do not know how to implement such scenario&nbsp;on top of OSGi without overcomplexifying things.</p>
<ul>
<li>Eclipse is still built on top of extension point concept. AFAIK there are no major Eclipse Projects (besides some parts of Platform) implemented on top of OSGi Services. So no one proved (yet) that OSGi is good for Eclipse in general... OK, I'm talking about OSGi Services. Deployment is fine, and do not forget - Eclipse Plugin Architecture influenced on OSGi a lot.</li></ul>
<p>Like we or not,&nbsp;major Eclipse Project are not on top of OSGi, and 3.x projects will not be pure OSGi projects. I mean you can not add any value to Eclipse Project using pure OSGi extensibity. To add any value you need to plug into Eclipse Plugin Registry.&nbsp; </p>
<p>So how Eclipse uses OSGi? Eclipse use OSGi for deployment... Only... Being Eclipse plugin developer for years, what I'm know about OSGi? Nothing&nbsp;except starting from Eclipse 3.x I need to align my plugin structure with some OSGi "stuff". In fact Eclipse continue to use Eclipse Plugin Architecture for deployment too, which has been aligned with OSGi. And we know OSGi benefit a lot from Eclipse. Did OSGi added anything to Eclipse? I guess nothing besides buzzword and possibility to say that eclipse now based on some "standard".</p>
<p>So is OSGi fine for E4? I do not think so. Personally I think OSGi may be seriously considered as a foundation for E4 for only 2 reasons: politics or buzzwords. Instead I'd prefer to see extended Plugin Extension Registry (more on this later), as well as ability to run Eclipse Plugin Architecture on top of any modularization model like OSGi or JSR-277. </p>
<p>Technically (and until we do not stuck with OSGi a lot) is much easy to run Eclipse Plugins on top of that systems instead of locking Eclipse into OSGi without any technical benefits.</p>
<p><font style="font-size: 1.25em;">Goodbye&nbsp;SWT... </font></p>
<p>Well, completely redesign SWT to say in line with WPF and JavaFX. </p>
<p>It looks like Eclipse Community completely ignore major UI trends. I posted half-dozen of posts to this blog and E4 mailing list, but&nbsp;<a href="http://ianskerrett.wordpress.com/2008/05/09/thoughts-on-javaone-2008/">this&nbsp;post from Ian Skerrett</a> supported&nbsp;my assumption on JavaFX ignorance by key Eclipse persons. OK, I did pointed to this trends&nbsp;several times from technical standpint, let's look from "business" or "marketing" standpoint.</p>
<p>Popular oppinoin is: <em>"Sun is too late (to RIA battle), so we will not care"</em>. I do not know who is originated such oppinion (I believe someone from Adobe), but this is simply lie targeted to people who do not want to analyze facts. Let's&nbsp;compare three major players (Adobe, Microsoft, Java):</p>
<p>Modern RIA technologies comprised of 3 important things:</p>
<ol>
<li>Runtime environment, which is spreaded as wide as possible&nbsp;(e.g. avaiable on every browser/device in the world).</li>
<li>Tooling, to support developers including rich graphical tooling to involve design crowd in development process</li>
<li>Rich UI layer, ideally supporting video rendering, advanced 2D/3D graphics, etc</li></ol>
<p>All 3 things are impotant for success in RIA space, so let's look where Java stand in the past, now, and in future:</p>
<ol>
<li>Runtime.&nbsp;Do people who&nbsp;think "Sun is late"&nbsp;agree with&nbsp;"Sun too late with Runtime?". I believe they do not. Sun have probably the best runtime (JRE/JVM) for years (comparing to Flash/AVM and .NET/CLR).&nbsp;I believe there are much more browsers in the world, which are able to run JVM comparing to amount of browsers with Silverlight support.</li>
<li>Tooling. Adobe and Microsoft already offer great tools. Adobe traditionaly very strong with their tooling. Microsoft offers <a href="http://www.microsoft.com/expression/">Microsoft Expression</a>, which is just amazing from first look. Sun is trying to catch them and JavaFX plugins for Adobe products to support JavaFX technology&nbsp;look like&nbsp;first steps in this area to catch on competitors.</li>
<li>Rich UI layer. True, <a href="https://scenegraph.dev.java.net/">scenegraph</a> and JavaFX compiler is not finished yet. But is anyone doubts of Sun's abilities to provide solution comparable to WPF and Flex in this year as planned? I do not.</li></ol>
<p>So looking at these items I can't figure why Sun is late. Probably someone can try to argue that Flash is available on 99% of browsers (all versions). OK, I do not know numbers, but let's assume at least 50% browsers have Java&nbsp;plugin installed. How this compare to number of Silverlight installations? Do you have Silverlight installed? OK, on the laptop I'm using to wirte this I&nbsp;have both&nbsp;IE and Firefox. For IE&nbsp;I have&nbsp;all mentioned runtimes installed, but for Firefox I have Java only. Honestly, I'm bored to install Flash plugin (for some reasons one-click-installation failed once), so I'm switching to IE sometimes for Flash content. So in terms of marketshare it's better to say Microsoft is late, Sun do not.</p>
<p>Developers, developers, developers. Someone may&nbsp;point that 99% of RIA developers are on Flex. I believe this is true number,&nbsp;but&nbsp;do you know&nbsp;how many Flex developers are there in the world? 0.1% of Java + .NET developers? More? 0.5%? That number does not matter. When Sun and Microsoft will finally release&nbsp;technologies, which are&nbsp;comparable to Flex, and enterprises&nbsp;start&nbsp;RIA adoption, which RIA technology do you think they will choose? That can be&nbsp;plain old Java vs. .NET battle in RIA space... And some other players like Adobe&nbsp;as usual.</p>
<p>OK, let's back to E4. Actually I do not care if Sun will succeed in RIA battle. What I'm care about is Eclipse as Rich Client Platform, and to&nbsp;be best RCP in future Eclipse need to start its shift together with&nbsp;MS and Sun towards better and richer&nbsp;UI frameworks.&nbsp;In terms of UI, I&nbsp;hope to&nbsp;see one of following for E4:</p>
<ul>
<li>SWT abandoned as <a href="http://blogs.xored.com/e4/2008/04/swts-road-to-superprotability.html">"redundant technology"</a> and E4 switched to JavaFX until <a href="http://blogs.xored.com/e4/2008/04/is-not-e4-too-late.html">it is not too late</a>.</li>
<li>In best SWT traditions completely new UI layer has been developed, which is comparable to JavaFX, WPF, and Flex in terms of concepts and features.&nbsp;And optionally (which is very exciting), it would be great to make this SWT+ applications able to run on top of JVM, CLR, and AVM... OK, do not get me wrong and <a href="http://blogs.xored.com/e4/2008/04/swt-vs-wpfjavafx.html">forget AJAX, please</a>.</li></ul>
<p>&nbsp;</p>]]>
    </content>
</entry>

<entry>
    <title>Foundation for Anything and Nothing</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/04/foundation-for-anything.html" />
    <id>tag:www.xored.com,2008:/blogs/e4//3.14</id>

    <published>2008-04-19T19:16:59Z</published>
    <updated>2008-04-24T20:10:38Z</updated>

    <summary>Nowadays there are tens of Eclipse project under Eclipse Foundation and hundreds of eclipse-based products in all over the world. Everyone can clearly recognize eclipse-project and separate it from non-eclipse projects. But what is criteria of calling project eclipse-based or...</summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="eclipsefoundation" label="Eclipse Foundation" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="emf" label="EMF" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="equinox" label="Equinox" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="flex" label="Flex" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javafx" label="JavaFX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="osgi" label="OSGi" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rcp" label="RCP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swt" label="SWT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wpf" label="WPF" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>Nowadays there are tens of Eclipse project under Eclipse Foundation and hundreds of eclipse-based products in all over the world. Everyone can clearly recognize eclipse-project and separate it from non-eclipse projects. But what is criteria of calling project eclipse-based or not? Linkage with any of Eclipse Foundation projects do not look sufficient...</p>]]>
        <![CDATA[<p>I think there are three things, that do the project Eclipse-based: <a href="http://www.eclipse.org/equinox-portal/">Equinox</a>, <a href="http://www.eclipse.org/swt">SWT</a>, and <a href="http://www.eclipse.org/emf">EMF</a>. It's interesting, but anything else is not significant in current people's mind: I can reuse millions lines of other Eclipse code for example JDT's Java complier, EclipseLink, or something like that but nobody could say <i>"this is eclipse-based"</i> project. But if I'm running on Equinox, or exposing SWT UIs - my project will be named <i>"eclipse project"</i> magically. Even SWT-based RSS reader is Eclipse-based in people's mind. Equinox and SWT act as a glue. If you use them - you belong to Eclipse world. If you're building on Equinox or use SWT - you can interoperate with other Equinox and/or SWT-based projects, which are Eclipse projects. In Eclipse Modeling world EMF is a such glue.</p>
<p>All that above means Eclipse Foundation built on top of 3 whales: Eclipse Plugin Architecture, SWT, and EMF. Each of these whales is vital for Eclipse Foundation existence and ambitions (in form they exists now). Let's look at each whale:</p>
<p><font style="font-size: 1.25em;" size="5">Eclipse Plugin Architecture</font></p>
<p>Eclipse Foundation did huge work transitioning plugin architecture to <a href="http://www.osgi.org/">OSGi</a>, influenced on OSGi, and revitalized OSGi. Let's move to the future: People expressing thank Eclipse! Eclipse did an excellent job. Now OSGi living it's own life and we have many OSGi runtime vendors. Suddenly some of Eclipse Foundation Projects, which neither use SWT nor EMF recognized that they have no connections with Eclipse Foundation. Nobody able to explain why OSGi-based financial libraries will stay at Foundation, or why OSGi-based communication protocol implementaions will stay at Eclipse Foundation. What about OR-mapping frameworks? What is the difference between Apache Foundation OSGi projects and Eclipse Foundation OSGi projects?.. [BTW Orbit will be closed] Or how Eclipse Foundation OSGi projects different to EPL-compatible OSGi projects, which are hosted at SourceForge?.. Eclipse != OSGi. Pure OSGi projects leaving Foundation... First whale (and the strongest glue) is dead...</p>
<p><font style="font-size: 1.25em;" size="5">Standard Widget Toolkit</font></p>
<p>Eclipse has strong ambitions to be a Rich Client Platform. Now <a href="http://www.eclipse.org/rcp">Eclipse RCP</a> is not possible without SWT. At early SWT days "SWT" was a buzzword. I saw AWT vs SWT, and SWT vs Swing articles, millions of discussions on forums and many authors rushed on IBM: <i>"this is not pure Java"</i>, <i>"what they're doing? this is not correct, you should respect standards"</i>, etc. SWT/Eclipse was innovating... Now SWT vs XYZ is not a hot topic. This means 1) SWT is mature 2) SWT must evolve or die. If Eclipse will loose in Desktop battle - Eclipse will not be Rich Client Platform anymore. I <a href="http://blogs.xored.com/e4/2008/04/is-not-e4-too-late.html">already mentioned</a> that Eclipse is not involved in fight between JavaFX, WPF, and Flex. It means Eclipse will choose from winners, and if Eclipse chooses JavaFX - goodbye RCP, because OSGi + JavaFX != RCP, OSGi + JavaFX == Java, and Java is the best Rich Client Platform. All RCP-based projects leaves Eclipse World, second whale is dead.</p>
<p><font style="font-size: 1.25em;" size="5">Eclipse Modeling Framework</font></p>
<p>I'm very optimistic on the EMF future, and my scenario for 2010 is following: EMF is everywhere, and EMF and Eclipse Workbench is only one glue, which connects all Eclipse projects together: they all run in Workbench (4.0 != 2.0?) and interoperate via EMF models. Eclipse is still the best platform for modeling and tooling (Eclipse == EMF + Workbench)! Unfortunately there are no RCPs and Eclipse looks archaic (visually) similar to Motif UI in 2008 (Hi good old Rational Rose ;)).</p>
<p>There is no <b>Total</b> Eclipse more, sun shines again in Java Desktop town... A terrible scenario, isn't it? </p><!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
    rdf:about="http://kb.xored.com/display/e4/Foundation+for+Anything+and+Nothing+in+practicular"
    dc:identifier="http://kb.xored.com/display/e4/Foundation+for+Anything+and+Nothing+in+practicular"
    dc:title="Foundation for Anything and Nothing in practicular"
    trackback:ping="http://kb.xored.com/rpc/trackback/6914138"/>
</rdf:RDF>
--><!--
    Root decorator: all decisions about how a page is to be decorated via the
                    inline decoration begins here.
--><!--
    Switch based upon the context. However, for now, just delegate to a decorator
    identified directly by the context.
-->]]>
    </content>
</entry>

<entry>
    <title>What SWT/RAP can&apos;t address to survive in future?</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/04/what-swtrap-cant-address-to-su.html" />
    <id>tag:www.xored.com,2008:/blogs/e4//3.12</id>

    <published>2008-04-16T00:06:27Z</published>
    <updated>2008-05-13T12:27:36Z</updated>

    <summary>OK, I was kicked out of discussion with a simple question: I would be very much interested in the innovative concepts that are in JavaFX / WPF that you think can not be well addressed with e4......</summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="javafx" label="JavaFX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rap" label="RAP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swt" label="SWT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wpf" label="WPF" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>OK, I was kicked out of discussion with a simple question: <em>I would be very much interested in the innovative concepts that are in JavaFX / WPF that you think can not be well addressed with e4...</em></p>]]>
        <![CDATA[<p>Bad thing is that&nbsp;I can't answer&nbsp;this question because I can't imagine how "widget-based" SWT/RAP style applications can "support" WPF features at all. I understand that JavaFX alternative can be built in Java (or other language), which will run within JRE and use OpenGL or use Sun's Graphics2D as display. I understand that the alternative to WPF (which is actually .NET framework rendering to DirectX) can be build in Java (or another language), which will run within JRE and use OpenGL or use Sun's Graphics2D as display :). &nbsp;But I'm getting lost when&nbsp;think about&nbsp;how to transpose "universal" E4 UI to any of runtime. <br /><br />Technically WPF UI is CLR code + XAML data; Silverlight UI is same (CLR + XAML + optionally DLR); JavaFX Script compiles to Java byte code... <br /><br />So, to be able to run on WPF and Java and Flex as designed, e4 UI will be able to translate itself into target runtime code (CLR, Java, Flash respectively), similar to OpenLaszlo compilation of LZX/JavaScript into Flash and/or DHTML/JavaScript), or Google GWT (which compiles Java into DHTML/JavaScript). If I'm right with e4 goals, then</p>
<p><font style="FONT-SIZE: 1.25em" size="5">Questions:</font>&nbsp;</p>
<p dir="ltr">Which programming language will be used&nbsp;for&nbsp;developing UI in e4? Consider:</p>
<ul dir="ltr" style="MARGIN-RIGHT: 0px">
<li>We shall be able to compile this language into CLR instructions + XAML, Java bytecode, and Flash programs.</li>
<li>To support target environemtns fully, this language shall be as much expressive as JavaFX Script, XAML, or Flex.</li>
<li>To provide the same set of&nbsp;components (and to have SWT-alike custom components on all supported environments) we shall develop Basic set of reusable components (widgets) in this language.&nbsp;</li></ul>
<p>In this language we shall be able to script 2D graphics instructions to support ability for end-users to develop custom components (such as Nebula controls)?</p>
<p>There are many talks about UI scripting in E4. If these&nbsp;scripts&nbsp;are a part of UI, which are deployed to non-Java runtime (CLR or Flash), how are you going to transpose scripts for example in Groovy to .NET or Flash environments. What other limitations will be?&nbsp;</p>
<p>If UI logic / Component, which is hosted in the webbrowser (say Flash) uses Java code heavily (from event handlers), is it supposed to call into Java over network, not allowed, or you're going to translate Java byte code into CLR/Flash and deploy it onto the client?&nbsp;</p>
<p>If everything is just fine and you managed at least (a) for Java. Why do we need to support other runtimes? (Java is already cross-platform and run within all browsers). If you disagree, and managed (a) for CLR and Flex - which Runtime will be native to E4 UI (Flex, WPF, Java)? If there is no "preferred" UI environment for E4 and E4 runs fine everywhere, what about remaining eclipse parts? Will them run headless in JVM communicating with UIs deployed to CLR, Flex, and other clients? Other options? </p>
<p>In relation to natural/unnatural desktop environments I'd like to share a link to <a href="http://www.gef3d.org/">GEF3D framework</a>, which targeted to natural desktop environment as I understand it. screenshots: http://www.fernuni-hagen.de/se/personen/pilgrim/gef3d/screenshots.html and a link to screencast on the page. Do you think it will be able to develop such desktop oriented tools in E4 and expose them to the web? Will be there any limitations? [Please note Eclipse 3.x have no limitations to develop such cross-platform apps]. </p>
<p>It looks like we are on different ends of the road, please can you go through articles of Wikipedia with a good summary of WPF and Silverlight features: http://en.wikipedia.org/wiki/Windows_Presentation_Foundation and http://en.wikipedia.org/wiki/Microsoft_Silverlight Do you have an idea how this architecture and features can be supported from E4 UI layer? </p>
<p>If WPF features will be fully supported in current SWT fashion, do you think&nbsp;<span class="diffaddedchars">it is</span>&nbsp;cool to wrap all the WPF aspects in <span class="diffaddedchars">SWT?</span> Do you think it will be cool to spell in E4 press-release <em>"Great achievement of Eclipse Community is tremendous efforts on wrapping WPF .NET Framework in SWT... Now 80% <span class="diffaddedchars">are</span> wrapped, innovations </em><span class="diffaddedchars"><em>are continuing"</em>?</span> What about other .NET frameworks? <span class="diffaddedchars">Will</span> we think about <span class="diffaddedchars">wrapping</span> WCF to support "native" Windows Communication Layer by ECF project? What about .NET on linux? <span class="diffaddedchars">Will</span> we wrap WPF implementations on .NET Linux? <span class="diffaddedchars">Will</span> we switch to .NET :-) ? </p>]]>
    </content>
</entry>

<entry>
    <title>SWT&apos;s road to &apos;super-portability&apos;</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/04/swts-road-to-superprotability.html" />
    <id>tag:www.xored.com,2008:/blogs/e4//3.11</id>

    <published>2008-04-15T23:55:37Z</published>
    <updated>2008-04-22T09:42:07Z</updated>

    <summary><![CDATA[Jochen Krause from RAP&nbsp;disagreed: "In essence that is the Swing vs. SWT discussion again, and this has been discussed for ages. There is more to this discussion than performance. I agree that SWT needs more *sexy* animations, but this can...]]></summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>Jochen Krause from RAP&nbsp;disagreed: <em>"In essence that is the Swing vs. SWT discussion again, and this has been discussed for ages. There is more to this discussion than performance. I agree that SWT needs more *sexy* animations, but this can be (and is being) adressed without moving away from native widgets. New platforms like WPF and AIR offer new capabilities that we can take advantage of."</em></p>
<p>Actually identical look does not matter. Fact that only matter is <strong><em>"SWT is a redundant technology"</em></strong>.</p>]]>
        <![CDATA[<p>I'm telling about L&amp;F in terms of cross-platforming: I won't recall SWT vs. Swing discussion; I just wanted to state some facts,&nbsp;making me think&nbsp;on SWT as on redundant technology: </p>
<ul>
<li>It's harder to look identical of you do not control all the aspects of rendering (e.g. delegate some parts of the process to outer world like SWT does to underlying OS UI layer). </li>
<li>It's easier to stay cross-platform with 2D-approach: this approach supported on all the platforms where Java runs with zero efforts. </li>
<li>There are no performance issues anymore. Now it's hard to argue why we need SWT from performance perspective. </li>
<li>Native OS components are deprecating. WPF already render .NET objects to DirectX canvas. At which layer of "supported" enviroments will SWT map (or render). Which layer of "supported" environment custom SWT components will use for rendering 2D primitives? Do you have an example how custom SWT component will be rendered to WPF and to AJAX? If WPF styling/templating if going to be supported, how do you going to support cross-platform look and feel (e.g. same look on Linux/GTK for WPF-styled component)? </li></ul>
<p>I do not want to say we shall replace SWT with something, initially I was asking for SWT plans to understand concepts behind SWT for next say 10 years. Just like every eclipse user understanding past challenges (performance, better OS integration) and all we know the great SWT response to those challenges during past 10 years... </p>
<p>Regarding different approaches in UIs for web and desktop applications Jochen disagees as well: <em>"because that strong split between browser and desktop will very likely vanish. And there is no problem in driving a Silverlight client from RAP. E4 is about offering more choice, so if you don't like "widget-based" (SWT / RAP) style web applications, you simply go and use what you like and attach it to the workbench backend."</em></p>
<p>I'd like to enforce his prediction and would like to say that split between browser and desktop already vanished. I'd like to focuse on desktop-capable runtimes and non-capable ones (I can formalize my understanding of desktop capabilities, but let's continue intuitively for now :) </p>
<p>I have no contras to run my desktop-oriented UI in browser with Silverlight (WPF/E), Java, or Flash VM runtimes. Moreover I would like to argue that we shall desktop-oriented applications in these (desktop-oriented) environments, but... I'm contrary to transposing my desktop application to unnatural environment (HTML + AJAX + embedded flash, WPF, applets or whatever else). I like "component-based" style of applications (actually, I do not know any alternatives to this style yet - Scene decomposition down to 2D primitives will not eliminate composition techniques). </p>
<p>But if we'll forget about marketing efforts, technology distribution across the world, etc and will ask ourselves as an engineers: "what is the great idea behind all that AJAX stuff?". The answer is nothing. If you remember AJAX history Internet Explorer was hacked by Google. They discovered they can query server from JavaScript using XmlHttpResponse object. Based on this knowledge Googlers added "code assistance" feature to their Search EditBox, which was excited millions and millions people around the world. That was a Great Hack, adding new capabilities to the environment (DHTML) which were not existed before. In other words they have learned how to force webbrowser to work as ANSI terminal or DOS application, just querying server and changing content appropriately [far from conceptual revolution, is not it?]. During next years all the AJAX companies employed The Great Hack to build more complex libraries, frameworks, and applications on top of it. Hell, this looks like web browsers was invented on Mars. Later Earth scientists found Alien Technology, Googlers hacked it, and millions of engineers worldwide invest all their time managing Alien Technology to behave like native Earth desktops... </p>
<p>Another question: Not so many years ago there was a shift from ASCII terminals to pixel-oriented grahpics. Let's imagine "standard Earth desktop" (like Java or WPF based) will be 3D or (more likely) 2D *vector* based in few years from now. Do you think people will invest more and more resources adding 3D or vector-based capabilities to unnatural environment, or finally will abandon hacks and will switch to natural ones? </p>
<p>I know there are many things, which forcing the world to use the Great Hack. And the Hack will be popular for a long time. RAP Technology itself is a great response to today's challenge... But why we shall support this Hack and other unnatural environments at the foundation layer (SWT)? </p>
<p>Another aspect I'd like to focus, is clear separation of things in web space: I'm considering Silverlight/Java/Flash as natural desktop-style environments, and HTML + AJAX as unnatural. Again in respect to DHTML UIs, I believe there will be very long life of HTML. But DHTML applications are very different and people have another requirements for that applications. For example:&nbsp;</p>
<ul>
<li>To be search engine friendly, and REST-styled to identify piece of information, for cross-linking, etc&nbsp;</li>
<li>Information-oriented layouting I mentioned before.&nbsp;</li>
<li>I guess many more... </li></ul>
<p>And final aspect: <br /><br />Flex/AIR, JavaFX, and WPF's approaches for cross-platforming (and for spreading the world) are identical: they just distribute runtime to as much platforms as possible. All three technologies are self-sufficient and they do not need anything besides runtime to run. These runtimes are: Flash VM, Java, and WPF (Silverlight = embedded versoin of WPF, initially named WPF/E). <br /><br />E4 intention (as I understand it) is "super-portability" and "super-spreading": let's support all of them... and beyond (like HTML/AJAX). Is everyone here thinking this is reasonable decision? Can anyone propose a name for "support everything" programmers in addition to Ed's Teflon ones?&nbsp; </p>]]>
    </content>
</entry>

<entry>
    <title>Looking at WPF and JavaFX, thinking on SWT</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/04/swt-vs-wpfjavafx.html" />
    <id>tag:www.xored.com,2008:/blogs/e4//3.10</id>

    <published>2008-04-15T15:55:33Z</published>
    <updated>2008-05-13T12:26:10Z</updated>

    <summary>Question: &quot;Well so you suggest that SWT is going away from native widgets drawing everything on the GC? I agree with you that there are amazing things one can do. Seeing controls like [1] are amazing but the problem I...</summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="ajax" label="AJAX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javafx" label="JavaFX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rap" label="RAP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swt" label="SWT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wpf" label="WPF" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>Question: <em>"Well so you suggest that SWT is going away from native widgets drawing everything on the GC? I agree with you that there are amazing things one can do. Seeing controls like </em><a href="http://www.hexapixel.com/ribbon/"><em>[1]</em></a><em> are amazing but the problem I see is how to make them cross-platform (e.g. draw them in browser)?"</em></p>
<p>RAP is a great technology definitely,&nbsp;but&nbsp;take care from mind being RAPed... Please&nbsp;forget&nbsp;RAP for a minute, and think on simpe fact: each competetive technology (JavaFX, WPF, Flex) can draw on canvas in browser without a problem... Why it&nbsp;should not possible for SWT (to draw on canvas either in desktop or web modes)?</p>]]>
        <![CDATA[<p>Definitely, 2D primitives exist everywhere, so scene composed from 2D primitives can be rendered on any platform you can imagine (including your printer firmware).&nbsp;Rendering subsystem can also adapt rendering parameters&nbsp;to concrete platform capabilities (such as mobile phone, fridge screen, or high-end desktop box). For slow CPUs renderer may disable antialiasing, choose faster algorithms with worse result, replace gradient fills with solid fills, discard opacity, etc. Such adaptation can be very dynamic, depending on your *current* CPU load. If we'll have EMF (or something else)-based UI model in memory - we do not bother with any "UI thread" issues, flickering, etc - Rendering thread is just repainting our UI scene as fast as it can (showing FPS counter in top-right corner :))... So if your button floating off the screen very fast (with some animation effect) and on slow CPU - that's OK, end-user will just miss effect but will not wait hundreeds of repaintings until message queue fully processed. OK, I'll stop for this moment, since <span class="diffaddedchars">the time that</span> I <span class="diffaddedchars">started to</span> think <span class="diffaddedchars">more</span> about all this stuff <span class="diffaddedchars">things become</span> more <span class="diffaddedchars">interesting</span>. </p>
<p><em>OK, point #1</em>: If I understand SWT main goal right, SWT's main purpose is to run fast enough on supported platforms (comparing to Swing). After 9 years (I do not know exact SWT age) we have no such problems. Canvas is much portable and fast enough. </p>
<p>So we'll have <em>almost the same</em> look-and-feel on all platforms (depending on their capabilities in terms of canvas size, color schemes, input devices, and computing resources available). This approach looks to be more visually cross-platform comparing to SWT (just run Eclipse on Motif to ensure). Technically, SWT runs on all platforms where Java exists. Canvas is the same - you may find it everywhere. </p>
<p>As for web, of course you can expose such 2D-based UIs with web-brower using Java, SVG, Flash, WPF/E, and other capable runtimes (I mean runtimes which can render 2D graphics fast)... But I think you are wondering about exposing this UIs to non-capable runtime, such as HTML document (assuming there are no capable runtimes embedded). The answer is clearly NO. From my perspective exposing something like SWT GUI to AJAX can not be named "cross-platform". This is something I'd like to name "trans-platform". </p>
<p>Folks, let's look from another perspective: projects, which try to expose traditional desktop UIs to the Web exist since Web became popular (90yy). I remember that&nbsp;there was 4-letter acronym Apache project targeted to this goal, tens of projects from universities, and works of hobbyists exposing AWT controls as HTML forms. I remember demos of UI forms developed in early Delphi 2.0 and exposed to the web, etc. They all did not succeed (is anyone know popular website developed with such technology before AJAX?). </p>
<p>With XMLHttpRequest flaw discovery and after AJAX invented it's possible to expose desktop UIs to the Web better. For example CodeGear implemented VCL (which is BTW the best UI library I saw in 90yy) with AJAX, and developed <a href="http://www.codegear.com/products/delphi/php">"Delphi for PHP"</a>. After product unveiled, I suppose there was a lot of smiles on engineers' faces &nbsp;regarding such strange mix of technologies. Do you know any website developed in "Dephi for PHP"? Or have you even heard about this product? So you can understand how popular it is. But... "Delphi for PHP" is conceptually identical to Eclipse RAP. Technically I'm impressed with Eclipse RAP. RAP did a tremendous and *valuable* job in that domain. A great value of RAP that I can expose existing RCP apps to the web very fast. That's exciting... </p>
<p>However, I will not choose neither "Delphi for PHP" nor Eclipse RAP for my <strong>new</strong> project. The reason is simple: "I <strong>do not want</strong>&nbsp;my application to behave similar on the web and on the desktop. I remember all those universal UI projects telling: <em>"we'll render your UI to environment of any type"</em>. My answer is: <em>"please do not render my UI to any environment"</em>... cause they're too different. And I love my UI look-and-feel, and I want the natural fit of my UI into target environment. </p>
<p>Starting with interface design I have different goals in mind. Some basic things: I will fit my UI on the desktop (which is limited area, so I'm layouting application appropriately). To the contrary I want to see my web-based application to look more like printed document - I do not want to see scrollbars everywhere and other stuff like that. I will use screen flow (perspective switch extensively). When I open a&nbsp;browser I have no the intention to spend hours in editor view, but to surf though my data and information with a comfort. I believe (but&nbsp;I have not tried yet :)) if you&nbsp;ask experienced UI designer to develop and interface for your web-based app (say bug-tracker) and ask another one to design UI for your desktop bug-tracker - you'll see very different results. </p>
<p>There is nothing about technical possibilities and limitations, it's all about how people feel and sense different enviroments (either web, desktop and mobile). Personally I think unified, trans-platform UI frameworks is just a misidentification. I do not talk about MDA, there are a lot of senses transforming UI models to implementations, which are relevant to target environments, but there is no sense in developing my UI logics on top of unified interface (SWT+). </p>
<p><em>OK, point #2</em>: Great engineers built Eclipse, it's comparable to art to see tens of layers within eclipse, how they're communicate, and how I can plug into any layer and expose new higher-level functionality to the outer world. It's really about software genesis (I can't say development, as eclipse is more than development). When it comes to UI, as Eclipse consumer I'd like to see the same picture - correct abstractions and well-designed layers. SWT is true cross-platform (it supports all the OSes where Java runs). SWT + RAP approach is to make it trans-platform. That's defenitely sounds cool, but I'm afraid it may be misidentificated target. </p>]]>
    </content>
</entry>

<entry>
    <title>Natural way to develop UI</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/04/natural-way-develop-ui.html" />
    <id>tag:www.xored.com,2008:/blogs/e4//3.9</id>

    <published>2008-04-13T11:41:50Z</published>
    <updated>2008-04-24T13:44:33Z</updated>

    <summary><![CDATA[As a part of "too late" discussion Ed Merks pointed to Intentional UI Modeling approach from Jim van Dam's EclipseCon 2008 talk. Ed named it compelling, and&nbsp;I'd&nbsp;like to add: it is not only compelling, it's natural aproach to UI development...]]></summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>As a part of "too late" discussion Ed Merks pointed to <a href="http://www.eclipsecon.org/2008/index.php?page=sub/&amp;id=56">Intentional UI Modeling</a> approach from Jim van Dam's EclipseCon 2008 talk. Ed named it compelling, and&nbsp;I'd&nbsp;like to add: it is not only compelling, it's natural aproach to UI development and similar to JavaFX/UI. The devil of course in details...</p>]]>
        <![CDATA[<p>Important detail is how we will transform higher level UI abstractrions into a&nbsp;final representation. Atomic block in "old UI" composition is a widget. Atomic block in JavaFX/WPF is a 2D graphic primitive. These technologies treat Classical Widget as a composite of lower-level primitives, and these primitives available on every platform (which is not true for Widget-based approach) - just to support Jim van Dam's run everywhere point. This is not conceptual shift, but</p>
<ul>
<li>Few years ago we were not able to develop such UIs due to CPU/GPU performance limitations (and this was the main reason why SWT was born). </li>
<li>Now, scaling down to lower-level primitives gives new very attractive possibilities like: run everywhere (if something can provide adequate CPU/GPU power and runtime), clean separation of UI represenation and UI logic (we may expect designers working on desktop designs in the near future like we see in Web design market), flexible UI customization at run time and at any level (in WPF I can override Button look-and-feel for example adding rotate and scale transorm, adding few lines around caption, etc... I can completely replace look-and-feel of my button at application or window level - and all these will be vector graphics - just forget about pixels)! This is also very attractive from UI components reusing and representation inheritance standpoints, etc. Of course there are much more benefits we can figure out... </li></ul>
<p>So regarding buzz - I do not think this is a buzz, but natural evolution of UI started with SVG and Flash; higher-level technologies like Flex; and continued with JavaFX/WPF. It is constantly running evolution during last years, and finally we have these technologies ready for end-users, and end-users have PCs powerful enough to run such UIs. So there is a trend to decomposite UI down to 2D (3D? :)) primitives. And such decomposition rules will be fully controled/defined by application, which is contrary to original SWT idea and goal. </p>]]>
    </content>
</entry>

<entry>
    <title>Is E4 overfocusing on Declarative UI and Scripting?</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/04/will-e4-find-anything-on-that.html" />
    <id>tag:www.xored.com,2008:/blogs/e4//3.13</id>

    <published>2008-04-13T10:57:08Z</published>
    <updated>2008-04-24T19:31:53Z</updated>

    <summary><![CDATA[I follow E4 discussion on E4 incubator mailing list&nbsp;since&nbsp;EclipseCon 2008, where E4&nbsp;was announced. For those&nbsp;who hear about E4 for the first time -&nbsp;E4 is an effort to prototype next generation of Eclipse Platform.&nbsp;I'm&nbsp;excited with some&nbsp;E4 directions like ones&nbsp;related to "modelled"...]]></summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="css" label="CSS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="declarativeui" label="Declarative UI" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="e4" label="E4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="emf" label="EMF" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="expression" label="Expression" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javafx" label="JavaFX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rcpml" label="RCPML" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swt" label="SWT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wpf" label="WPF" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>I follow E4 discussion on <a href="http://dev.eclipse.org/mhonarc/lists/eclipse-incubator-e4-dev/"><font color="#ab0404">E4 incubator mailing list</font></a>&nbsp;since&nbsp;EclipseCon 2008, where <a href="http://wiki.eclipse.org/E4"><font color="#ab0404">E4</font></a>&nbsp;was announced. For those&nbsp;who hear about E4 for the first time -&nbsp;E4 is an effort to prototype next generation of Eclipse Platform.&nbsp;I'm&nbsp;excited with some&nbsp;E4 directions like ones&nbsp;related to <a href="http://dev.eclipse.org/mhonarc/lists/eclipse-incubator-e4-dev/msg00015.html"><font color="#ab0404">"modelled" Eclipse Workbench</font></a>, but in general it looks like&nbsp;E4&nbsp;for now overfocusing on declarative UIs and scripting support.&nbsp;</p>
<p>I strongly believe in importance and benefits which we can get from both declarative UIs and scripting and our company have some experience in this field (yep, we lead <a href="http://www.eclipse.org/dltk">Eclipse DLTK</a>:), which I would like to expose briefly&nbsp;before&nbsp;to continue. </p>]]>
        <![CDATA[<p>Contrary to thoughts of many Eclipsers (based on <a href="http://www.eclipse.org/dash/">Eclipse Monkey</a> experience) ability to develop Eclipse-based products completely in sciprting languages exists since 3.1 - for few years, since <em>IExecutableExtensionFactory</em> was introduced.</p>
<p>Technique is simple like this: </p><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;?eclipse version="3.0"?&gt;<br />&lt;plugin&gt;<br />&nbsp;&nbsp; &lt;extension<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; point="org.eclipse.ui.views"&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp;&lt;category<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;id="category.helloworld"<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;name="Scripting Demo"/&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp;&lt;view<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; category="category.helloworld"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class="org...JavaScriptExtension:/scripts/helloworld.js"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id="view.helloworld"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name="HelloWorld View"/&gt;<br />&nbsp;&nbsp; &lt;/extension&gt;<br />&lt;/plugin&gt;</code> <br /><br />
<p><em>JavaScriptExtension </em>(implements <em>IExecutableExtensionFactory</em>) 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). 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 :).<br /><br />In 2005 we&nbsp;started a project&nbsp;named <a href="http://kb.xored.com/display/rcpml/Home">RCPML</a>, which is about to develop Eclipse-based application completely in scripting languages. Besides scripting part&nbsp;project introduced&nbsp;declaraive UIs, CSS support, etc.<br /><br />From end-user perspective UI definition in XML-based declarative language looks like:<code><br /><br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;?eclipse version="3.0"?&gt;<br />&lt;plugin&gt;<br />&nbsp;&nbsp; &lt;extension<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; point="org.eclipse.ui.views"&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp;&lt;category<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;id="category.helloworld"<br />&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;name="Scripting Demo"/&gt;<br />&nbsp;&nbsp; &nbsp; &nbsp;&lt;view<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; category="category.helloworld"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class="org.rcpml...RCPMLExtension:/views/helloworld.xml"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;id="view.helloworld"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name="HelloWorld View"/&gt;<br />&nbsp;&nbsp; &lt;/extension&gt;<br />&lt;/plugin&gt;</code><br /><br />And View code itself:</p>
<p><code>&lt;?xml version="1.0"?&gt;<br />&lt;ui:view xmlns="http://rcpml.org/swt" <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:ui="http://rcpml.org/ui"&gt;<br />&nbsp; &lt;label&gt;Hello World&lt;/label&gt;<br />&lt;/ui:view&gt;</code></p>
<p><code></code>&nbsp;...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.<br /><br />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. <br /><br />Besides this we support both CSS for layouting and components styling: please look at "classical" Eclipse forms tutorial <a href="http://kb.xored.com/display/rcpml/RCPML+Forms+Tutorial">"ported" to RCPML</a>: <br /><br />CSS for layouting example: </p>
<p><code>&lt;ui:view xmlns="http://rcpml.org/forms" xmlns:ui="http://rcpml.org/ui" xmlns:core="http://rcpml.org/core"&gt;</code></p>
<p><code>&nbsp; &lt;core:style type="text/css"&gt;<br />&nbsp;&nbsp;&nbsp; form#myform {rcpml-layout:grid;rcpml-layout-columns:2;}<br />&nbsp;&nbsp;&nbsp; form#myform &gt; hyperlink {rcpml-colspan:2}<br />&nbsp;&nbsp;&nbsp; form#myform &gt; text {rcpml-fill:horizontal;rcpml-grab:horizontal;}<br />&nbsp;&nbsp;&nbsp; form#myform &gt; checkbox { rcpml-colspan:2; }<br />&nbsp; &lt;/core:style&gt;</code></p>
<p><code>&nbsp; &lt;form id="myform" title="This is RCPML Form"&gt;<br />&nbsp;&nbsp;&nbsp; &lt;hyperlink&gt;Click here&lt;/hyperlink&gt;<br />&nbsp;&nbsp;&nbsp; &lt;label onclick="javascript: this.color=#ff0000"&gt;Text field label:&lt;/label&gt;<br />&nbsp;&nbsp;&nbsp; &lt;text/&gt;<br />&nbsp;&nbsp;&nbsp; &lt;checkbox title="An example of a checkbox in a form"/&gt;<br />&nbsp; &lt;/form&gt;<br />&lt;/ui:view&gt;</code></p>
<p>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 <a href="http://www.zend.com/en/products/studio/">Zend Studio for Eclipse</a> uses RCPML-based properties view and dialogs. If it's interesting for&nbsp;you see RCPML-based UI in action at second part of this <a href="http://media.xored.com/ecldemo/ecldemo.html">screencast</a>... so I'm a little bit aware of the problems and ideas related to modeled UI and scripting.</p>
<p><font style="font-size: 1.25em;">Is this important for E4?</font>&nbsp;</p>
<p>Definitely both declarative UI and scripting could be a huge benefit for Eclipse, and according to my current expertise I'd vote for EMF to be used for UI modeling instead of DOM... however many things shall be worked out. W3C have everything necessarily for years: DOM event model, JavaScript bindings, CSS formalized, etc...</p>
<p>I&nbsp;appreciate this discussion and direction very much, but having that RCPML stuff done (and as I mentioned, ability to script your plugins without a line of Java code already exists), I&nbsp;do not think that this&nbsp;is a good&nbsp;direction for E4: there is no conceptual changes, and both declarative UI/scripting can be introduced in Eclipse 3.5&nbsp;(including fully scriptable workbench with mininal API changes). </p>
<p>If E4 is going to be true next-generation, we need a</p>
<p><font style="font-size: 1.25em;">Conceptual shift for UI paradigm...</font></p>
<p>As for me, this shift must be from underlying OS widgets-based approach (<a href="http://www.eclipse.org/swt">SWT</a>-style) to UI decomposition down to 2D (3D) primitives and rendering to canvas (as we see in WPF). Conceptually JavaFX and WPF are 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 decompose down to rendering primitives such as lines, brushes, and fills. Everything they need is a canvas, and their performance is just impressive. (Intersing that rendering to canvas will break all the borders between SWT and <a href="http://www.eclipse.org/gef">GEF</a>). Modern UI layer must be able to render UI models to canvas, and SWT looks redundant with its dependency on underlying platform components. <br /><br />I'm very happy to see modelled UI discussion at E4 list, and I'm agree with most points there. But did anyone ask a simple question: "how E4 will render button, or text-edit control"? And corresponding question: "what is a physical button from E4 standpoint"... It seems like everyone silently assume that SWT will handle this... From my side, if E4 will physically treat button as underlying OS widget (e.g. GTK) - I'd prefer to consider JavaFX for my non-tooling projects (and who knows how many people will switch to Netbeans later)... <br /><br />I&nbsp;hope discussion on new concepts will be raised soon...</p>]]>
    </content>
</entry>

<entry>
    <title>Is not E4 too late?</title>
    <link rel="alternate" type="text/html" href="http://blogs.xored.com/e4/2008/04/is-not-e4-too-late.html" />
    <id>tag:www.xored.com,2008:/blogs/e4//3.8</id>

    <published>2008-04-12T17:22:35Z</published>
    <updated>2008-04-24T18:39:36Z</updated>

    <summary><![CDATA[Few weeks passed after EclipseCon 2008 but I'm still&nbsp;thinking on&nbsp;E4. 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...]]></summary>
    <author>
        <name>Andrey Platov</name>
        <uri>http://www.xored.com</uri>
    </author>
    
    <category term="e4" label="E4" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="eclipsecon2008" label="EclipseCon 2008" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="expression" label="Expression" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="javafx" label="JavaFX" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="silverlight" label="Silverlight" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="swt" label="SWT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wpf" label="WPF" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.xored.com/e4/">
        <![CDATA[<p>Few weeks passed after <a href="http://www.eclipsecon.org/2008/">EclipseCon 2008</a> but I'm still&nbsp;thinking on&nbsp;<a href="http://wiki.eclipse.org/E4">E4</a>. 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 <em>"we do not know details but it will be cool"</em>. 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: <em>"guys, why do you so happy? do not you think E4 is very late?.. probably too late"</em>.</p>]]>
        <![CDATA[<p>As for me - I left EclipseCon with dark thoughts about Eclipse future. There are two names made me unhappy: <a href="http://www.microsoft.com/net/wpf.aspx">WPF</a> and <a href="http://sun.com/javafx">JavaFX</a>. Nevertheless I'm aware of WPF and JavaFX exists I did not paid attention to them. After looking inside I started trust Sun/MS marketing people and
believe that any of these two technologies can start new age&nbsp;in
building user interfaces. Both WPF and JavaFX very similay and both are definitely rethinked how UI shall be developed. I feel that Microsoft and Sun went far ahead&nbsp;<a href="http://www.eclipse.org/swt">SWT</a> (as well as ahead other "classic"&nbsp;widgets based OS UI). <br /></p>
<p>For me eclipse is everything during past 5 years: my work, my hobby, my hopes... I can find everything I need among Eclipse technologies. 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 <em>years</em>. They done, E4 did not started.</p>
<p>Folks, we talking about to run E4 on desktop OSes and to support web runtimes such as Flash, they own that runtimes (Java and WPF/<a href="http://silverlight.net/">Silverlight</a>); we talking about new programming models for UI; they own new technologies introducing new programming concepts for UI (JavaFX Script and WPF/<a href="http://msdn2.microsoft.com/en-us/library/ms752059.aspx">XAML</a>) 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. Microsoft already shipping <a href="http://www.microsoft.com/expression/">Microsoft Expression</a> WPF tooling and we're awaiting JavaFX design tools, which will be interoperable with Adobe products this year.</p>
<p>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.....</p>
<p>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? Will be there a switch to JavaFX? For now it looks like Eclipse do not even bother to catch it. If there will be no switch to JavaFX, can Eclipse Foundation commit enough resources to develop alternative but comparable technology (SWT+? RAP 2.0?) and relevant tooling? <br /></p>]]>
    </content>
</entry>

</feed>
