E4/SWT Browser Edition

From Eclipsepedia

< E4
Revision as of 16:40, 30 March 2011 by John arthorne.ca.ibm.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Stop.png
This page is obsolete
SWT browser edition is no longer under development. You may be interested in looking at the Orion project instead


SWT Browser Edition

Widgets are coming to the web. You can see them in web technologies like AJAX (Dojo), Flex and Silverlight. These are all "zero-install" technologies. In the case of AJAX, JavaScript, the DOM and HTML are built into the browser. Flex is a pervasive technology, downloaded and installed in the majority of browsers. Silverlight (WPF) is present on most desktops due to the popularity of the Windows operating system.

SWT is a mature and powerful widget technology with a highly portable and functional API. Many Eclipse based products have both a desktop and a web component. In order to run on the web, two code streams are required. SWT Browser Edition can allow code sharing, reduce maintenace and bring Eclipse based applications to the web using native web technologies.

  • How can code be shared between the desktop and the web?
    • One approach is to run Java on the server and remote the UI like X-Window. This is the approach that RAP (Rich Internet Platform) uses. A JavaScript library (qooxdoo) is running on the client, rendering widgets that are manipulated from Java running on the server.
    • Another approach is to run a Java-like language on the client. Because Java itself is not "zero-install", a JVM can't be used. Instead, Java is cross-compiled to Flex (ActionScript), Dojo (JavaScript) and Silverlight (.NET) technologies. This is a "GWT-like" (Google Web Toolkit) approach.
  • What are the critical browser technologies?
    • Flex, Silverlight and Dojo have been identified. What about Qooxdoo and GWT?
  • What new API's are needed?
    • Modern desktop and browser widget toolkits support effects and animation. These API's (and more?) need to be added to SWT to keep it interesting and modern.
  • Which desktop API's don't work in the browser?
    • The browser can't wait. That means event loop API's like readAndDispatch() or sleep() can't be implemented. What can we do instead?
  • In order to cross compile, a JCL (Java Class Library) is needed. How big is this?
    • We currently have a CLDC superset (but not that much more). If we restrict the size of the library, downloads will be smaller and faster. If the library is too small, it won't be useful.
  • Is code ported to SWT Browser Edition or rewritten?
  • Is there a JFace Browser Edition?