Skip to main content

SAF and JDK7

Posted by alexfromsun on August 19, 2009 at 8:11 AM PDT

Hello Swing community

After much discussion it's become clear that the Swing Application Framework API as it is today hasn't reached
consensus and we feel still needs further design work done.

Since the SAF API was committed to milestone 5 of JDK7 and that time is already here,
this date is now impossible, and we need to decommit SAF from any specific JDK 7 milestone.




SAF is dropped for JDK 7

Hi guys, I've just looked at and was shocked that SAF was dropped for JDK 7.
So my question is: What the hell??
The only hope for better expirience in programming with Swing is dropped. Does this mean that there will be no SAF in JDK 7? What is the reason for that decision?

What discussions?

What discussions are you referring to? I cannot see any discussion about this topic on the developer's or user's list of the framework. And in general, as already other people stated in comments on your blog, nobody did see any mail from you there for months. My questions about unclear versioning and wrong files in the file store of the project remain unanswered since weeks now. Shouldn't an openly developed, open source project care about it's user most, and discuss things with them? Apart from that: I don't think it's necessary to include the framework in the JDK, the framework needs further development, and a clear path for it's future so people can rely on it. But that does not need to be bound to jdk development. Henning

Uffffff !! I don't know what to say, simply I'm SAD, really sad of how things run in those big companies. For me, today RIA should be programmed in ONE general purpose compiled language, say Java, C#,C++ all what you want. I don't like those AJAX messup HTML,javascript, and another language to access the database layer. For me AJAX means learning a lot of things to to a simple java Applet, with the risk of those dinamic language typos !!!! So please give AJAX a kick in the ass !!! JavaFX: I tested, did some memo game to learn adn I liked how effects are easy done. javafx should be run in its own jvm (I mean in the desktop of course) to keep it Simple, small and downloaded as fast as Flash !! THings that I dont like from javafX: Code gets unreadable when your GUI is complex. it's a bit slow, and we need admin rights on the desktop to install ! !! So what can we do ???? Lots of problems for a simple developer like me who just wants the job done ! I think we need a 'java browser' like google did with chrome... dont know !! (Sorry for my bad english :-))

"There is a big need for something like SAF ..." Jazz Desktop Application Framework is a powerfull alternative to plain Swing, Eclipse/Netbeans RCP and SAF. It's free for personal use and commercially supported.

I think Sun did a good job on Java 1.6 Swing. I don't understand the point of JavaFX though. Custom shaped widgets are so 2001. Where is the marked ? Feels like J2ME angst. Even my website uses Swing, Java 2D and ImageIO to create live graphics.

> What I really do not understand: Why are there no reactions for all these posts here and the trouble from the key people at Sun Sun is in disarray, no employee know if their project and job is going to continue or not. Just look at the JRuby guys who fled. Before that of course, an impressive list of people (incl. Hans) had already left. Even though he did not mention it directly, it looks like he simply got tired of how things were run - the last 6 months or so he was tied up in JavaFX. Sun's motto seems to be "we do it all, but nothing really particular well". Harsh perhaps but come on, look at their history and how they i.e. screwed up Java in the browser to the point that it's now Java's bastard child JavaScript setting the agenda and making headlines.

"RCP is in many use cases much oversized. " In fact, that's a myth. RCP (at least, NetBeans Platform) can be very small. As small as you need it to be. And most applications get bigger anyway, therefore a framework that you can scale upwards together with the needs of your applications is far preferable to one where you run into a brick wall as soon as you need something as simple as... a docking system, for example.

Many people (also here) thinkt tat SAF / JSR 296 is just another Rich Client Platform. It itsn't - SAF and RCP have different goals and targeting an different audience. There is a big need for something like SAF which just provides the basic UI application infrastructure. RCP is in many use cases much oversized. What I really do not understand: Why are there no reactions for all these posts here and the trouble from the key people at Sun (Alexander, Richard, ...)? It's a shame when they just say "More work needs to be done". They've done almost nothing until today. Why they're not using public forums and discuss the problems they have? Probably because there are no problems when nothing get's done...

