On Aug 25, 2006, at 1:19 PM, Slide wrote:

From what I understand SWT is much better as it is a wrapper of the

If you're not already aware, making a statement like this is an excellent way to start a flame war in Java circles. ;-)

There are two legitimate ways to pursue writing cross-platform applications:

1. Use a cross-platform GUI that tries as hard as possible to be completely pixel-consistent across all operating systems. This is the Swing approach. While the waters are muddied as Swing also includes look-and-feels that try to emulate the native platform, Swing's ability to provide a consistent, cross-platform look is its key strength. The advantages are that you don't need to worry about designing forms that look good with different font rasterizers, widget dimensions, and so forth. Layout managers are the best solution we have for this problem, but they are not a perfect solution. Disadvantages include that apps look different than native apps, that they may be slower as the cross-platform toolkit may be doing the drawing, and so forth.

2. Use the windowing toolkit of the native platform. This is the AWT/ SWT approach. Key advantage is that apps look native and can potentially take advantage of unique features of the native toolkit. Disadvantage is that the app looks rather different on each platform and you have to take this into account while layout the the UI, etc. Further disadvantage is that creating new widgets can be a real problem as you have to take a tremendous amount of care in making them appear native on each OS, else the advantage of this approach is significantly diluted.

This is a summary of the issues; there's a deeper and much richer set of nuances and issues to be taken up should this debate be seriously considered.

native windowing toolkit for the platform (WinAPI on Windows, GTK on
Linux, etc). This would seem to me to make the fonts, etc look as good
as native applications.

Sun didn't weigh the decision to implement their own TrueType and Adobe Type 1 rasterizers lightly; that's some expensive and complex engineering. The decision was one of many trade-offs and in the end, their customers pushed them towards a solution that guaranteed cross- platform fidelity.

Interestingly, Apple's Swing implementation has the underlying OS render its fonts (in most cases).

As far as font quality goes, Swing missed the boat on sub-pixel anti- aliasing, which is one reason why OS X and Windows (and now I understand some/all Linux distros) look so gorgeous with font rendering. That's fixed in Java 6. There are yet more font rendering features that OS X and Vista support that it will take Java some time to acquire, however.

In any event, SWT vs. Swing is a more complicated debate than "mine is better than yours." :-)

Ben

_______________________________________________
Ldsoss mailing list
[email protected]
http://lists.ldsoss.org/mailman/listinfo/ldsoss

_______________________________________________
Ldsoss mailing list
[email protected]
http://lists.ldsoss.org/mailman/listinfo/ldsoss

Reply via email to