RE: [Java-gnome-developer] Development Status
Brought to you by:
afcowie
From: Jeffrey M. <Jef...@Br...> - 2002-07-15 15:42:43
|
> Is there a possible synergy between Java/Gnome and IBM-SWT library > (eclipse.org)? What's Java-Gnome position (technically and > strategically) regarding IBM-SWT/JFace, which seems to run well on > Gnome2.0 ? There is a lot of synergy between these projects. In fact, I am currently working on the SWT project at the same time as working on java-gnome. There are a few problems with SWT that are being addressed. They are: * SWT uses the GTK 1.x tree and list widgets (SWT team is working on this) * SWT uses the GTK 1.x text widget (I am working on this) * SWT/GTK does not have a consistent approach for NLS (SWT team is working on this) * SWT relies on being able to utilize z-order. GTK doesn't support z-order. The fix that was put in place is probably contributing to poor performance. (This is an issue that I intend to bring up at this week's GNOME Summit) * The SWT and GTK model for Composite/Child (SWT) and Container/Child (GTK) are very different. As a result, SWT/GTK was forced to introduce hacks to handle widget sizing and positioning. This is contributing to the poor performance. (I also hope to bring this up at the GNOME Summit) * SWT doesn't have close to full coverage of the APIs that are provided by GTK. SWT also doesn't provide any coverage for the GNOME APIs. (See my proposed solution below) I intended to wait until my next release to put a proposal out to the community but since you have touch on this topic I think I will do it now. SWT will continue to mature at a rate that is much faster than java-gnome due to the fact that IBM/OTI has full-time resources working on it. Also, due to the fact that SWT runs natively on several platforms it will gather much greater industry support. At a low level, the way SWT is accessing the native peers is superior to the approach taken by java-gnome. It would appear that SWT would be an ideal choice for somebody wanting to write a java application that will run on GTK. You would also have the added ability to support Motif, Win32, OSX Carbon, and other platforms. The primary problem with SWT is that it is not currently intended to be a complete/robust GUI framework. Not all widgets supported on the host operating systems are supported on SWT. Also, although JFace does provide some higher-level facilities it is primary focused on providing a framework for the eclipse platform. At the same time, java-gnome attempts to map directly to the underlying APIs provided by GTK and GNOME. This makes the java-gnome class library huge and very complex to use. A higher-level object-oriented API is needed in order to make java-gnome really viable. My proposal is for a new project (or a significant morph of java-gnome). This new project would use SWT as it's foundation and would address the above mentioned issues. This new project would not only focus on GTK. It would also provide support for Motif and Win32 (possibly others). Perhaps over time some of the code produced by this new project could be incorporated into SWT and some of it would stay independent of SWT. A proposed task list to start the project follows: 1) Identify lead developer for each of the platforms: GTK - Jeff Morgan Motif - ?? Win32 - ?? 2) Define the new API and create an object model to be presented to the community: -I have spent a lot of time this year studying various GUI frameworks (QT, GTK, Motif, MFC). I would like to begin a discussion with the developers on this new project to decide what functions should be included in this new GUI framework. Perhaps it would be a combination of the best features of several of the mentioned frameworks. The result of this discussion would be an object model and a plan for development. These artifacts would then be presented to the community at large for comments and suggestions. 3) Once the design and plan are finalized create begin the effort. > Do you know what Sun strategy is regarding Java integration into Gnome > (Solaris will use Gnome as Desktop Environnement, but then which > language will Sun recommend to build GUIs - as far as Swing > is obviously > not fast enough to build advanced smooth GUIs ? Sun would have to answer this question. At one time there was much discussion about providing GTK peers for AWT. I don't know where this discussion went. I would be very interested in hearing from the users of java-gnome about the proposal put forth above. Although it is a significant departure from the current direction of this project I would be interested in your views if it is the correct direction. -Jeff |