Jim has posted 66 posts at DZone. You can read more from them at their website. View Full User Profile

Sanity Will Be Restored to Internet Application Development on December 4, 2008

11.25.2008
| 5194 views |
  • submit to reddit

Yes, that's a bold statement, but I've waited 13 years to be able to say it.  If you've followed my blog or have heard me speak about JavaFX, you know that I was disappointed with the browser wars in the late 90s that fragmented and slowed down the ubiquity of the Java Virtual Machine.  Instead of writing rich-client Java applications, the last 13 years of software development has largely consisted of trying to make browsers do what they were never designed to do.  If I may speak plainly, the result has been applications that consist of a big mess of varying flavors of JavaScript, HTML, etc. that leave developers overwhelmed and users underwhelmed.

According Danny Coward of Sun, in less than ten days from now version 1.0 of the JavaFX SDK will be released.  JavaFX SDK 1.0 (with the support of Java SE 6 update 10) will make rich-client Java a reality.  It is my opinion that this release will be a tipping point in software development that will play a big part in restoring sanity to rich internet application development.

If you are wondering what practical steps you can take to leverage this seismic shift, here are a few that I would suggest:

  • If you are currently designing an internet application or remodeling an existing one:
  1. Think about how the full power of a rich client Java UI could improve the user experience. 
  2. Engage a graphics designer to create comps of this experience, reminding him/her that UI limitations imposed by the browser are history.
  3. Define an interface to the application/business logic layer.  Because JavaFX can instantiate and use Java classes, any interface that is implemented in Java can be used.  I often use a simple HTTP-based interface that uses GET parameters to pass arguments, and returns a stream of data articulated in the JSON protocol.  This approach will work well with JavaFX on all platforms (e.g. desktop and mobile phones).
  • Although Swing components are available in JavaFX, there is a strong trend in JavaFX as well as in RIAs (rich internet applications) toward graphical-node-centric UIs.  Users are beginning to expect (and deserve) iPhone-style applications, so think less about Swing and more about Java 2D capabilities.
  • Because the JavaFX SDK will be a 1.0 release, there is a good chance that you'll want to create some of your own higher level custom controls.  The JFX Custom Nodes category of this blog explains how to do this, and offers a few custom nodes that you might want to use.  Also, Stephen Chin and Keith Combs, mentioned in the You Say You Want a (RIA) Revolution? post, have said that they will create custom nodes for use in JavaFX applications to augment what is released in JavaFX SDK 1.0.
  • And, of course, join me in downloading the JavaFX SDK 1.0 release from JavaFX.com on December 4.

JfokusLogo

By the way, my first speaking engagement after this release will be at Jfokus in Stockholm, Sweden.  I'm going to do a 3.5 hour university session as well as a conference session.  If you're in the area, please do attend!

Regards,
Jim Weaver
JavaFXpert.com

Published at DZone with permission of its author, Jim Weaver.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Michael Schnell replied on Tue, 2008/11/25 - 7:49am

Sounds interesting. I hope they'll refactor the Website (http://www.javafx.com/) with the 1.0 version. It does not work with IE6 and is an example of bad usability. This kind of site makes users just "go away" even if they may be interested in Java FX...

Brian Sayatovic replied on Tue, 2008/11/25 - 9:23am

At the risk of sounding like a pessimist, I think you are a suffering a bit of myopia. I hope Java does get back into the RIA wars, but I doubt JavaFX is going to dominate the entire RIA space and single-handedly restore "sanity to rich internet application development." I'm a big fan of Java, but Java is not the world. There's an enormous .NET footprint out there. Flash/Flex also has a big market share. There are many developers who specialize in things other than Java, and many of them are already reaping the advantages you listed for JavaFX within their own platforms. The RIA space won't truly have a revolution until all of the RIA platform pushers realize that their models are entirely different than HTML. Stop trying to deliver binary code to the client (even bytecode is binary code) and instead deliver generic markup. To your point, browsers were made for hyperlinked marked up text and anything beyond that has faced an impedance mismatch: "trying to make browsers do what they were never designed to do." However, if we had a good, agnostic RIA markup language, then such an RIA browser would have all of the advantages of a browser and none of the disadvantages of HTML. Indeed, it wouldn't be a browser so much as an RIA application render. Instead, we have markups that aren't being pushed to the client (e.g. OpenLaszlo), tied to a particular language or VM (e.g. Java, .NET), or undergo a leaky transofmration to DHTML.

