A Heartfelt Ramble on Swing & JavaFX

At last night’s JavaOne JDK BOF, the question was posed, “What are the JDK plans for Swing?”      Mark Reinhold noticed me skulking in the audience and bounced the question: “Aim?”.  Caught a bit off guard, I answered a pat “it’s still there and it isn’t going anywhere”.   The poser of the question stormed out (I don’t blame him), as that wasn’t the answer he wanted to hear, so I’d like to elaborate.

In working on JavaFX the last couple years and occasionally posting about it, I’m accustomed to the hate mail from Swing fans.    In many ways I’m heartened by the public support for a technology on which Sun itself was so fickle.    Swing is a great toolkit.   It’s flexibility and extensibility enables developers to build  amazingly rich and complex applications.   It’s understandable that the Swing community would be incensed about the way Sun prematurely unveiled an infantile JavaFX as if it could replace 10+ years of steady enhancements and tuning of Swing & Java2D.   2007-2009 were excruciating years for all of us.

But Java and the JDK are under new stewardship now.    If you’re at JavaOne or reading the tweetesphere, then you know that Oracle is deadly serious about it’s plan to resurrect  Java and the JDK as the cross platform solution for the future.    The proof of course will be in execution over the next year or two, but this is a practical company who isn’t suffering from an identity crisis and knows how to make money from software.   A sleeper detail from Thomas Kurian’s keynote is that NetBeans will be the Java development IDE of choice going forward.   This is very good news for Swing, ensuring it’s support and upkeep for a long time to come.

But that’s still not what Swing developers want to hear. Which brings me to the actual point of this rambling.     User-interface technology is on a collision course with graphics.   For Java to be a viable client platform in the long haul, it must be inherently capable of the sort of visual delicacies that you see in iPhone/iPad applications.     As I’ve stated many times, it’s possible to achieve some of this using Java2D tricks in Swing (e.g. Kirill’s very nice Trident library), but it requires sophisticated gymnastics; it’s not a natural fit.     The crux of the problem is that Swing  is rooted in the antiquated AWT, rather than being integrated into the 2D coordinate system.   Fixing this would require some massively incompatible changes and once you march down that path, well, you start asking yourself what other incompatible improvements should be made ….pretty soon the remodel becomes reconstruction and you realize that a new foundation is really needed.

Enter Prism.  If you saw Jasper’s “Scott Pilgrim” demo at Kurian’s keynote then you’d understand what a hardware-accelerated graphics pipeline with a UI rooted in a 2D/3D scene-graph can do.    Sure, most UIs won’t need to kick hundreds of rotating media cubes around, but they will certainly need to translate, rotate, fade, and blend UI elements in interesting ways.   JavaFX (Prism + scene-graph + UI controls) is about making it very natural and easy to construct a modern interface and allow your graphics designers to make it pretty via CSS.

And now that we’re converting JavaFX to a proper Java library, you don’t have to learn a new language to use it.  Additionally, Oracle has committed to developing the UI controls under open source and our JavaFX 2.0 development plans are very clearly layed out.    Much of the JavaFX stack has already been ported off of script, so this is all quite real and the team is ecstatic to be doing Java again – it’s a far better language for toolkit development.   Moving to Java should also make it vastly easier for us to support embedding JavaFX in existing Swing applications, so continued investment in Swing applications is preserved.

And to those of you who are upset that we are killing JavaFX script, I say that I feel this pain also.   Like most developers who gave JavaFX script a chance, I too became an addict and will miss it as a venue for constructing applications (not libraries).    But restating Richard Bair’s excellent follow-up in words from the The Princess Bride: “It’s not dead.  It’s only mostly dead.”  And if you’ve seen the movie, then you know that ‘mostly dead’ can be resurrected with the right loving care;  I recommend attending Stephen’s Chin’s JFXtras session on Wednesday.

Many of you will undoubtedly say “it’s too late”, “developers have already moved on”.    That may be the case for some developers and projects, but unlike our beloved predecessor, Oracle sells a lot of applications, and those applications will need great UIs too.  It’s an ambitious plan.  I don’t expect words or slick demos to change your mind.  The burden of proof is now on us to deliver.

About these ads
This entry was posted in Uncategorized. Bookmark the permalink.

