Sunday, 7 October 2007

JavaFX may be troublesome

Hiya CardMeeting users,

Blocking Flash animations improved my web surfing experience until YouTube came along. Read on to see why Java might get similarly blocked in the future, and why that's a bad thing (especially if you're me.)

But first, as you have probably already seen, I have implemented a rudimentary waiting room for CardMeeting. I've been seeing a lot more traffic as of late, and whenever I post a new build of CardMeeting the download times for the jar can get very long. I fear this is turning many new users off to CardMeeting, and I so that's why I hacked in the waiting area feature. This was done primarily to limit the number of concurrent requests for the applet jar, but perhaps we can do more fun things with the waiting area in the future.

I had to make a lot of changes to the login sequence to make this waiting room feature work, and it is very possible that in the process, I have broken a subset of CardMeeting users. (EEK!) PLEASE, if you see any showstoppers with the login process, let me know and I'll see what I can do to fix it for you. (Screenshots of your failure may also be helpful if you know how to take them.) You can contact me at dave@woldrich.com

Ok, onto the main bloggy topic... So, there are some subtle moral quandaries to be wrestled with when installing ad blocking software. Ads are delivered so that you watch them, after all - that's someone's livelihood to successfully deliver those ads. Anyhow, if you don't have a problem absconding with someone's content without paying with your eyeballs and if you're a Firefox user, then you may have already heard about FlashBlock.

FlashBlock is, well, a transformative little piece of awesomeness. You install it, restart Firefox, and then every single Adobe Flash animation is selectively blocked. (I say selectively because FlashBlock neatly blanks out every Flash animation on a web page and gives you a nice "play" button to press in case you actually do want to download and watch it.) So simple, and it makes everything faster! On one hand, not having to download all those animations speeds things up in terms of getting page content. On the other, your eye isn't caught by every little whirligig and eye-popper as it spins past your face - less distractions, faster surfing. I love FlashBlock!

But when Flash games and YouTube came along, my thoughts on blocking changed a bit. I realized Flash was becoming less and less about ads. Its role on the internet was getting increasingly overloaded for useful things. Now I see even more applications, even productivity ones, being developed using Adobe Flash. And now every time I have to manually unblock a Flash animation to see a YouTube movie, or play a game, or access an application, I'm bummed about the widening loss of transparency in my surfing experience.

Grady Booch recently did a talk at Yahoo called "The Promise, The Limits, The Beauty of Software". In that video and in his writings, Grady discusses how the value of software in the future is going to be measured in terms of its transparency. In other words, software that you *don't* notice is running, that is just humming away doing the right things in the background; that is the good software. The rest of it: the cantankerous, buggy, crashy stuff ... that's going to get replaced (probably by the competitors.) I can't agree with Grady more. I think the best software is the software that does its job well without failure and without hand waving. I also observe that the simpler the software is design-wise, the more successfully the illusion of transparency can be pulled off. (But that's another topic...)

Adobe Flash fails the transparency test out of the starting gate because its reputation is tarnished. As long as Flash is an (annoying) advertisement delivery platform, the desire to block it will be strong. I bring this whole blocking topic up because, just as CardMeeting is barely starting to get interesting, I fear Java will receive the same tarnish as Flash.

I think so far Java has avoided the Flash trap due to its own failings. Most anyone who has had Java fire up in the browser has seen it freeze/hang the browser (or even crash the browser!) Even today, there are Java calls which could be used to flummox the Java plugin and make the browser freeze/crash. The unfortunate fact is, Java in the browser context is a pain both for development and for the user. So knowing that, if you're an advertiser, on one hand you've got Flash that never crashes ever ever ever, starts up in near imperceptible time, has great content creation tools... And on the other, you've got this very powerful Java thing that can hang once in awhile and isn't so snazzy with video, and it has out of memory exceptions, and no specialized content creation tools from the vendor... Which would you pick?

While the answer to that question to-date has been "Flash", going forward some might opt to pick the forthcoming JavaFX running on the forthcoming "Consumer JRE". JavaFX makes for effectively a nice, safe scripted environment running on Java. Additionally, Sun has been working on some artist-friendly tools for making animations for JavaFX! All that effectively makes Java a real Flash competitor. And when the Consumer JRE arrives, I think freezes due to memory issues are going to diminish, especially if the use of Java is limited to JavaFX scripts. I also believe the Consumer JRE startup times for Java will be comparable to that of Flash, so no more freaky browser pauses just to get Java to start. All this is generally good news, and I fully expect the Java-in-the-browser experience to dramatically improve in the next two versions of Java.

Of course, the downside of Java improving is that it will probably be attractive and accessible to marketers, and thus users will want to block Java like they do Flash. This is what I am worried about. I *love* the fact that I can pop users into a CardMeeting with a single link. I can't tell you the crazy machinations I have gone through over the last year and a half to shoehorn Java into the browser and make that experience (somewhat) seamless. Working around painting glitches, stability problems, and memory limitations is probably the majority of the work I've done on CardMeeting (instead of, say oh I dunno, adding features?!) I'm happy that future work on the Java platform will give us the technology to make CardMeeting better/faster/stronger, don't get me wrong. It's just too bad that as a side effect, CardMeeting is probably going to get blocked from the get-go just like the YouTubes and Homestar Runners of the world.

Cheers,
Dave Woldrich

P.S. In case you're a techie and were griping about it, yes, I am aware there are general plugin blockers available for web browsers that will block Java. Also, both IE and Firefox have dedicated configuration options specifically for disabling Java in the browser. So, someone somewhere must be worried about blocking Java as an entity on the system. I am not disturbed about those mechanisms to block Java since those were not borne out of a distaste for the Java technology. Those mechanisms for blocking Java are security/policy switches - some people don't want any plugin frills, makes sense. FlashBlock strikes me as an expression of distaste - it says to me that some people think Flash can be a negative/annoying/bad/etc technology. That's not something I want to base CardMeeting on if there are better alternatives like Java for what I want to do.

Posted by davew at 8:36 PM in /
« July »
SunMonTueWedThuFriSat
    123
45678910
11121314151617
18192021222324
25262728293031