Sun's chief technology officer for software discusses the issues facing Sun with JavaFX and whether it will be enough to put Java back on the desktop.
Can Java's new eye candy engine — JavaFX — be the tonic to revive Java's flagging fortunes client-side?
Sun's chief technology officer for software, Bob Brewin, certainly thinks so as he discusses the issues facing Sun with JavaFX, will it put Java back on the desktop and if the GPL licensing of Java warrants a re-license for CDDL projects. BuilderAU caught up with Brewin at the recent JavaOne conference.
Do you expect people using Flash to suddenly start using JavaFX?
Brewin: I think that there is probably a small group of people that will start using it now, but I don't think until we actually have the tools to go along with it then the majority [are] not going to touch it. Most of the people who do Flash development today are largely bound to the tool.
So until the point when we have those content authoring tools, I expect that it will be people that are principally graphics programmers who are using Java2D/3D and Swing today. Which in some sense is good because it will help us to fine tune the language, fine tune performance as well as uncover a bunch of problems before we embed it into the tools.
I do expect that once we see the tools come out that a lot more experimentation will happen.
When are the tools coming out?
I can't give you an exact date, but if by the next JavaOne we don't have a CD with the tools on it, then this is not going to fly.
Do you think the tools will be comparable to the Adobe toolset? Can Sun produce tools for creative professionals?
I don't see why they can't be. The interesting challenge for us is that this is a new type of tool that we have not built before. We've had products in the consumer orientated space, but never one that's gone this far down the path. The challenge for us is to make sure we can do so. From an engineering perspective we need to engage with outside firms and individuals to help us build it.
It comes down to the process by which we go ahead and define it. A classic model for a pure engineering organisation is to build something and then go through it with a bunch of user experience [UE] and user interface [UI] experts and say "Here, fix it up for us".
The process here is the exact opposite — which is that the user experience professionals design and provide the requirements for what is be to build and how to has to be used. Then the engineers have to go and build it — we can build anything if given the right specs. So I think that they will be able to do that but it will be largely a UI/UE driven process.
Do you see JavaFX putting Java back on the desktop?
I do, I actually think that in a couple of different ways. Number one, we started there — which is sort of interesting because for the last five to six years we have been focused on the enterprise, and for good measure that's where a lot of Sun's customers are.
I think as we look forward, if we take a look at mobile phones — the rich client is king and Sun has a strong presence in that market. Customers are demanding a richer and richer experience on their web clients and thus you have things like Flash — that is why Flash has become so popular.
Obviously we need to address a number of issues that are long standing. The taint and baggage that is associated with things like applets, and the size of the JRE.
Will there be any more LayoutManagers as a result of JavaFX?
Not yet, but I can see that there will be changes as a result of the technology. While not specifically tied to layout, I think that one of the interesting possibilities that FXScript can provide is taking the browser and inverting it.
What happens today is that you take rich content embedded in a Web page — which is for me personally unsatisfying. Why not reverse that and in fact have a rich client and embed HTML and CSS within it like a portlet?
That would probably be extremely relevant on devices that have a lot more presence than desktops i.e. mobile and televisions, which collectively far outweigh [desktops] in terms of numbers but they don't do browsers very well.
So therefore, what will you be using as the browser?
I don't think in those cases that there will be a browser. The [mobile] phone in the keynote, it was actually running a midlet — it's a rich application. What it's doing is basically taking feeds from the Internet and encapsulating them within the context of a rich client. I suspect that that is where we are going to end up on phones, the desktop, as well as TV. Because the rich client actually allows you to do things that you can't do with AJAX.
We are looking forward many, many years into the future. I don't think that the browser is dead by any stretch of the imagination, in fact I think it'll be here forever. But I think for certain categories of devices (mobile phones, TVs) that rich clients have a stronger foothold.
To support HTML and CSS properly, have you put extra work into the JEditorPane?
There is some work that has been done and there has to be more, because obviously you need to have 100 percent fidelity with the same experience that you get on the browser. If you can't do that then you are not going to be able to succeed.
So the JEditorPane has to be fixed. There's a number of open source activities in that space and we need to make sure that those get implemented properly so that you can get that fidelity.
If real-time threading is used in a non real-time application, is it good, bad or indifferent?
It depends on the application — I really don't know if you can mix and match different threading models. I suspect that any benefit you gain from the real-time threading will be lost because you'd end up in normal thread locking situations.
The nice thing is that there is nothing that says that cannot use real-time only; it's a global search and replace to go to real-time, and you would get some benefit almost immediately because of the way that it does things like garbage collection.
Is Sun going to be looking at re-licensing its CDDL projects?
I can't necessary speak for all of them, but I know that in the Solaris case specifically, granted that that is a community thing, we would have to engage the OpenSolaris community — but we are more than interested if they want to move to the same sort of licence. I definitely think that that is something that we would be able to do. Jonathon Schwartz has said it, Rich Green has said it. As far as the other projects it really depends on the communities and the people that are using it.
CDDL has certain properties to it which are valuable, GPL obviously does as well especially if you are trying to work more closely with the Linux platform.
There's also equal potential for dual-licensing depending on the technology.