• Home
  • About
  • Sample Apps
  • Videos
  • Jazoon 2009: JavaFX vs. Android

    June 24th, 2009

    Session title: JavaFX/Android: Competing technologies or ideal partnership?
    Speakers: Andreas Hölzl (Canoo), Mike Mannion (Canoo)

    Two geeks discussed Mobile/RIA stuff over coffee and while Mike played the part the JavaFX-guy, Andreas was the Android-man in this short talk. 

    P1010126
     
    Mike first talks about the JavaFX Mobile architecture, which builds on JavaME. The JavaFX API available to tje JavaFX Mobile developer is a subset of the whole JavaFX API available on the desktop. 

    Bild 1

    Andreas goes on to present the more sophisticated Android architecture, which first of all has an applicaton framework while we see a big hole at this level on the JavaFX side (see slide).

    Bild 2

    Mike agrees that the application framework is missing on JavaFX. He mentions that both he and Andreas have done iPhone development in which the the importance of the iPhone’s app framework plays a significant role in achieving look and feel consistency across applications.

    On the other hand, Mike notes, JavaFX has a very impressive designer-developer workflow, which enables you to transfer static Photoshop or Illustrator design to the netbeans environment. JavaFX can subsequently be used to add functionality to the design. Andreas points out Android’s architecture also permits one person to work on the UI design (working with an XML document) whilst another person works on the functionality (Java code).

    The two would-be actors raise the question of how one might possibly get a JavaFX program running onthe Android platform. Two technical scenarios are described, one involving a cross-compiler (cross-compiling JavaFX Script to the Android-compatible Java code), the second involving a port of the JavaFX runtime. The moral of this story is that no matter how you look at it, getting JavaFX to run on Android would be technically challenging. Android was designed from the ground up with its own intentions and philosophy. It would be miraculous if JavaFX would simply work on top of this.

    A poll of the audience at the end of the talk reveals that most of the audience thinks that Android will win over JavaFX mobile (in the market place) because of it’s mature and already commercially established architecture.


    Jazoon ’09: Wednesday Keynote from Danny Coward, Sun

    June 24th, 2009

    Title: Java SE and JavaFX RoadMap
    Speaker: Danny Coward, Chief Architect, Client Software

    Danny begins be showing the JavaFX roadmap…

    Towards the end of the timeline: “JavaFX.next”
    What on Earth could that mean?
    In any case: JDK 7 release due early 2010.

    Top 5 JDK SE 7 features

    1: Modularity
    Long overdue, the current JRE is around 14MB and contains a wide range of APIs. The average app only requires a small proportion of these. It also increases startup time.
    Danny points out a number of weaknesses in the CLASSPATH concept. This will apparently be addressed by a low-level modularilty system entitled Jigsaw.
    http://openjdk.java.net/projects/jigsaw/jcp.prg/en/jsr/detail?id=294
    The concept externalizes the package depenencies to a module file… which reminds me of Eiffel’s solution to this issue which is donkeys years old.

    2: Broadening the JVM to accelerate runtimes
    DaVinci Project should result in a new bytecode model, which enables dynamic invocation, lightweight method handles and a variety of other optimizations.
    http://openjdk.java.net/projects/mlvm

    3: Java Language Additions
    Project coin will result in a few small language enhancements:
    http://openjdk.java.net/projects/coin
    The switch statement will work with Strings.
    Multiple Exception handling
    catch (final IOException | ServletException e)

    Improved type interence will remove the need to double-declare generics so:
    List l = new ArrayList()
    Becomes:
    List l = new ArrayList ()

    Elvis operator eliminates a significant cause of Java’s verbosity:
    String s = mayBeNull?.toString() ?: “nothing”;

    Integer ival = …
    int i = ival ?: -1; // will be set if currently null

    Must confess, this is not what I understand by the Elvis operator, but it looks useful nevertheless.

    4: Four new I/O APIs
    These include: New filesystem API, File notifications, Directory operations, Asynchronous I/O. The latter permits an IO task to be defined using a Future, the Future delivering the result at a later point in time.

    5: New GC
    New garbage collector “Garbage First” should result in predictably low pauses, few full GCs and good throughput. Can be accessed in Java SE6 update 14 using:
    -XX:+UnlockExperimentalVMOptions –XX:+UseG1GC

    This will be switched on by default in JDK 7.

    Danny notes at this point that numerous other (small) features are also part of JDK 7.

    JavaFX 1.2 Top 5
    Danny begins by stating that Sun is trying to make up for lost time with JavaFX (as I have blogged in the past).

    More platforms
    JavaFX 1.2 runs on more platforms i.e. Linux and Solaris in addition to Windows and Mac. LG TV (purchasable in South Korea) incorporates JavaFX1.2. Finally, the HTC developer phone is also mentioned. Danny states that he hopes that phones will be available to consumers on the coming months. Don’t we all!?

    New features
    New widgets, charts, plus a new look and feel. L&F is possible via CSS, which is obviously a whole load easier than creating an L&F for Swing.
    Improved layout management
    Layout management: There are three new layout managers, but I know from experience these don’t yet cut it for non-trivial B2B apps.
    There follow a series of nice looking demos, which highlight that JavaFx is scenegraph based.

    Improved perforamance
    Performance up: Realtime streaming for media is now supported, which improves media startup significantly. Various optimizations in generated code and scenegraph. Bytecode footprint is down 30%.

    Improved data handling
    More and better ways to use data. RSS and Atom feed support. A simple asynchronous framework is also included, plus a simple data storage API.

    One final demo is really impressive: Using the bubblemark demo, Danny demos that JavaFX 1.2 performance is significantly better than Silverlight. Now that I would not have expected!


    J1 Session Blog: Extreme GUI makeover: Hybrid Swing and JavaFX

    June 4th, 2009

    In the past years the Extreme GUI Makeover sessions proved extremely informative, entertaining and popular. Every year I was curious to see whether they were able to keep up to the level of the previous year or even top it. Last year the session showed first signs of wearing out. This year a completely new team (Amy Fowler, Jasper Potts etc) took over from Romain Guy and Chet Haase. With JavaFX being a big topic at this years JavaOne it was quite obvious to use this for the makeover.

    And they did a pretty good job by taking the Swing-based mail application of the 2006 session and employed JavaFX to pimp it up even more. It is obviously not too hard to integrate Swing components into a JavaFX user interface (the other way round is not really feasible). JavaFX is simply the stage and Swing components can be included as a node (after wrapping them into some kind of JavaFX component). However, hooking up the event handlers is fairly cumbersome and does not really scale for complex applications with lots of event handlers.

    One highlight of the session was the address book of the mail application. They used JavaFX and Java2D to give a 3D impression of turning the pages with the mouse. Visually stunning although the user interface is totally impractical for everyday usage.

    The culmination of the session was certainly their idea of junk mail removal. They were using an animation which launched a rocket and on impact the spam mail exploded and disappeared accordingly. Being both funny and pointless this also perfectly illustrated how easy it is to add animation to a Java application and how difficult it will be to enhance productivity of business applications by means of JavaFX.

    Interview with Canoo Fellow Dierk König

    June 4th, 2009

     

    Scott Davis interviewed Dierk König, Canoo Fellow and Grails/Groovy-Evangelist for Thirsty Head at blip.tv. In the interview, Dierk gives an inside-view about new Grails improvements, about his JavaOne talk, JavaFX and the impact of Canoo Webtest. Enjoy this interesting chat about “beauty and code”!

     

     


    J1 Session Blog: Pro JavaFX Platform (RIA Enterprise Application Development with JavaFX Technology)

    June 4th, 2009

     

    JavaFX is still in its early beginnings and despite of version 1.2 having been released this week it will take some time before it is ready for heavy duty enterprise applications. Hence, the session title sounded very attractive to me.

     

    Did I miss something with JavaFX? But what a disappointment! The speakers (Jim Weaver and Stephen Chin) did not get beyond explaining basic features of JavaFX. I got the impression that the closest these guys ever have come to an enterprise application was in the range of lightyears. They did not cover the topic of how complex presentation logic should be handled in a JavaFX application, at all.

     

    Nor did they mention how to implement complex forms, achieve a uniform look and feel in a suite of applications etc. They once mentioned MVC but it seemed to me that they had no clue of the implications of MVC in a complex enterprise application.

     

    At least I can’t complain too much since this was the first disappointing session after almost two days full of sessions at JavaOne, which is quite good for JavaOne or any other conference.

    J1 Session-Blog: Ajax vs. JavaFX Technology

    June 3rd, 2009

    First note that the speakers Ben Galbraith and Don Almaer are co-founders of ajaxian.com, which is clearly an AJAX-shop. They claim that Web technologies and Java went stagnent in the UI space. Ajax and JavaFX have the characteristics of a renaissance. They structure the talk in the form of a “discussion” or a series of arguments, where one supposedly pits the advantages of said technology against the other.

     

    •    Argument #1: Java performs way faster than JavaScript; on the other hand JavaScript is getting faster all the time (V8 team at Google); plus apps like Google wave demonstrate that performance is good enough.
    •    Argument #2: Responsiveness improved by worker-threads in a Java GUI. Yet using “web workers” we can overcome the limitation of JavaScript to a single thread. Demo of Pictastic proves the point. Having said that, web workers are still 10 times slower than Java; plus the API is extremely limited. In “web worker”, worker threads don’t share state, which is way safer than the totally flexible Java approach.
    •    Argument #3: GC way more advanced in Java. On the other hand, incremental GC in Mozilla is improving all the time. A lousy fact of the JVN is having to determine how much memory the app requires (or how much is available) wherever the app is deployed.
    •    Argument #4: Graphical capabilities of Java surpass what web apps can do. But performance of Bubblemark benchmark app shows that Google chrome achieves 100 frames per second. By comparison JavaFX achieves 24 FPS. With vector graphics Chrome is back down to 30 FPS. What the speakers don’t consider is that JavaFX is a very new and to-date under-optimised technology.
    •    Argument #5: An Ajax 3D demo “metatunnel” is pretty impressive. Most browsers, apparently, are offering 3D extensions. It’s still at the experimental stage, however. JavaFX, on the other hand, has nothing to show in 3D.
    •    Argument #6: Java is weak on fonts. The speakers claim that can’t use native fonts in Java (is this true? I seem to remember supplying Java with some additional fonts some years back.) Control over fonts in the Ajax world is even more limited, however.
    •    Argument #7: JavaFX provides “amazing” video support. Counter argument: Flash plugin us ubiquitous and surpasses JavaFX in terms of maturity. Open Web Video offers sophisticated video functions.
    •    Argument #8: Binding in JavaFX is compact and elegant. Web toolkits are very clumsy by comparison. The speakers quickly mention Mixins, Animation and Effects. All of this is way easier in JavaFX…
    •    Argument #9: Legitimate critisisms are raised about JavaFX syntax. Speakers suggest that JavaScript is actually easier and closer to Java than JavaFX Script. And, of course, JavaFX totally lacks widgets like table/tree. Web toolkits even provide some very cool layout management and tools for constructing GUIs.
    •    Argument #10: Tooling superior in the Java world.
    •    Argument #11: Deployment. Web wins here, obviously, except for significant browser incompatibilities. Applets, Mac etc. are lousy too, however.

     

    Conclusion: A pretty damning result for JavaFX, which is for the most part justified (at least today.) What the speakers fail to do, however, is talk more fairly about the significant problems faced by AJAX developers on a daily basis.


    J1 2009: Java FX 1.2, Java Store, Java Warehouse

    June 2nd, 2009

     

    Yesterday night’s so-called “Partner VIP event” gave us a preview as to what Sun will be emphasising at JavaOne this year. Receiving as much fanfare as ever before: JavaFX, version 1.2 of which is being officially released today (June 2nd) – for Desktop as well as for mobile. 

    Secondly, the Java Store and Java Warehouse story was briefly revealed, with more details expected at tomorrow’s opening Keynote. Sun is not proposing to host an app store itself, but to provide the infrastructure to whoever wants to. The Java Warehouse is supposed to act as a central repository for apps, which Java Store hosters can tap into, whilst retaining their own front-end and billing schemes. 

    Almost as noticeable as the above was the lack of any mentioning what-so-ever of technologies such as Android, Groovy/Grails. Is it forbidden for Sun employees present anything on these (for many) tactically highly important technologies?

    Finally, Canoo’s fame really does appear to be growing. Not only we we appear in the official presentations (see pic) but it’s really impressive how many folks are coming up to us and saying how they’ve heard about this Swiss company.

     

     


    J1 2009: Kicking off CommunityOne

    June 2nd, 2009

     

    David Douglas, Senior VIP Cloud Computing and Developer platforms, kicked off CommunityOne with healthy enthusiasm this morning. The central message is that communities are absolutely necessary for future development – and not just software but humanity as a whole. Very profound!

    Lew Tucker then joined Douglas on the stage to talk about Cloud Computing. Pay as you go is the idea… and presumably how Sun hopes to turn its financial fortunes around. He notes that cloud computing is more likely to succeed when budgets for proprietary data centres are being slashed.

     

          

     

    Douglas (left) and Tucker (right) then talked about Sun’s Open Cloud Platform. Early access for this platform is expected in Summer 09. The goal: Make it possible for any developer to have his or her own virtual data centre in the cloud. Data centre of course provides complete monitoring and control. Sun Cloud also provides load testing, as well a choice of app servers e.g. Tomcat, Glassfish. More info at www.sun.com/cloud and at the “cloud zone” at Java One.


    Canoo at the Mobile World Congress 2009, Barcelona

    February 26th, 2009

    How did we end up here?

    Before discussing Canoo’s attendance at MWC 2009, it’s worth reflecting what brought us here. The story arguably began at Canoo’s Code Camp 2007, where one of the teams thought they’d try out something called “JavaFX”. At that time an early version of JavaFX had just made its debut at JavaOne ‘07 and the guys were keen to take the technology for a test-drive. And voilà… MusicPinboard was born. Little did we know at the time that the resulting, appealing little application would result in Sun Microsystems contacting Canoo in October 2008 to ask if we’d like to participate in the “November” launch of the first official version of JavaFX. A rewrite of the app ensued (because official JavaFX differed significantly the ‘07 version in a number of respects) and the launch took place slightly later than originally scheduled, in December, at an invitation-only event in sunny San Francisco. The application demo’d by Canoo at this event struck a chord with the attendees and Canoo was subsequently invited to create a mobile version of MusicPinboard to coincide with the launch of a mobile version of JavaFX.

    About the MWC

    The Mobile World Congress is the biggest of its kind, featuring a four-day exhibition of over 1200 world-class firms, as well as technical sessions and keynotes from CEOs of Microsoft, Vodafone, Nokia, to name but a few.

    It is therefore significant that Sun should choose this particular venue to launch its mobile variant of the JavaFX, entitled – logically enough – JavaFX Mobile. Equally significant was the presence of Sun top-executives, such as Messrs. Eric Klein and Param Sing – VP and Senor Director of Java Marketing respectively, as well as Executive Vice President of Application Platform Software Anil Gadre. Also at the Sun booth: Canoo senior developers Mike Mannion and Alberto Mijares.

    On Display at the the Sun Booth

    Naturally enough, all of the technologies on show at the Sun booth related to mobile technology in some way or another.

    Sun booth at the MWC 2009

    For example, there was a demo of the Glassfish Mobility Platform, which, by means of a connector architecture, enables the enterprise to sync mobile devices with potentially any enterprise application. Sun streaming TV technology was also on display as was LWUIT (Lightweight UI Toolkit) – a UI toolkit library for Java ME. But there can be no doubt that most of the booth’s emphasis was on JavaFX and JavaFX Mobile, with a range of hands-on demos on show. These included:

    • A mock security video monitoring system, which constantly looped through a scenario in which a bunch of crooks attempt a break-in at the Sun site. This demo was so impressive, in fact, that a number of people came to the stand to ask when the “security product” would be available!
    • A very attractive mock social networking app for sharing restaurant and location information with buddies;
    • A cute game involving bunnies, which we presume was designed to suggest that JavaFX is suitable as gaming platform;
    • Canoo’s MusicPinboard application in both desktop and mobile forms, which Mike and Alberto used to describe the use of JavaFX tools Production Suite and NetBeans 6.5

    On show: MusicPinboard Mobile

    As previously announced Canoo was in attendance to demonstrate its recently created MusicPinboard Mobile application – an application created using the first official version of JavaFX Mobile. Around forty detailed demonstrations were given over the four-day period. In addition and in response to the questions from the attendees, Mike and Alberto also talked in detail about how the application was realised using the JavaFX Production Suite tools and the JavaFX plug-ins for the NetBeans IDE.

    Here is the application running from within the NetBeans IDE:

    The technical challenges encountered during the development were also freely discussed on the Sun stand, as were issues with the current version of the runtime, which sits atop Java ME on the hardware.

    Here is the application running on Sony-Ericsson’s high-end Xperia device:

    Most Frequently Asked Questions (and who was asking them)

    Without a doubt, the most frequently asked questions were the following:

    • What is JavaFX?
    • What is the difference between JavaFX and JavaFX Mobile?
    • Concerning JavaFX development: What kinds of tools are available today and what is the quality of these tools?
    • When will JavaFX Mobile be deployed to commercially available devices in the way that Java ME is today?
    • How well does the JavaFX Mobile Runtime perform and what is its footprint?

    We (Canoo) will not attempt to answer these questions in this post, but will address them over the coming weeks and months as yet more experience is gathered and whilst Sun continues to actively improve the platform.


    Above: Canoo’s Alberto Mijares (center) engaging with one of the many parties interested in JavaFX

    As for who was asking these questions: The vast majority of the people who witnessed our demonstration were clearly strategic decision makers in the CEO/CTO bracket. Some folks came from research departments and even some software developers (people like us!) made it to Barcelona too.

    Independent Opinion on the Stand Greatly Appreciated

    When Mike Mannion delivered an (arguably) sobering evaluation of the state of JavaFX in a talk at JavaOne in 2008, the last thing he expected was for Sun to give him a call and request a repeat performance. Yet Sun DID call him and he DID give his talk a second time (clearly because, even at that time, there were also many positive things to say about JavaFX in addition to the negative.)
    Now, when Sun is officially launching JavaFX / Mobile, why would Sun be giving an opportunity to independent third parties to express freely their opinion about a brand-new (read: immature) technology? It comes down to this: Sun receives constructive feedback, reenforces its credibility with potential users of the technology and, at the same time, demonstrates its confidence in the technology’s future. It is therefore perhaps surprising that not more organisations take this open and enlightened approach.

    Win-win-win

    We can testify first hand that Sun is a company that embraces open discussion – not just open source – and (constructive) criticism of its technologies. The response from the public made it perfectly clear that this is a win for all parties; in particular, potential client get an unabridged opinion, whilst Sun reenforces its credibility. And Canoo? Canoo looks good too ;-)

    Mike meets Executive VP of Application Platform Software, Anil Gadre
    Above: Canoo’s Mike Mannion (left) with Sun’s Executive Vice President of Application Platform Software: Anil Gadre.


    Canoo Official Launch Partner for JavaFX Mobile

    February 11th, 2009

    Canoo is delighted to announce that it will be attending the official launch of Sun Microsystem’s JavaFX Mobile technology at the Mobile World Congress in Barcelona 16-19 February 2009.

    JavaFX Mobile aims to make it easier for developers to provide a Rich Internet Application (RIA) experience on state-of-the-art mobile devices, whilst leveraging the ubiquity and capability of Java. Sun’s choice of the MWC as launch event is indicative of the importance it places on the mobile platform for Java’s future.

    Canoo is one of a handful of so-called “Java application showcase project” partners. These partners were specifically chosen by Sun because of their leading roles in the booming Rich Internet Application (RIA) market place.

    Canoo senior software engineers Mike Mannion and Alberto Mijares will be talking about Canoo’s experience with JavaFX Mobile technology, and will be on hand to demonstrate a brand new version of Music Pinboard entitled Music Pinboard Mobile. The application will be running on a number of the latest hardware devices at the Sun stand.

    Here’s a screenshot of Music Pinboard Mobile:
    Music Pinboard Mobile screen shot