68 Responses to A Heartfelt Ramble on Swing & JavaFX

  1. Danno Ferrin says:

    Remember, Apple was dead in the water in 1997. After dramatic management changes they’re doing OK now.

    http://gizmodo.com/368903/wired-on-apple-pray-to-evil-genius-in-11-years

  2. Ryan says:

    Is Swing going to get at least some improvements such as a web browser component (e.g. JWebPane) and fixes of long-standing bugs?

  3. Thanks for sharing your throught with us.

    []‘s

  4. rk tumuluri says:

    Amy,

    Thanks for this “honest update”. I always find your postings very very very usefull. Glad that you did’nt abandon the “mother ship”, i.e Java.

    I am one of the few foolish (brave ?) adopters of JavaFX. After spending 3+ months on it, I abandoned it and came back to Swing. I would like Oracle to spell out their plans for Swing. (near, mid, long term …).

    I think the JavaFX evangelists have done a very poor job in engaging the community. I hope that this changes.

    Cheers …
    /rk

  5. Thomas Baur says:

    Thank you for clarifying some strategic thoughts.
    However, while I can clearly see the motivation behind this, we (the Java Devs in the field) are still in need of a vivid GUI-toolkit which enables us to implement robust business UI’s beyond the bells and whistles of the “contemporary” mobile UI feeling. As such, I personally would like to see some additional effort spent in giving some love to the Swing API. There are parts of it in desperate need of care.

  6. Tbee says:

    Developers most definitely have not moved on; there is still a lot of Swing development going on. This change finally brings JavaFX technology to where it most probably will be used; along side (and probably in the long run) replacing Swing. Swing 2.0, easier too use and more powerful. Taking on Flex and not Flash. A waste of the time spent, but better late than never.

  7. Rhys Parsons says:

    I’m very excited about the proposals for JavaFX. Anyone who has worked with Flex or Flash knows that Swing just won’t cut it for modern UIs.

    I too liked JavaFX Script (although I only really dabbled) – in particular the ability to construct object graphs with object literals, the simple binding syntax and the boiler-plate-free property syntax.

    In my mind, the future belongs to Scala, not Java. It brings a terseness of expression that Java lacks and is able to re-create some of the joy of JavaFX Script in way that Java simply won’t be able to.

  8. Richard Osbaldeston says:

    Thanks for the ramble one of the things thats become so infuriating is the lack of any regular communication from official quarters (even though this is your personal blog & opinions;). Alexp hasn’t been blogging or posting since the start of the year nor Danny Cowards planetarium. So the ‘Swing’ JSRs postponed to JDK8 (jsr296 & SwingX) probably wont go ahead? seems jsr295 has already been dropped.

    One hole in this logic is you say JavaFX is designed to enable Java developers to create rich iPhone like interfaces with the JVM. But JavaFX isn’t available to be used on any of the popular smartphones nor tablets where such rich interfaces are the norm. Mobile JavaFX has been shelved as JavaFX relies on GPU enhancements these devices lack.. you have to question the logic as j2me just inst enough anymore. Yes I know youve teased a HTML5/JS pipeline, but given the reliance on GPU enhancements and how rich effects are terribly unforgiving towards any kind of lossy conversion I understand how challenging this new technology is likely to be.

    Is the message that from JavaFX 2.0 this is the recommended UI Framework for Java and Swing should only be considered for legacy support? Mixing JavaFX & Swing dosent seem very practical, using the odd self-contained component (browser, mediaplayer) might work as a heavyweight activex control might, but having two sets of focus/keyboard/inputmethods/look&feels in one app strikes me as twice the pain. Mixing widgets would leave you with a horrible Frankenstein (conflicted look&feel) app much like mixing AWT & Swing in the past.

    Will JavaFX be included in the JDK/OpenJDK as the preferred Java UI framework, can we ship it with our own application jars? The way its currently distributed makes it feel like a fly-by-night kinda addon that only exists on the fringes. The current setup dosent underline Oracles commitment.

    Finally whatever happened to the Java warehouse / appstore? The best way to convince us refuseniks is to show JavaFX kicking ass, where are the apps? where is the market for Java desktop apps (rich or not)?

  9. Tom says:

    Odd that your posts never mention the NetBeans Platform in spite of its popularity. That is what will enable JavaFX to enter the enterprise… as someone I heard speak yesterday at JavaOne said: “The enterprise doesn’t care about the moving yellow circle demos. The enterprise needs to work with large sets of data, which is what the NetBeans Platform (i.e., a modular Swing app framework) is made for. And JavaFX will fit in perfectly, now that it will be made available as a Java library, to prettify the display of data within the large structures that the NetBeans Platform provides.”

    Why is this vision popular outside of Sun/Oracle but not inside Sun/Oracle?

    • Amy Fowler says:

      @Tom: NetBeans has always been my IDE of choice and we are working closely with that team to ensure JavaFX2.0 is toolable from the start. I’ll happily post more about it in my blogs when relevant.

    • Amy Fowler says:

      Yes, I guess it does. Sorry — my brain was on the IDE — I fully deserved that comeback. I don’t know why the NetBeans platform is under-sung. I have never used it personally, but only because I’m not usually building large apps.

      • Tom says:

        OK. :-) When it comes to IDEs, I prefer IntelliJ IDEA. But, when it comes to building large enterprise apps, there’s no other option but to use NB Platform, if you’re using Swing (and soon, JavaFX, thanks Oracle). I do believe the only place where real money can be made from JavaFX is in the enterprise, where large apps are being created. The only way for JavaFX to get to the enterprise is on top of a framework (big apps care more about docking than about animations), so NB Platform seems an obvious way to bring JavaFX to the enterprise.

      • Jason Wright says:

        Amy, that’s the central problem with your organization, I think. Unlike the real world, where large business apps are needed, your organization is focused on creating tools for the kinds of demo-style apps that you yourself create, e.g., that’s where Swing Application Framework and JavaFX fit in very well. In the enterprise (e.g., banking, oil, etc), both of those projects are almost completely meaningless. My hope is that Oracle will turn the Java client work you’ve been doing towards a direction where it is actually needed — the enterprise, which requires predefined components for business needs such as authentication, together with predefined constructs common to all business applications in the Java client space, such as a docking framework. Fortunately, the Netbeans RCP provides all of the above already and you’re part of the company that owns it.

  10. Sinok says:

    The real question being, how do we manage to build real business apps (you know, boring stuff & all) with the JavaFx stack.

    Thos kind of apps usually involve tables (no such kind of beast in JavaFX as of now), forms (hello funky javafx layouts, a bit less reliable than FormLayout and others).

    Even though I agree that swing is kinda dated, and probably won’t be the framework of anybody’s choice in the year to come, nothing has been done to help the swing apps to migrate to javafx. Many functionalities gone missing, emphasizing the bling and forgetting the boring (but nonetheless lucrative) parts of the toolkit. I mean, do you really need all the bells & whistles that JavaFX bring for a market place app? Not sure. However a reliable and flexible table component is a must have for any business toolkit, and this one was totally forgoten (and still doesn’t exists as of now).
    How would you hope to sell an app to a business customer if you can’t provide a functional grid?

    • Amy Fowler says:

      @Sinok: I guess I don’t think business apps have to be boring. Studies show a direct correlation between aesthetics and user happiness/productivity. The competitive apps of the future (business or otherwise) will have nice UIs.

      But you can build nice enterprise UIs with Swing today and in the future you will be able to build them with JavaFX. We already have a JavaFX data grid control that is being ported from script to Java. And we have a bunch of layout changes in the pipeline (including a very nice Grid layout) that will make layout easier (with animation & CSS customization). But the pivotal word is “future”. If I had to ship an app in the next year I would use Swing.

    • surikov says:

      You can develop JavaFX business application already. See this JavaFX/database application:

  11. ijjzhao says:

    It’s a pity that Oracle couldn’t continue JavaFx script? But why on earth, for money saving or for technical reason?
    It’s too long to wait JavaFx 2.0 for us. Why not release JavaFx 1.4 with some more control, such as the Table view before the “great” JavaFx 2.0? Is it too difficult to do that? If so, the JavaFxscript should be dropped certainly? If not, the JavaFx team may pay more attention to the agile world to release more times with a long plan based.
    Maybe it’s the long-term release cycle that makes JavaFxscript dead but not by oracle.
    Hope the JavaFx script long live. At least give us Javafx 1.4.

  12. Thierry says:

    UNO : “The crux of the problem is that Swing is rooted in the antiquated AWT, rather than being integrated into the 2D coordinate system. ”
    —> I have never understood the mind of Sun on this. Why diddn’t Sun people got rid of AWT inside Swing long time ago.
    We developer do not mind to have an notbackwoardcompatibility of the next Swing release if it give API cleaness and performance improvement.

    DOS : “I don’t expect words or slick demos to change your mind. The burden of proof is now on us to deliver.”
    —> So much time and effort have been wasted on the last 3 years. Often, only startups can create a succesfull new language/tool the the public just falls-in-love with.
    Java was a sort of exception. Sun believed naively it could gamble it again with javaFxScript. Failed.
    —> With delivery please do not forget that to succeed in Internet-web-page, the cold-start-jvm MUST be faster.
    —> And please fix the warning panel (:”hehe could not trust this applet….please confirm ect…”) . This warning message must stay INSIDE the Applet panel and not be a Frame flying over as if it wanted to escape from my web page. Adobe Flash has fixed it already : When you go for example to “chatroulette” web site, the Flash-Applet ask you to confirm you wanna be filmed. Notice that this message stay in the Flash Applet. This is good behaviour from MPOV.

  13. So #JavaFX is dead, long live JavaFX.. okay.. actually the question is what to do with existing JavaFX Script code base?
    Do we have to +stop+ writing scripts, waiting for JavaScript 2.0 in 2011?
    Is the wise move to come back to pure Swing, to say goodbye to JavaFX ’till (maybe) 2011?
    ’till then, what about an OpenSourced JavaFX Script so we can continue to build apps without having to wait for what Oracle will serve us in 2011?

    • Amy Fowler says:

      You can continue to use JavaFX script with 1.3.1. As we port to Java, much of the core API is being preserved (especially in the scene-graph & controls), so porting from script to the Java apis should not be too difficult (and I say that after having just ported a *bunch* of script code). The place where it gets harder is in complex bind expressions and we’re working on ways to ease that transition too.

  14. Eric Kolotyluk says:

    I echo Rhys’ comment that the future belongs to Scala. I would rather see a Scala API for JavaFX – at least we could realize some of the nice language features of FX Script, but just in Scala.

    20 years ago I grew to love NeXTSTEP, the API design was great and Objective-C really made it fly. When I first started using Java I loved the language, but found AWT a disappointment. When Swing came along it was an improvement, but still awkward to use. Windows Presentation Foundation is not hugely better than Swing either.

    I think the JVM community really needs a fresh start with a UI framework independent of AWT/Swing designed from the ground up to mesh with a modern language like Scala.

  15. Duncan Mills says:

    Amy, I want to clarify one point that you make here that could be misleading. Oracle of course has several IDEs and serves (at least) two different communities. The Oracle Customer base, the folks who use Fusion Middleware, the database and so on, and of course the great Java community.
    Those communities have different needs and different priorities. As such Oracle’s direction here has not changed, our strategic IDE is JDeveloper, that IDE best serves the needs of the Oracle Customer community.
    NetBeans is also a strategic product for us, but it is aimed at meeting the needs of the Java masses who might otherwise have no interest in Oracle. NetBeans is core of course to promoting the use of Java and adoption of the latest and greatest features in the SDKs. You will not see see JDeveloper and the Oracle Enterprise Pack for Eclipse being dropped by Oracle in favor of NetBeans which could be a possible interpretation of your statement. Thomas was of course stressing specifically for the JavaOne audience how important we feel NetBeans to be in its assigned role, and assuring the community that it’s not going away.
    Any further questions, you have my email…
    Duncan Mills
    Product Management Oracle Development Tools

    • Amy Fowler says:

      @Duncan. I’m glad you’ve clarified this subtle point about Oracle’s Java tools strategy.

    • Todd says:

      Duncan Mills, I understand JDeveloper currently provides the most features/integration with Oracle specific technologies.

      However netbeans is clearly more robust, flexibile and is better equipped in terms of experience and models/patterns available making it a great base IDE or application platform.

      Plus many Oracle developers actually use netbeans rather than JDeveloper because some parts are quite unstable.

      It would make much more sense to migrate JDeveloper features to netbeans rather than spending enormous resources trying to preserve an old money making dinosaur.

      • Duncan Mills says:

        Todd, It’s great that as an Oracle customer you’re also a NetBeans fan. Do send us the feedback about what Oracle focused features you’d like to see in NetBeans.
        I’m puzzled by your “money making” comment though, we’ve not charged for JDeveloper for years and the support bundle you can by from Oracle covers all the IDEs in one go.

  16. Pingback: Swing Integration // JavaFX News, Demos and Insight // FX Experience

  17. JTx says:

    I cannot wait to put my hands on the first release. It will be great. My selfish view is that a great deal of effort must be put in *the* most important component: the table (fixed rows, tree table, custom renderers, efficiency, grouping, filtering, sorting, etc…).

    • Amy Fowler says:

      @JTx: TableView is already well underway and is our top priority for JavaFX2.0.

      • JTx says:

        Thx v much. I will port my etrading application to JavaFX as soon as the first SDK is available then. TableView will be the most important component for me.
        Would you have updates regarding the notion of docking like the one provided by JideSoft? If JavaFX can be embedded in Swing – there is no need for a JavaFX dockinf framework.

  18. edtechdev says:

    There already are javafx-like, declarative gui libraries for scala (see the svn repository), for groovy, and for java (apache pivot, javabuilders). But, there are also such libraries starting to emerge for html5 and javascript (scenejs, dojox.gfx, unveil.js, cake.js). And there are already many swing-like professional gui libraries for html5 and javascript, with support for the same features important in enterprise like rich controls and accessibility and layout managers (dojo toolkit, google closure library, YUI).

    I’m in education, and it’s hard to go with java now when you have issues like security dialogs, the file chooser like an above commenter mentioned, won’t run on smart phones or tablets, no reliable, up to date way to play video or audio or do 3D, etc. I taught a java multimedia development class 2 years ago, and now I’m teaching it using javascript and html5 instead.

    Where java had and still has the advantage was the tools like Netbeans – a visual designer, code completion (intellisense), project management, etc.

  19. Javawerks says:

    Thanks for the update, Amy. It’s truly appreciated.

    Like many, I’ve been using Swing since the beta in 1997. The hard work put in by the Swing team over the years, speaking for myself and others I’ve known, is greatly appreciated.

    I suspect it’s easy to conclude that JavaFx 2.0 has sounded the death knell for Swing. And, perhaps, it has. But I’m not so sure. For instance, global financial concerns are heavily dependent upon Swing, a dependency that will not change for at least a few years, despite the purported coming of JavaFx 2.0.

    Needless to say, many other concerns depend on Swing as well. With that in mind, when JavaFx 2.0 components are open sourced, perhaps, Oracle can open source Swing as well. That’s only fair to those who have invested countless developer-years in Swing.

    I found Duncan Mill’s comments most disturbing. Clearly, Oracle has divided loyalties between the Oracle and the Java communities. Sadly that actually stands to reason. Consequently, I feel that many developers will continue to leave the Java space.

  20. Gili says:

    I don’t understand. Is Prism JavaFX’s equivalent of AWT? If we use JavaFX (under Java) in the future, will we be rendering under Prism instead of Java2D and AWT?

    • Amy Fowler says:

      @Gili: Prism is more equivalent to Java2D (though java2D lives in the AWT package space). For JavaFX we have a “platform graphics (PG)” portability layer that currently plugs into either the AWT/Java2D/Swing stack OR the Prism stack. Certain features of JavaFX (3D) will only be available when running on the Prism stack.

  21. Amy,

    Thanks for your candid comments, during a difficult time, and dealing with a touchy subject.

    With everyone focused on JavaFX vs. Java/Swing/AWT, I think there is a more fundamental question which has still not been answered yet, and that is how java2d and scene graph rendering models will co-exist.

    I am greatly concerned with this, since there are many use cases where deferred rendering won’t work. I attended some of the JavaFX graphics sessions at JavaOne, and saw some general block diagrams which implied to me that the prism graphics stack was distinct from the current java2d stack.

    Based on my impressions from this year’s sessions, I am concerned that the latest hardware acceleration technologies will only be used in the prism stack, and that the prism stack uses a deferred rendering model.

    1. Are my assumptions mostly correct ?
    2. Where am I wrong if not ?
    3. What is your best guess (if you can give one at all right now) as to when some graphics stack roadmap will be made available ?

    Thanks,
    James

    • Amy Fowler says:

      @James: Java2D already uses hardware acceleration when it can and I’d expect that support to continue given Java2D’s core status in the JDK. However, you do bring up valid issues regarding retained vs. immediate mode rendering, as well as questions over future tuning of Java2D and I’d encourage you to keep pressing for the roadmap and I will make sure the right folks on our team see your plea.

      • Thanks Amy.

        What would be the correct and most efficient way to engage the Java2D/Prisim team ?

        I know I am not the only one with these concerns, and I am sure you don’t wish to drive developing the next generation Java Graphics Stack from your blog !

        Is there somewhere on java.net (ie SwingLabs) that I should be posting my questions to, do I need to contact a technical lead from Oracle directly, or could a new JSR be a possibility ?

        I wish that an announcement about this was made prior to JavaOne (I’m sure most Oracle people do as well), so that I could have resolved this while I was out there.

        Thanks again,
        James

  22. Fabian says:

    Well, I think that a Java API for JavaFX is the right thing to do. Especially when it comes to using modern hardware (multicore, 3D).

    As a developer of business apps I think there are three things Swing needs better support for:

    - Validation
    - Controls (Ribbon, Treetable, Table, Charts -> see JIDE Framework)
    - An application framework handling actions, docking, etc.

    I know that there are great frameworks out there but especially in terms of validation I think that there should be a better integration.

    • Tom says:

      Oracle already has a framework that covers the three items in your list. That framework is called “NetBeans Platform” (http://platform.netbeans.org).

      • pavan kumar says:

        Netbeans is a great platform for creating any non trivial swing application, but what about the hundreds of huge swing application that are already in production for several years.

        The only way things like docking ,controls(ribon,treetable) can be integrated into these apps , is if they are in the standard jdk , or from netbeans if available as a separate jar(which i think does not exist currently). The closest is obviously the swingx library , which thanks to open source swing contributors ,still thrives.

      • Fabian says:

        I guess I’ve been using Eclipse so much that I simply didn’t recognize NB as a platform. I’ll definitely give it a try…

      • Amy Fowler says:

        And a great commercial option is David Qiao’s JIDE framework which has docking, lots of custom components, and swing extensions.

      • P. Jockers says:

        Yeh, Netbeans RCP is the only viable solution for the Java desktop. It’s widely adopted and proven in every possible way.

  23. Pavan Kumar says:

    Amy,
    How do Oracle plan to monetize from JavaFX in the distant future ?

  24. kolotyluk says:

    Amy, thanks again for all your clear and valuable information and insights on JavaFX in your many other posts. Also, this particular post really was heartfelt and revealing.

    Has the FX team ever given any serious thought to using Scala instead of creating a new language? Java is becoming too cumbersome now, and the evolution of new language features is glacial at best.

    While I liked JavaFX Script as a language, it was also lacking in many things (i.e generics). It also did a few things that I really didn’t like, for example sequences could not contain other sequences because they were flattened. I heard several arguments for why they were flattened, but none of them ever convinced me it was the right thing to do.

    I really think when they created JavaFX they should not have tried to create a new language, rather they should have taken a hard look at Scala and built what they needed using Scala APIs and extensibility features.

    While there is/was a ScalaFX (SFX) project (and Fresca) as far as I can tell there has been no activity for a year or so. I hope someone takes up the challenge again.

    An interesting paper is Deprecating Observers

    Also, JavaFX Script never was able to deal with concurrency properly. I’m sure there are better methods available in Scala for dealing with concurrency issues in the UI: actors, continuations, functional programing, immutable objects, etc.

    My wish is that Oracle or someone could take the basic FX and Prism technology and recast it into a Scala API and environment. If there is still anything missing from FX Script, you can probably build what you need in Scala as it is a very scalable language.

    Cheers, Eric

    • Amy Fowler says:

      @Eric – Thanks for the pointer to the paper — a very interesting read indeed.

      On the issue of languages, the primary reason we are moving the toolkit apis to Java is to enable alternate languages to build DSLs for JavaFX and I certainly hope and expect Scala to be there.

      And I agree with you about Sequences — the flattening and null-collapsing were sometimes convenient, but ultimately prevented them from acting as suitable data structures for many things. Our Sequence collection in the Java port doesn’t automatically flatten or collapse.

      • Ingo Maier says:

        Sorry, I am a little late to the story. Just found out about your post. I am the author of the above paper and I would like to make sure that our ideas in Scala integrate well with the JavaFX 2 APIs. It would be great if there’d be any chance for an interaction between your team and us at EPFL.

        Cheers,
        Ingo

      • Eric Kolotyluk says:

        @Ingo, thanks for the response…

        As a veteran of Java and Swing I have been asking myself over the years if we can’t do better than this? I tried Windows Presentation Foundation and found they did just not get it.

        How can we make beautiful user interfaces if we have to build them with crap? In the 1st generation there was Xerox Star and Macintosh. In the second generation there was NeXT. I’m still waiting for the 3rd generation.

        FX hinted at a better future, but Java is dead as a language, and most UI developers are content with the current crap.

  25. Pingback: JavaOne 2010: review, thoughts, and what happened with JavaFX (part 2) | Maxa Blog

  26. Pingback: Java desktop links of the week, October 11 | Jonathan Giles

  27. Pingback: JavaFX links of the week, October 11 // JavaFX News, Demos and Insight // FX Experience

  28. softwarevisualization says:

    What about rich text and HTML? The world communicates with text- that’s not going to change in the next 200 years, at least. To my mind, text support is the number 1( 2 and 3) pressing issue if you want to create a business application.

    Here’s my minimum wish list-
    + read/write XHTML,
    + read/write rich text (not to say .rtf) possibly just XHTML + some level of CSS
    + Unicode support

    Of course Swing had all this except read/write XHTML. I understand that Swing is dependent on AWT and AWT is not being carried forward so the AWT and AWT dependent libraries that provided these services are not going to be available in the new framework.

    So what are the plans, scratch that- what is the road map and timetable for delivering XHTML, rich text and Unicode?

    Great post. Sun had JavaFX swimming in marketing speak gobbledy-gook from the get go. I understand it now- it’s a library and a framework. Awesome.

  29. Ryan says:

    what is the road map and timetable for delivering XHTML, rich text and Unicode?

    A roadmap with the things you listed is available at http://javafx.com/roadmap/.

    • softwarevisualization says:

      Thanks, I did look there and there is a little about how rich text will not be available on the next release but is planned for the one thereafter, as I understood it.

  30. softwarevisualization says:

    Here is the closet thing to an XHTML JavaFX roadmap I was able to locate

  31. Brian says:

    I have been developing software for a long long time. I did a little java several years ago and didn’t think much of it (Back when Netbeans was Forte). But I got a contract with a client late last year who insisted on using Java. This platform has undergone a lot of improvements. I’ve done a lot of sophisticated graphics apps and was dreading using Swing, but as it turns out it has been a pretty good experience. My client had some P.O.S. homegrown “framework. I convinced them to try using the Netbeans Platform and this has been hugely successful. I hope Oracle puts more emphasis on this product.

    I do have one suggestion about Swing that has been difficult for me to live with. I have to draw very intricate vector images which take a long time to draw sometines. It’s not unusual for an entire image to take 10-20 seconds to draw. In addition I have to draw various images in several JInternalFrame windows simultaneously that may or may not be overlapping. The single threaded java gui combined with the lightweight swing controls which don’t clip to their unobscured area (they draw synchronously in the zorder of the component stack allowing the higher components in the zorder to obscure the lower layer) have made me develop my own threaded draw threaded draw routines which show the layers as they are being drawn so that the user can interrupt the drawing and re-zoom or pan before the images are complete. When you all redo Swing please consider implementing the componets as heavyweight components so that I can continue to be an applications developer and not a low level systems one. This is especially important if Swing stays single threaded. Actually the only way Swing could probably be multithreaded would be to implement heavyweight components anyway.

    I’m not sure what JavaFX does but if it has heavyweight controls &/or multithreaded GUI support then I want it!

  32. v.omprakash says:

    Aim,
    The netbeans RCP looks complete in all respects and covers all aspects of swing thus making any further investments in swing unnecessary. JavaFX looks to be the way forward and Oracle would do well to point to a migration path from swing to javaFX.

    cheers,
    V.Omprakash

  33. John Bannick says:

    Folks,
    Suggest you look at indeed dot com and compare the number of open jobs for Swing v. jobs for other RCP technologies. NOTHING ELSE MATTERS.

    When, and only when, that changes, I’ll end my 12-year love affair with Swing and go on to the next winner.

    John Bannick
    MIT Lincoln Laboratory

    • Sandor says:

      I have to agree with you. Eclipse RCP, SWT, etc. all down the drain. On the other hand Oracle is doing nothing to make Swing right. Instead, they are trying to force a half baked new API down our throat in the name of competency for iPhone. How can anyone convince an enterprise customer with a turning cube demo that it is what they need?

      Aim,
      is JavaFX 2.0 going to be at leats half as reliable concurrency wise as Swing? The current version of JavaFX is a concurrency nightmare. I had to ditch it and go back to good ol’ Swing. Is it going to be any better in version 2.0?

  34. Anders Lind says:

    From a user and java and web developer point of view with the eyes directed into the uncertain future…
    If there is a way then I’ll like to say:

    For the Java VM:
    reuse the vm in the browsers to use and understand java classes
    merge with parts of the vm’s if needed to do the work.

    For the Java graphics:
    make the graphics native to the browsers
    make it stylish with css
    so normal web elements e.g. can blend in on java programs
    Let javascript and java live in synergy, natively!
    Dont live like a plugin – No, be within!
    Be a “part of” and not an outcast.
    What I mean: skip these intermediate applets and the like in web content.
    Let the new GUI be build upon “simplistic” web elements e.g. canvas and/or svg elements. Let the magic happen here.

    Vice versa let Java desktop programs instead use e.g. WebKit and/or other browser engines and visual interfaces to draw the content.

    The Java libraries:
    And finally let the java libraries be downloadable through the browser seamlessly through existing browser technologies – there are plenty of possibilities to make that happen dynamically. E.g. using javascript.

    In that way Java becomes more standard and native to browsers.

    Get it? Else please ask – I’ve been thinking about this for some years now :-)

    anders.lind at gmail

  35. JTx says:

    Will Oracle provide an update re. Java on Mac now that we know that SJ is going to deprecate everything that is not Apple on the Mac?

  36. Eric Kolotyluk says:

    I heard that the FX Team plan to do usability testing of the API. Does anyone know if they will invite outside parties in evaluating the API before it is cast in stone, and if so how people can participate?

    I think the idea of doing usability testing of any API is truly wonderful. For those of us who have to actually implement UI the usability of the API is crucial to how productive you can be, and to how enjoyable the implementation process is.

    Cheers, Eric

  37. Pingback: Roadmap Oracle para Cliente pesado « Java Mania

  38. crokusek says:

    To me, the scripting language of JavaFX is very forward thinking. For a person coming from a non-java background, what a breath of fresh air. Besides its descriptive nature and new features, having a language difference between the sometimes “confusing cause its so massive” java framework really helps someone get their feet wet.

    If there wasn’t much adoption outside of the java community it may have been because of the misconception that JavaFX was just a library built on top of java. That’s what I had thought as a C#/.NET guy for 3 years until I tried out an example. What a great alternative to Silverlight/Flash/html 5 canvas etc.

    Perhaps there just weren’t enough praises because it was so under the radar to those outside the java community. If a goal was to expand the user base to non-java programmers, it may have failed, but I don’t think it was because of the technology itself. Perhaps that wasn’t the goal…?

    Chris

    • Amy Fowler says:

      Everyone I know who took the time the learn/use JavaFX script came away a big fan of the language (me included), so I’m with you on all points.

    • Eric Kolotyluk says:

      I tried using FX Script early on and I really liked it. In particular it was a breath of fresh air in language design and UI implementation. It was just so much easier to express things with fewer lines of code. I don’t see that FX Script particularly failed as it opened my eyes to a possibly better future in UI implementation.

      My only serious beef with FX Script was that it was ‘yet another language’ to master. It was also difficult to write a complete application in FX Script – I know because I tried. In the end I had to bend concurrency rules using JFXtras to keep all my code in FX Script and not have to write Java utility classes.

      I think the decision to create a Java API for FX was the better compromise for the moment. I still look forward to the day when I can write UI code in Scala using underlying FX technology and get most if not more of the same language environment benefits from Scala.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s