Talk:Standard Widget Toolkit

From Wikipedia, the free encyclopedia
Jump to: navigation, search


This is still an "SWT vs. Swing" article. Every section contains a "SWT does this ... but Swing does that ..." sentence. Does the Wikipedia page for Swing contain a reference to SWT in every paragraph and a description of what Swing is not?

There are many factual errors. Erich Gamma did not design SWT. Ports to new platforms for SWT take longer because Sun must first port Java to the platform before an SWT port can begin. In the process of the port, AWT faces exactly the same porting issues as SWT and must be recoded to call the new GUI API for the platform. Swing cannot run without AWT, which must be ported.

James Gosling is a Sun Employee and hopelessly bias against the SWT. Sun has waged a media battle against Eclipse (and SWT) for some time now and James Gosling has been part of it. The equivalent battle has not been waged by, IBM or any other company.

The API of SWT is not based on Windows. For example, the Windows TreeView widget is programmed using SendMessage(), TVM_INSERTITEM and other win32 concepts. None of this appears in the SWT API.

SWT has been ported to Windows WPF. 11:59, 20 June 2007 (UTC)asdf

Comments made before the major rewrite (21 April 2006)[edit]

Why does the SWT page contain "criticisms of SWT" when the Swing page does not? As I pointed out below, there is FUD surrounding performance on non-Windows platforms. The Swing page does not contain FUD about "Swing is slow", should it?

There is also FUD about SWT being slow on non-Windows platforms and problems on the Mac. This was part of a marketing attack from the NetBeans group inside of Sun. The criticism that SWT does not interoperate with AWT/Swing on the Mac is particularly unfair. It could equally be said that AWT/Swing doesn't interoperate with SWT (or wxWindows or Avalon on Windows for that matter).

It would be an advantage for the understanding of the development of Swing and SWT to have some dates or years, the artikle does not gve any date. Since when does Swing and SWT exist, launch year for each major release?


it represents the third main option for developers when creating desktop applications to execute on the Java platform

The article should say what the other two are. -- Tarquin 16:56, 15 Jun 2005 (UTC)

There is way too much discussion about the Swing/SWT snit and not nearly enough about the architecture, design, and capabilities of SWT. What is it, what does it do, why does it matter? This article seems written to appeal more to the "SWT isn't Swing" evangelists/trolls. -- Invalidname Aug 7 2005.

Isn't it spelled 'favor' or 'favour'? (Answer: 'favour' is British English and seems to be the Wikipedia standard)

This article is very dissapointing. I cam here to learn about SWT, no to listen to a debate over its relative merits with Swing. Anon Apr 7 2006.

Comments made post rewrite (21 April 2006)[edit]

The bug report about SWT being slow on non-Windows platforms is really about Eclipse being slow. Azureus, RSSOwl and other SWT applications don't have this problem. SWT is not Eclipse.

By all means, break out the "Swing vs SWT" part. Also, "SmallTalk" is "Smalltalk" and Erich Gamma didn't design SWT. Have you looked at the source code? Yetch! Despite the fact that Gosling is the designer of Java, his comments about SWT resembling the win32 API and other things he said are dead wrong. Again, go look at the SWT API and source and the win32 API in the MSDN and you decide. He is clearly a bias source due to his position at Sun.

As for the "slowness" bug report: if you can find some conclusive benchmarks, please include them so that we can have an objective source on SWTs speed on various platforms. They would obviously be very nice to have here. I haven't found any, but maybe I'm not looking hard enough. That said, there are a lot of people who seem to be alleging that "SWT is slow on x platform", and FUD or not, counter-arguments need inclusion.
The same goes for the source code: just one reference from someone arguing that the SWT implementation is messy and we can put a rebuttal in there; maybe something like "however, others such as John Doe disagree alleging that <quote>".
As for Gosling, yeah, he probably is biased. We could make a note of this, but I'm just worried about it coming off as bias on our part. He is however a fairly important figure and so his comments need to be included (as readers will probably want to hear the opinions of an important figure on this topic, right or wrong), unless we can find some sort of objective truth that proves that he's not making any sense.
By all means however, jump in and be bold: you can edit the page as much as you like, and the worst that will ever happen is someone removing the edits you make if their biased or incorrect. GeorgeBills 08:03, 25 April 2006 (UTC)