Jacek Furmankiewicz replied on Tue, 2008/11/25 - 12:42pm

This JavaFX thing better be the best thing since slice bread if you set it up like that...it has to be so good we have to forget about the 1-2 man years of resources that were taken from core Java instead.

But, somehow, I feel I know already the answer to that question.

 

Kevin Daly replied on Tue, 2008/11/25 - 1:02pm

Yawn!

Was a big JavaFX supporter in the beginning, but Sun has let me down with their lack of support for Linux. I know they've said that it's in the works, but when? We've already waited way too long for this thing! Now we'll have to wait longer for the Linux SDK, Video Codecs etc etc...

It still looks good, but I think I'll come back in about 6 to 8 months when all the pieces are in place, or it's crashed and burned completely.

In the meantime, I've been using GWT since FX took so long.

Kevin Daly replied on Tue, 2008/11/25 - 1:05pm in response to: Jacek Furmankiewicz

Jacek,

Do you not realize that huge parts of Update 10 were due to the FX initiative, I'm no longer a fan of FX (see my other post), but FX has brought a lot of improvements to Swing & Applets that are very much part of core Java. 

Jess Holle replied on Tue, 2008/11/25 - 1:45pm in response to: Brian Sayatovic

The issue is that HTML and all other current standardized forms of markup are not really terribly viable as RIA technologies.  The result is a Sisyphean task of trying to make such markup and JavaScript do what it really is not well suited for.

The JVM is quite nicely suited to the problem.  The issue has been one of Java Plug-In and Web Start quality and of a gap between expected authoring technology and traditional Java desktop application authoring approaches.  Java 6 Update 10 seems to have largely addressed the quality issue.  We'll see if JavaFX addresses the authoring technology issue -- the jury is obviously out at this point and will remain out until Sun delivers designer, not just programmer, tools around JavaFX.

Guido Amabili replied on Tue, 2008/11/25 - 2:52pm

I wil take a week holiday to get acquainted with Javafx ......

And NetBeans is still the best IDE if you plan to use JavaFx.

Where are the others ?

Regards,

Guido

Kirill Grouchnikov replied on Wed, 2008/11/26 - 1:11am in response to: Guido Amabili

>> Where are the others ?

Not caring one bit?

Guido Amabili replied on Wed, 2008/11/26 - 5:45am

Hi Kirill,

I love your work.

Well, I think that one of the reason of the lack of support of some of the available IDEs for JavaFx is that the dev teams are still trying to bring up a usable gui visual builder ;-) ....

Anyway, competition is good and NetBeans is ahead.

I don't think JavaFx will be irrelevant in the Java scene.

Maybe in the designer camp, Flex will have a larger user base, but that's it, imho.

I do not think programmers will adopt designer tools and designers programmer's tools.

There is no paradigm shift in our daily work coming soon.

And I do not think RIA will conquer the web.

Regards,

Guido

 

Jacek Furmankiewicz replied on Wed, 2008/11/26 - 7:57am

JavaFX will be the New Coke of Java development...once it fails to get any traction Sun wil quietly sweep it under the rug, pretend it never existed and return its resources fully to Java.

That will be the day that sanity will be restored, truly.

 

Jess Holle replied on Wed, 2008/11/26 - 8:15am in response to: Jacek Furmankiewicz

Given Sun's track record in this area, a good deal of skepticism is a healthy thing.