The way Sun/Oracle behaves with Swing is outrageous. We are not talking of a small test project but of the most commonly used GUI technology of the IT world. I have not the smallest interest in JavaFX because I think the idea to have a special language only for GUI programming is daffy. Above that declarative programming of advanced GUIs is a bad idea. And simple declarative GUIs are already made with HTML and AJAX. No need for something else, be it Flash, Silverlight or JavaFX. I only want to learn general programming languages such as Java or Scala and do not want to remember the peculiarities of languages used for a single small purpose. Really not. Above that, JavaFX might be appropriate for interactive television but not for cross platform applications distributed by web-start. And that is the main application of Java fat clients. I have never heard of a PR department as incapable as that from Sun. It looks as they are killing Swing with no need and they got me really angry on their company.

Sun/Oracle isn't abandoning Swing. I work for Sun, just like everyone else on the NetBeans team, and we're all working in Swing...

(Disclaimer: I'm a JavaFX enthusiast.) I'm not deeply informed about SAF but there seems to be some redundancy. The Java desktop industry already have not one, but TWO major RCP frameworks, one from Sun/NetBeans and another from the Eclipse Foundation (much more mature and arguably more popular than NetBeans'). Even Swing itself is far from representing a de-facto standard, due to Eclipse's SWT/JFace/RCP/etc. Sun and Swing users may have little love for these competing frameworks from Eclipse, but cannot ignore them. Yeah, JavaFX may have been the last nail in Swing's coffin, but it was not the first and up to date even the major stab, that "honor" belongs to Eclipse. Not to mention other competing toolkits for Java ME (LCDUI, LWUIT - both also from Sun! - plus Android) because Swing was not designed with any level of architectural scalability, so a reasonable subset for mobile platforms was impossible. (AGUI was CDC only, and a fiasco AFAIK. And the latest smartphones, post-iPhone, heavily benefit from a new generation of toolkits anyway.) New application-level frameworks like SAF and BB would arrive in a ecosystem that's already divided and leaking developers to non-Swing toolkits and to non-Java platforms. And the community's inability to evolve the Java language is another major issue; the BB and SAF frameworks could be much better with proper usage of facilities like like closures and language-level properties... but no, we can only have "coin-sized" language enhancements, and just a handful of these. I looked at BB and it's totally horrible compared to JavaFX's properties and binding, so all empathy I might have for Swing/SAF/BB vanishes when I consider that the evolution of that platform can only happen by piling more and more layers of complex APIs, without necessarily hiding any complexity that already exists in the current APIs which are already massive.

Sad as it might be, I'm glad to see that Sun decided to "do this right" instead of shipping a half-assed solution.

Sad to see that Oracle/Sun is abandoning Swing. Swing is great and could have been improved but the toyish JavaFX route was chosen instead. Good luck!

@geertjan: Well there are no guarantees of course, but this is Java, where the community is encouraged to participate and join. Considering this was a full JSR backed by Sun, with spec lead of no less than Hans Muller, the risks seemed minuscule. But point taken, I will choose C# next time. Properties and the whole component model is already there and works. I had just hoped Swing would've gotten a little friendlier but it seems fairly evident Sun is betting everything on JavaFX which frankly feels no less complete than JSR-296.

I just hope that Swing in general is not getting out of the focus and this is just one brick breaking away. - That said I am very glad to hear from geertjan, that there is active development on the Swing side. As I see more and more revival of thick clients maybe this will reflect in again more focus on Swing by Sun/Oracle.

Sad news, but not really surprising. While I am actually happy that JSR-296 is NOT included in JDK7, I am really disappointed about the progress made. It's been several months since Alex blogged about SAF being the number one priority for the Swing team... And what has happened? A couple of minor bug fixes? I really hope someone pics up the good foundation in and makes something useful out of it. Because it really is a good start. .k

osbald, the end user of industrial-size applications doesn't care so much about JavaFX. They want their applications to be flexibile and reliable, while developers of those applications don't want to need to recreate the wheel. That's what the NetBeans Platform is for and it continues to be developed, on a daily, hourly even, basis, including its Swing components. mrmorris, if you currently have products on top of JSR-296 while JSR-296 has consistently been "in progress" (and "always struggling"), then the decision to base your products on JSR-296 was always questionable.

> I don't see how all this is such a big loss, since Swing developers have had a Swing application framework all along: It is if you invested time and effort into it and currently have products using it. I'm at the same page as jede, I think I know why this happened (Sun preoccupied with JavaFX) and to be honest since Hans left I did not expect JSR-296 to move anywhere considering the other JSR's that have been dropped. For isntance, has JSR-296 been rewritten since such as to NOT depend on JSR-295?

geertjan, I guess you mean SAF and not the general slow decline of Swing by a thousand cuts - because Netbeans RCP is still very much Swing based. Unless you've got a RCP re-architecture up your sleeves much like Esclipse e4 is moving to adopt browser platform & javascript. Even then all of this is set against a general decline in interest of Java, in which case not even JFX will help you. Will be interesting to see how Oracle intends to reverse the trends and which APIs are deemed worthy of saving.

Well that's a big slap in the face of people who have invested their time (a lot for some) in JSR-296. I don't talk about us users of the framework, but I specially think of Karsten (and a few others, non Sun employees, involved in this Expert Group. While we are at Swing funerals, should we bury the JCP altogether as well? You can do whatever you want Sun/Oracle, don't expect all Swing developers to switch to JavaFX (I'd rather go to the "dark side"), because what JFX has to offer is useless compared with what Swing has offered us for years. I think (I hope?) Oracle has made a very bad calculus when deciding to continue the JFX effort, it will bite them (and all current and future JFX users) some day, probably sooner than later. Now I'm gonna infer on what I should do with my numerous Swing-related open source projects... Maybe I'll soon get a lot of time to do something else, more interesting, learn the guitar for instance, I don't think Gibson or Fender will someday decide to change the way guitars are tuned, by exchanging the positions of all strings although everybody is currently satisfied with the current disposition;-) This probably will be my last complaining post because such complaints in the void are such a waste of energy! Jean-Francois

I don't see how all this is such a big loss, since Swing developers have had a Swing application framework all along:

@geertjan, I do respect your

@geertjan, I do respect your heroic Swing/NB defense, but the big loss for Swing is the fact that SAF again has turned out to be vaporware like BB or many other Sun "initiatives" like JWebPane. There is no substantial Swing innovation perceptible at the moment. The Swing party seems to be over, so the party people start rushing to the other cool clubs in town...

I was thinking the same as jede, I dont think lack of consensus was the issue more like a lack of commitment from Sun. Honestly Alex you've only posted to the appframework mailing lists twice in the last year and one of those was back in March to express how SAF was now the Swings teams number 1 priority and youd not leave it six months between posts!! ..what happened there? where you or Sun lying to us? As the work on SAF hasn't happened can we expect new Swing features in Java7 instead? or are you saying the Swing teams resources where simply wasted in this case. Certainly I'd like to see some Windows 7 integration improvements for desktop Java. What's *really* new for Swing developers in Java7? what can it do that we cant with the current Java6 and the JXLayer jar?

On a similar note where does this leave the other Swing roadmap features also on the roadmap. Back at Devoxx SwingX datepicker and SwingX painters where also promised. I also know very little dialog has been happening between the developers and Sun since you cut funding to the Swinglabs projects. Is that going to be the next bit of news you'd care to share? I trust the Swing version of JWebPane and access to JavaFX from Java/Swing interop are running to schedule..? though the Netbeans team seem none to impressed..

OK I know you're going to give me the shifting priorities talk yet again, but after the last brohaha over Swinglabs Richard, Amy & Josh where all at pains to reassure us that Swing/Enterprise apps were important, the community was important and you guys weren't going to keep us in the dark.. But thats not been the case has it..? Will apppframework be seriously picked up post JDK7 or are we looking at another beanbindings? ie. so utterly abandoned the community has been forced to create their own fork. These feel like endings not bright futures, another nail in the Swing coffin and it seems Swing loses out in every one of these priority changes.. Should Swing now be considered a legacy API? because that's the message you guys are continuing to send.

These news are too sad :-( But where was this big discussion? It wasn't on the SAF mailing list. Was there any significant development since Hans Mueller has left the project and Sun? I don't think so - at least not in the public... This news sounds like SAF will not be included in JDK 7 for sure - am I right? Bye, Stefan

I was under the same

I was under the same impression. And at least one EG member I know well confirmed, there was little common and transparent joint effort involving the entire EG regularly. I have created Swing based modular/application based concepts with coffeeBeans back in 1999. Also played with SAF a little for demos supporting other JSRs, so if I know what issues exist I'd be happy to help with it (even as EG member if necessary ;-) Let me know if there's something you need help with. Cheers, Werner