There are no such thing as conclusive benchmarks when an API is large. Also, it is difficult to get write benchmarks from UI code. For example, Swing queues repaints for later so some benchmarks are meaningless. In the case of SWT, it runs on so many different platforms (more than Swing if you count Photon), you are benchmarking the operating systems. For every person who says, "SWT is slow on x platform", you can find another that has no problem. In any case, they are all talking about Eclipse which is a huge pile of multi-threaded Java code, not SWT applications.

BTW, the father of SWT is Steve Northover, not Erich Gamma.

SWT speed: if we can reference someone saying all this somewhere then we can include this - forum posts would probably be as low as we can stoop for referencing, but if an SWT developer has said something about all of this somewhere then we should definitely include that in order to represent that viewpoint - do you know of anywhere where we can find a reference like that?
Design (and the Gamma thing): most of those comments are coming from the referenced link, which is just one guy (plus he's not claiming that Gamma is SWTs father, just that the design was "heavily inspired" by him. Ref: [1]. Again, some conflicting comments that we can reference would be great for balance if you feel the article needs that.
Why is there a discussion of this at all here? The Swing and AWT Wiki don't talk about the speed of either toolkit or contain a similar discussion. In order to be fair, please move all this controversy somewhere else.
Mainly it's an encyclopaedia article, not an opinion piece: if people are arguing x (and they are), the fact that people are arguing x needs to be included. By all means however, if some very intelligent, famous or experienced (re: SWT) person somewhere has made a comment which rebuts their claims we can include it, and quotes from more knowledgable sources are obviously going to get preferential treatment. GeorgeBills 01:27, 27 April 2006 (UTC)
Ok, but please google on "swing java slow" (1,060,000 hits) and "swt java slow" (143,000 hits). Don't get me wrong. I'm not claiming that one is better than the other or that google proves anything, just that the equivalent controversy exists around Swing. To call out this discussion only for SWT and in the main SWT wiki, is a bias.
You can add something to either page if you want: maybe if we split Swing vs SWT into a seperate page we can link to it from both pages. I'm by no means claiming that there's absolutely no-one out there arguing that Swing is slow, that really needs to be addressed if the Swing article isn't covering that. GeorgeBills 01:15, 29 April 2006 (UTC)
Ok George, go ahead and do it. The SWT page should just say what the thing is with links to the other stuff. Once you have done that, I'll review everything again.

Why does "Simplicity" appear in both the "Advantages of SWT" and the "Disadvantages of SWT" section? Just where should it go? 16:03, 26 April 2006 (EDT)

Hrm, I thought it was both an advantage and a disadvantage: if you're writing a simple app, extraneous complexity is just going to get in the way. But if you happen to need just one piece of that "extraneous" functionality then suddenly simplicity isn't going to look so great anymore. Maybe that isn't clear enough in the article, or maybe you disagree. I agree that the way it's presented is messy at the moment though, any ideas? Feel free to be bold and make some format changes. GeorgeBills 01:30, 27 April 2006 (UTC)
Yeah, I know what you mean. I guess what I was trying to say was what you pointed out already, that its current presentation is quite poor. I mean, duplicating that whole paragraph word-for-word in both sections just seems kind of weird to me. 12:02, 27 April 2006 (UTC)

Page repeats itself in many places (apart from describing something as advantage and disadvantage which is ok, but should be illustrated in a less lame way than just copy paste..). I think the proposed splitting to a versus would help this situation. --Nkour 01:10, 29 May 2006 (UTC)

It should be emphasized in the rewrite that manual deallocation of resources using dispose() is only required for SOME types of SWT objects, like fonts and colours.

Slashdot article[edit]

More Slashdot on SWT . Please go and read all the discussion over Gosling and SWT. He is claiming that only runs on Windows (which is false) and spreading FUD. There are also posts from people claiming they have no problems with the speed of either Eclipse or SWT on non-Windows.

Still biased in favour of Swing[edit]

Why does the SWT article contain 'Advantages and disadvantages of SWT' when the Swing one does not contain 'Advantages and disadvantages of Swing'? There are plenty of legitimate disadvantages to running an emulated widget toolkit like Swing that could be discussed in the Swing article but are not. This shows a bias towards Swing. All material that compares the two toolkits should be moved out to another article SWT vs Swing.

Sample Code missing[edit]

sample code is missing. Swing has it


There is a lot of repetition in this article between the overview and "Introduction to SWT". A lot of repetition is present in this article between the overview and "Introduction to SWT". There should be less repetition between the overview and "Introduction to SWT".

Amusingly, you're the third person to say that.  :P Feel free to improve things. GeorgeBills 14:11, 1 June 2006 (UTC)

Criticisms section[edit]

Hello! The "Positive and negative criticisms of SWT" section and any discussion of SWT vs Swing need to be moved out. It show a bias in favour of Swing. Why doesn't the Swing wikipedia article contain the 'Positive and negative criticisms of Swing'? Either remove it or add the equivalent section to the Swing entry.

I'm not fond of SWT, but I do have to concur. Perhaps we should have a separate page Java GUI Comparisons looks at the history of AWT, how Swing came along and the limitations of Swing that drove IBM to create SWT.
* Swing memory use can be pretty bad; believed to be an artifact of its use of nested classes for callbacks (for which we need citations)
* Swings complete emulation of the native platform gui can lead to a lag between a new OS release and swing apps looking good in it. Examples: XP, vista. Wherease SWT may adapt faster because it uses more native code.

There's a fair bit of politics in these discussions too; the IBM/Sun battle for dominance of Java developers comes into it. One nice thing about SWT here is that its been open for longer; open source Java implementations like Kaffe/classpath dont have to reimplement SWT the way they do with swing; they just run SWT as is. —The preceding unsigned comment was added by SteveLoughran (talkcontribs) 18:25, 10 February 2007 (UTC).

Serious cleanup required[edit]

Let's see:

  • no pretty pictures. We need pretty pictures. NOT OF SWING.
  • dozens of unnecessary references which don't help with the article. There are almost more references than statements.
  • no timeline, other than a "history of Java UI toolkits" which isn't really the same thing. The SWT history should only mention SWT/AWT to put itself in context, not give them equal billing.
  • The Introduction section contains almost no content.
  • The comparisons / criticisms section belongs back on whatever Slashdot thread it was copied from at this stage. It certainly shouldn't dominate the article, and a dozen or so extlinks is completely unnecessary.
  • The documentation section is weasellier than Weasie the Weasel. Criticism should be kept to its own section at this stage until it can be written up properly.
  • Serious need for general copy-editing and article convention conformity throughout.

I'll try to get started on this. First step will be to delete about half of it, I think. Chris Cunningham 00:17, 6 September 2006 (UTC)

I definitely agree regarding:
  • pictures
  • the timeline
  • an expansion of the introduction
  • less weasel words in the documentation section
  • copy editing
However, I think the criticisms need to remain, even if scaled back. There is a lot of argument over which is the "better" toolkit, and I feel that that argument needs to be summarized somewhere, maybe in a separate article linked from this article and the Swing one. GeorgeBills 04:31, 6 September 2006 (UTC)
I've unified the criticisms sections to provide an overall view which is much less like multiple sympathetic POVs. Anyway, article's looking a bit healthier than it was. Chris Cunningham 10:47, 6 September 2006 (UTC)
Added a Hello World example. But the article needs serious help. (Aaron Farr 05:02, 13 September 2006 (UTC)
I don't see how a code example helps one to understand the subject matter. As for cleanup, I've done quite a bit of restructuring to it lately, it used to be a lot worse. Chris Cunningham 08:48, 13 September 2006 (UTC)
The code example was added since the Swing article has a very similar code example. Do you think we should remove the one in the Swing article?
The one on the Swing article doesn't add anything much of value either, so it should either be comprehensively annotated or removed. Chris Cunningham 15:17, 14 September 2006 (UTC)
I like the images from the main SWT page [2]. The accompanying sourcecode claims 'Eclipse Public License v1.0' found at [3]. Can we use those images? --Afwas (talk) 10:47, 15 March 2009 (UTC)


Way, way better. My only complaint is that James Gosling, Sun employee and vocal supporter of NetBeans (the competition for Eclipse), is hopelessly bias when he makes statements about SWT or Eclipse. Sun is currently locked in a marketing battle with (and possibly IBM), attempting to aggressively push NetBeans on Java developers (see any of the keynotes by Sun employees from this year's JavaOne, including James Goslings). I think James Gosling might even be directly involved with NetBeans (director in charge of tools at Sun).

"J2SE 1.0" is not a valid product terminology (Dec. 2006)[edit]

The term "J2SE" was not created until JDK 1.2 and so cannot be used to refer to earlier versions. The use of the term "J2SE 1.0" is not a valid terminology since "J2" refers to "Java 2" which is, by definition, JDK 1.2 or later. Both the JDK 1.0 and JDK 1.1.x product lines can only be referred to as "JDK" and not as "J2SE".

For reference see

The term "J2SE 1.0" should always be rewritten as "JDK 1.0". The term "J2SE 1.1.x" should always be rewritten as "JDK 1.1.x".

Misunderstood reference[edit]

The 11th citation has been misunderstood, IMO. 'SWT has been referred to as a "Write Once, Test Everywhere" solution, similar to those provided by languages such as C.[11]'

In the original page it clearly states AWT is WOTE, doesn't make any reference to SWT, which would be WETE for what I know now.

The problem is I'm not sure, as I'm learning about those technologies now, please check it.

What's a history section without a single date/year?[edit]

I came to this page curious about when SWT was made, and surprised to see that the history section contained no dates. It does contain a relative ordering with AWT and Swing, but a year would be nice, too. Mbarbier 04:08, 17 October 2007 (UTC)

Image copyright problem with Image:Eclipse-logo.png[edit]

The image Image:Eclipse-logo.png is used in this article under a claim of fair use, but it does not have an adequate explanation for why it meets the requirements for such images when used here. In particular, for each page the image is used on, it must have an explanation linking to that page which explains why it needs to be used on that page. Please check

  • That there is a non-free use rationale on the image's description page for the use in this article.
  • That this article is linked to from the image description page.

This is an automated notice by FairuseBot. For assistance on the image use policy, see Wikipedia:Media copyright questions. --09:13, 9 September 2008 (UTC)

Seems to be advertisement in outside of java section[edit]

The outside of java section seems to be a mostly word-word advertisement for PureNative software, specifically this page:

Should it be deleted?

GotPSP (talk) 03:48, 23 November 2008 (UTC)


The cited article about SWT vs Swing performance is too old. It covers Java versions 1.4/5 and Swing's performance has been improved significantly after that. SWT could also be faster now. Also underlying platforms such as Wayland vs X, GTK 3 & Clutter may affect the results. Overall, the comparison doesn't reflect the current state anymore. 2001:2003:F638:A000:BE5F:F4FF:FE76:8CA0 (talk) 06:16, 28 January 2016 (UTC)

Also citation number 8, regarding SWT performance on non win32. Refers to a news site page, where SWT is mentioned in the comments, and one comment has the opinion that non win32 SWT has bad performance. Other comments on that same page argue in favor of SWT's performance. Hardly reliable. (talk) 15:35, 15 March 2016 (UTC)

Sample does not run[edit]

$ java -cp /Users/Desktop/swt-4.6.3-cocoa-macosx-x86_64/swt.jar:. HelloWorld
***WARNING: Display must be created on main thread due to Cocoa restrictions.
Exception in thread "main" org.eclipse.swt.SWTException: Invalid thread access
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.widgets.Display.error(Unknown Source)
        at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
        at org.eclipse.swt.widgets.Display.create(Unknown Source)
        at<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
        at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
        at HelloWorld.main(
$ java -version -cp /Users/Desktop/swt-4.6.3-cocoa-macosx-x86_64/swt.jar:. HelloWorld
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)

DouglasHeld (talk) 06:40, 19 April 2017 (UTC)

External links modified[edit]

Hello fellow Wikipedians,

I have just modified one external link on Standard Widget Toolkit. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

You may set the |checked=, on this template, to true or failed to let other editors know you reviewed the change. If you find any errors, please use the tools below to fix them or call an editor by setting |needhelp= to your help request.

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

If you are unable to use these tools, you may set |needhelp=<your help request> on this template to request help from an experienced user. Please include details about your problem, to help other editors.

Cheers.—InternetArchiveBot (Report bug) 04:33, 26 July 2017 (UTC)