That said, there seem to be a good number of developers who've already heavily invested in DHTML or Flex approaches who simply don't want Sun to succeed here as they might then have to re-evaluate their investment direction given the new option of JavaFX.  Essentially these folk are saying, "I've put all my eggs in basket X already, so it's the one true basket and all other baskets must fail."

Jacek Furmankiewicz replied on Wed, 2008/11/26 - 8:47am in response to: Jess Holle

Not sure if you're implying me here, but that's definitely not the case.

What we Java developers wanted is for Sun to enhance the Java language and keep it up to par with its competitors (C# in particular).

Instead, all core Java development has ground to a halt so that Sun (whose resources are very limited, especially in the face of recent layoffs) to push a whole new language. You have this crown jewel called Java with hundreds of thousands of developers and you want to throw it all away...does not make any sense from either a technical or business viewpoint.

So, yes I am hoping for a TOTAL JavaFX disaster so that we can get the focus back on Java, where it belongs.

Sun gives JavaFX data binding in a few months of development, but we've been waiting for years to get the same thing done properly in Java...and with properties not coming in Java 7, it ain't gonna happen. Just an example of someone's focus being totally in the wrong place.

Listen to your users. Simple motto that usually serves everyone well.

Jess Holle replied on Wed, 2008/11/26 - 9:29am in response to: Jacek Furmankiewicz

I don't think that Sun will necessarily be quick to add loads of language features to Java 7 even if JavaFX is a complete flop.

Why?

It's not just that lanugage features require a lot of time, effort, and focus to add.  It's also that they're highly disruptive to the ecosystem and highly contentious.  Look at closures, for instance.  Sun's in a damned if we do, damned if we don't situation there.  Closures are neat, powerful things but they will add to the complexity and ability to produce obtuse, less decipherable code.  Overall I'm in favor of BGGA closures, but I'd say it is a close thing -- the downsides are nearly as great as the upsides.  Many language feature proposals are like this.  It's not so much that it is technically hard, it's that whatever Sun does in this area will hurt and tick off a substantial portion of the Java community -- and Sun's not very good at playing dictator.  The Java community generally quickly gets irrate at this however well it is done, whereas the Microsoft community had to buy into this premise from the start.

Also we should generally be looking to add/improve libraries and only looking to alter the language when it is clear that the language is hindering one from producing good, easy-to-use APIs for substantial problem sets.  That's not to say there are no such cases, but a tit-for-tat language feature race to the kitchen sink against C# is in no one's interest.

Jacek Furmankiewicz replied on Wed, 2008/11/26 - 9:34am in response to: Jess Holle

Tit-for-tat is overboard, there is some stuff in C# I disagree with (partial classes, the new dynamic features coming in 4.0, etc.)

But a few things like "real" properties and easy data binding to them, automatic resource management (i.e. the using {} and IDisposable stuff), better string handling (.e.g. no need to escape strings when doing regex or filesystem paths, #region for better code organization, etc). There is a lot of low-hanging fruit that add a lot to the language without major disruptions.

Otengi Miloskov replied on Fri, 2008/11/28 - 8:58am

I'm agree with Jacek, Sun should put the focus on Java because it is where the money is it. Lots of companies use Java in some way. JavaFX is a fad a new scripting language to learn and is not mature enough, it will take 10 years to get to the position where Swing is it now, Swing is mature and it works. Java devs just needed a xml declarative way as xul to design Swing UI and that was all about. What a shame of Sun.

Also as Jacek said Java need some features to keep competitive without major disruptions but watchout of C# 4 that is a really a beast, a complete crap, It is getting more complex than C++ or another language, I think C# is going in the wrong direction.

2c.

 

Mark Unknown replied on Mon, 2008/12/01 - 2:47pm in response to: Otengi Miloskov

OtengiM,

   There have been plenty of XML markups for Swing. They never caught on.  Did you ever look at JDNC?  I, for one, am less than thrilled with XML for the UI.

   Anyway, Java is much more than just the language. JavaFX is Java. And it is buit on Swing so ...?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.