Prediction for 2008 - The Return Of The Java Applet

It’s a bit early in the year to be making the traditional predictions for the coming year. However, I thought this one was worth making now: I think that 2008 may be the year when we see the return of the Java applet running in the web browser.
Why? The number one reason is that, at long last, Sun is planning to address the Number One problem with Java applets - slow startup during which time the browser locks up. It often makes for a really terrible end-user experience. So terrible that it rarely makes sense to develop a RIA as a Java applet. Today, the only time it really makes sense is when you need the power of Java (stuff like multi-threading) e.g. for browser-based games. So, scheduled for the end of 2007/beginning of 2008, there will be an all-new JRE released - aimed at fixing this (and other) problems with Java in the browser.
Now, as I look around various blogs - both the blogs and comments - I see that many, many people are pretty poorly informed about two things that are relevant to this discussion: the Java platform; and graphical user interface design.
About Java
In terms of confusion about the Java platform, I’ll just pick one blog as an example (there are lots I could have chosen from, with people making ill-informed comments like “Java doesn’t work”, “No-one uses Java anymore”, “Java is slow” “PHP is so much more powerful than Java” “Everyone uses Ruby now” etc). The example I’ve chosen is Ryan Stewart’s blog. Ryan blogs about Rich Internet Applications (RIAs) - he’s a must-read if you’re interested in RIAs. However, much as I like his blog, some of the things he says about Java are just plain wrong. He says things like,
Developers have had a hard time actually building things with Swing.
and like,
Sure, Java developers have an “easier†way to write Swing interfaces, but when your starting point has a degree of difficulty of 900, “easier†is a relative term.
Errrrr… no. I don’t know what kind of developers Ryan speaks to; I have to wonder if they’re web-site developers, rather than software developers. Of course, Swing is difficult for people who don’t know how to write software. Just like Java is. However, for talented developers, Swing is an amazingly powerful GUI toolkit. In fact, it’s so powerful that it’s actually the most popular GUI toolkit in the world. Yes, I said - popular. Millions of developers build GUI applications using Swing. The reason you don’t often see these as Java applets on the Net are because of problems with Java in the browser - not because Java and Swing are too hard to use.
About GUI design
There’s lots of confusion on blogs about the whole concept of “designer / developer workflow” for building compelling user interfaces. Here’s the problem - designing compelling graphical user interfaces is hard. So - very often, desktop apps and RIAs have terrible user interfaces. Doesn’t matter what the platform is: C/C++ and native GUI toolkits; C# and WinForms; Java/Swing; Flash/Flex; Silverlight/WPF. The user interfaces are often (perhaps even almost always) badly designed.
Currently, both Adobe and Microsoft suggest that the reason for this is that developers don’t know how to design a good user interfaces. Instead, they say, user interface design should be a job for graphic designers. And, of course, to go with their philosophy, they have tool sets that fit in with the workflow they’re pushing. It’s good business. But it’s nothing to do with creating great software. You see, it’s true that most developers don’t understand how to create “good” user interfaces. However, graphic designers, in general, know even less about user interface design than developers do. If you listen to Adobe and Microsoft, it’s almost as if they haven’t actually seen the user interface abominations around the web created by using Adobe’s Flash platform. Or, if they have seen them, they aren’t able to recognise them for what they are.
Now, this isn’t to say that good tools aren’t needed to create compelling user interfaces. To be productive, they absolutely are. And it’s not to say that “high-level” descriptions of user interfaces - like the newest technologies from Adobe, Microsoft, and now Sun with JavaFX - aren’t a great idea. They are. What I’m saying is that there’s no magic wand available when it comes to great user interface designs for sophisticated applications. It’s just hard. You need top-talent software developers to do a good job.
Conclusion
Writing great software is hard. Good tools make it easier. However, good tools don’t make it easier for the masses to create great software: they might make it easier for such people to create software that just about works (but it will still be lousy). Great software still needs to be developed by great developers… and, there are many great developers out there that love programming in Java. If Java in the browser is fixed by the new consumer JRE, those developers will chose to develop their RIAs in Java (and JavaFX). And remember, these are great developers… they will develop great applications.
So, this is in Sun’s hands. If they fix Java in the browser with the new Consumer JRE, applets will start spreading like wild fire…
Alan Williamson wrote:
Simon, a great entry and yes you hit the nail squarely on the head. The whole discussion around whether or not Java is the best tool for the job or not is somewhat moot.
The point is, unless you have a reliable delivery platform that your users do not feel any pain, then no matter what tools you use to build, the application will ultimately fail.
It’s only in the last year or so we have started seeing Java runtimes on new PC’s preinstalled; and this is for a +10year old language. Java is playing catchup at the moment, and if they get this browser-JRE working, then yes, we are going to see some wonderful examples of what the web can do.
Until then, we can only sit back and hope Flash/Silverlight stumble once or twice to allow us to catch up.
Posted 09 May 2007 at 10:20 am ¶
Bruce Scheidemantel wrote:
Seems to me, observing from afar, that this isn’t quite an applet as we know it. In JavaFX there is a new canvas object on the webpage in which Swing and other Java2D objects are enclosed. (I’m not sure if Sun is targeting desktop or just in-page apps with FX.) Hopefully, with a good tool to combine standard HTML and canvas objects designed with Matisse, it will be easy for web designers — i.e. create the FX code for you once you drag and drop components.
Word is that to get just “Hello World” to run in standard Java, about 5MB of runtime was required. This will change with the use of the SavaJe technology. I hope with some refactoring they can get that between Flash’s 2MB and Sliverlight’s 4-5MB, with dynamic class loading of other classes as required.
Posted 09 May 2007 at 8:42 pm ¶
Asam Bashir wrote:
32 Mb Ram it needs, phewwwwwwwwww,
http://www.informationweek.com/story/showArticle.jhtml?articleID=199500131
Why does it seem that Sun doesn’t really have a clue and just wants to try have it’s finger in everything and kinda hope something pays off…
Why are networks and cellphone manufacturers going to pay Sun for anything?
Posted 09 May 2007 at 9:02 pm ¶
simon wrote:
Bruce,
There are a few aspects to JavaFX. On the PC, JavaFX script runs on top of Java SE. In other words, as I understand it, you will be able to use it to to create standard desktop applications and browser-based applets.
I think you’re about the design tools. For sure what Sun will create is the ability to design interfaces with an interactive tool i.e. the FX code will be created by the tool. Much in the way that Matisse works for Swing interfaces today.
JavaFX Mobile is something else: it’s effectively a Linux/Java stack that represents a new mobile phone OS. This will be based on the SavaJe IP. JavaFX Mobile can also run JavaFX Script.
I know people often get hung up on run-time size and amount of RAM used for “Hello World” programs. In 99%+ of cases, this is a bit of a red herring. What counts are: the resources used in real-world use cases; and whether these represent a significant drain on available resources.
For example, one problem with JavaFX Script as it stands is that it consumes huge amounts of CPU compared to Flash. Check out the “Moto” demo. The Flash version uses 0% of CPU resources on my laptop on button rollover animations (the graphic equaliser animations); compared to the JavaFX version which uses around 20%. I’d expect this to change as JavaFX is optimised over the next few months. My point is, though, that it’s *real-world” resource-usage issue that matter… not “Hello World” resource-usage.
Posted 09 May 2007 at 9:12 pm ¶
simon wrote:
Asam, I don’t think 32MB RAM is an issue for running the JavaFX Mobile platform. However, I think the fact that there’s almost certainly a significant amount of work required to bring this new mobile OS up to scratch is a major issue… because that will affect time to market. It doesn’t even look close to ready to me - the demos were truly appalling.
There’s no reason, in principle, that JavaFX Mobile couldn’t compete with the iPhone operating system. The point is - the key differentiator for iPhone is the user interface; and Java SE, which runs on JavaFX Mobile, certainly has the capability to do the rich graphics and interactivity features that are required to match what iPhone does.
But again, there are issues. The iPhone has a bunch of cool hardware features that relate to the interface (touch screen, orientation sensors etc). This will require real work from hardware partners to match what Apple is doing.
I’d estimate that JavaFX Mobile is at least a year behind iPhone… and that’s if Sun and partners really get busy. If they’re slow to move, they could be two or three years behind iPhone as it is now… and of course, iPhone isn’t going to stand still.
So, JavaFX Mobile certianly has a lot of potential… but you’d have to say there’s a significant risk that it will fail.
In general, I’m not yet seeing mobile handset makers step up to the plate to compete with what Apple is doing with iPhone. I can’t help but feel they haven’t even figured out where Apple is going with the iPhone platform. I think it’s about time the handset makers got their acts together - they’re starting to embarrass themselves…
Posted 09 May 2007 at 9:29 pm ¶
Asam Bashir wrote:
This seems the best SE can produce,
http://www.reghardware.co.uk/2007/05/09/se_revamps_p_series/
No HSDPA and shipping Q3 - there is no competition for iPhone - It’s gonna be expensive and sold-out..
Anyone on an AT&T contract wanna swap an iPhone for a sim free N95 ha-ha
Posted 09 May 2007 at 9:57 pm ¶
Ryan Stewart wrote:
Hey Simon! Thanks for setting me straight a bit. I’d love if you could ping me offline so I can chat with you about Swing and Java. I’d love to know more, but coming from a web development background, I’m not up to speed on a lot of things (and those are the devs I talk to).
I was also kind of bummed about not being given a heads up on the JavaFX stuff, so I probably was overly harsh. I’m getting too big for my britches
Posted 10 May 2007 at 5:46 pm ¶
simon wrote:
Ping…
Posted 10 May 2007 at 5:57 pm ¶
Bruce Scheidemantel wrote:
Simon,
Thanks for the clarifications. Keep ‘em coming. I just discovered your blog and will visit often as we all learn more about Sun’s plans. If, as I’ve heard, that Sun is dedicating some more resources to client-side issues, there’s hope they can execute. I hope it’s not too late.
Posted 10 May 2007 at 6:29 pm ¶
Jim wrote:
is this about the java kernel?
Posted 13 May 2007 at 8:49 am ¶
simon wrote:
Jim, The Java Kernel work (where a minimal runtime is downloaded, and other parts downloaded as needed in the background) is part of this, yes.
Posted 13 May 2007 at 9:00 am ¶
paulo wrote:
The only thing i’m interested is the “coming” of the java webstart. If it wasn’t so incredibly difficult to deploy it, it would kick applets ass half way to the moon.
Posted 16 May 2007 at 2:50 am ¶
Marc wrote:
I completely disagree about Swing not being hard to use. Yes it is easy if you’re an experienced Java developer. However most web developers are more familiar with HTML and CSS (they’re not programmers!), so while Swing most definitely offers great power and is a lot quicker (you can put stuff in separate threads and keep the GUI responsive) I think HTML based widgets, and unfortunately Flash will dominate for some time to come. I personally think Java Applets are the most underused technology on the web. Thinkfree.org is perhaps the best advert for what a Java Applet can do, forget Google Docs, which seems to be dubbed as a threat to Microsoft, that makes me laugh. The stability of Applets is also an issue. Although it can be done with JavaScript, I have crashed FireFox/IE when testing unfinished applets. I’ve never had a Flash app crash my browser.
On the other hand, with tools like NetBeans you can just about get away with using Swing with minimal knowledge, but I’d still argue for the majority of web developers who are used to the web browser handling things like scrolling etc for them, Swing is a challenge.
Java FX from what I have seen seems to be a step in the right direction I have never programmed in Flash. I don’t like it on web sites, but who would have guessed Flash becoming the revolution is has for delivering video content? What happened to the Real Player/Windows Media Player wars? Adobe seem to come from nowhere to win that one
Posted 26 May 2007 at 5:18 pm ¶
Carl wrote:
My prediction is that the killer app will be a user-friendly platform with the ability for others to enhance it after it is deployed (auto-authoring turned on) –a living program if you will. Ideally, this platform could be deployed as a server or stand-alone. JavaFx is perfectly suited for this…
The only thing that comes close was HyperCard –you can find out all about it in WikiPedia.
Posted 05 Jun 2007 at 8:28 am ¶
Francis wrote:
I personally do agree with the prediction of 2008 being the era of the return of the Applet. As one other blogger said, with the increase in the use of broadband connections, soon download speeds will be a thing not to contend with.
Applet development is also switching gradually from using Applets as a graphical presentation tool like flash. Its more about functionality and usabilty. I know 2008 will the starting point with several powerful applets rolling out. And just to say, its quite easy to convert Swing Desktop apps to Applets these days and this makes it all the better. Cause you get the power of Swing in a browser.
I’ll be making my own contributions to this revolution in the coming year as much as possible.
Posted 18 Aug 2007 at 2:34 am ¶
Joachim wrote:
I don’t think it matters how much Sun fixes Java for its next release, if they are going to continue shipping their product without a 64 bit plugin for the browsers running on 64 bit OS, Java is never going to make it in browsers. In this day and age, that is unacceptable. Check http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4802695
its the most voted and oldest bug filed in Sun’s java bug tracker. Since Jan 2003!! And they have yet to fix it.
Posted 21 Sep 2007 at 1:22 pm ¶
simon wrote:
Joachim, 64-bit plug-in support will come with Java 7. It’s definitely needed. However, I can’t agree with you that this is the key to success of Java in the browser. Why? Because 64-bit desktop OSes are not widely deployed compared to 32-bit OSes. It’s worth noting that Adobe doesn’t have support for Flash in 64-bit browsers; and that hasn’t held Flash back, has it?
Posted 21 Sep 2007 at 2:00 pm ¶
Joachim wrote:
I don’t think the comparison between Flash and the Java plugin is fair. If I have a 64bit OS (like I do at work), there exists the 64 bit JRE and JDK, but none of them comes with a 64 bit plugin, so I am forced to use a 32 bit version of a product, if I want the plugin, even though a 64 bit version of it exists. With flash, whether the plugin is 32 or 64 bit doesn’t make a difference.
You can actually get around it by installing the 64 bit Java system wide and having a local 32 bit copy of Java just for your browser, but the installation of such a configuration requires quite some effort for a non-technical user. Could Sun include the 32 bit plugin with the 64 bit JRE and JDK?
Posted 06 Oct 2007 at 11:56 pm ¶
Eric wrote:
There has recently been released a very promising new UI framework for developing java applets (or RUI Java applications), which is a nice alternative to Swing. Declaritive XML ui definition, rich set of widgets, similar to Swing but much easier to use:
https://pivot.dev.java.net/
It’s open source too.
Posted 02 Jul 2008 at 5:22 pm ¶