We Love Blu-Ray Java! It's Perfect! Now Change.

by Chris Adamson

Related link: http://money.cnn.com/2005/10/20/technology/hp.reut/index.htm



The Blu-Ray versus HD-DVD war is spilling over into nearby fields, including Java, thanks to the fact that Blu-Ray uses Java to provide its interactive features. Consider the following quote from an article from EE Times, in which HP's general manager for personal storage says HP compared Blu-Ray Java to the Microsoft-created iHD interactive standard in the HD-DVD and "found Java in Blu-ray was much more mature and robust with complete test suites. In contrast, we found many holes in Microsoft's proprietary iHD."



Then tell me how it is that last week, HP called for Blu-Ray to adopt iHD?



If you want to stop here for a quick recap, a good source for information on the Java spec for Blu-Ray, BD-J, is the JavaOne 2005 session "Java Technology Goes to the Movies: Java Technology in Next-
Generation Optical Disc Formats", which is available from JavaOne Online. BD-J is a J2ME Personal Basis Profile with API's borrowed from interactive television (DVB with the broadcast stuff taken out), HAVI (for a consumer electronics oriented GUI), plus the previously-moribund JavaTV API (for the concept of an Xlet) and Java Media Framework (for reasons unstated... perhaps pity). The resulting platform claims to offer deep programmability, including layering of graphics, video, and background, synchronization with video (either in a tight frame-accurate style or a looser callback scheme), and more.



Details on iHD have been somewhat harder to come by. I did find a general description in the article HP requests feature additions to Blu-ray disc technology, in which Microsoft's director of technology strategy for Windows Digital Media says the idea behind iHD is to "use Web-like tools such as XML, and that would make it very easy for a creative person that did not need to be a software programmer, to be able to create interactivity menus and applications for optical media," adding "the vast majority of studios prefer iHD over BDJ, because it's easier to author, you can have your creative people involved, it's cheaper, [and] it's got all these benefits."



OK, seriously, we're still comparing markup and executable languages? This is like saying that HTML is better than C because it's easier.



Oh, I know, context: easier for the content developer. No kidding. As the JavaOne session says: "Most content will probably be written with high-level tools" and that "opportunities exist in tool building". Clearly, the expectation is that simple markup environments can and will be written on top of BD-J, quite possibly including iHD, but the fact that the standard is the executable allows these environments to compete, and doesn't close the door on functionality advancements. The interactivity can get better as developers discover new ways to exploit BD-J. Plus, nobody's writing "bonus" games for the kids with a markup language, at least not one that will be interesting for more than two minutes.



The big picture is that this remains a consumer electronics versus PC's battle and the consumer electronics side is winning. Forrester says Blu-Ray will win, and Warner Bros adopted Blu-Ray and joined its board last week. Blu-ray certainly has immense advantages, not the least of which is the fact that it will be on the PlayStation 3, set to launch early next year. The PS3 makes the scenario more interesting by including internet connectivity as standard equipment -- internet connectivity is part of the BD-J spec, and if Sony's implementation chooses to implement it, then there are tremendous opportunities for fundamentally new kinds of content, with material available and updated even after the disc is stamped and sold, to say nothing of e-commerce plays (every movie can have its own online store, accessed from the disc).



By the way, if you've heard this from me before, it's because I was advocating using Java as a home theater technology a few O'Reilly Conferences ago, in a session called Why Mac Users Hate Java.



One thing that bugs me is that I haven't found how to get started with BD-J. Consumer electronics devices aren't the most open thing in the world to begin with, so maybe it's not surprising that you can't just get an SDK from www.blu-ray.com and start coding with your J2ME environment of choice, emulating the player until real hardware and burners are generally available. It's possible this is a pay-to-play scenario, to keep the platform limited to the expected players (movie studios and other content developers); I simply don't know. Still, it would be tremendously interesting to see how far you could take Blu-ray as a general-purpose J2ME application delivery environment, something that some talkbacks to one of my java.net blogs called for.



By the way, would anyone be interested in a series of blogs in which I try to get the needed tools and develop BD-J software?


9 Comments

kebernet
2005-10-27 14:07:53
Markup
Gotta really disagree with you here...
Oh, I know, context: easier for the content developer. No kidding. As the JavaOne session says: "Most content will probably be written with high-level tools" and that "opportunities exist in tool building". Clearly, the expectation is that simple markup environments can and will be written on top of BD-J, quite possibly including iHD, but the fact that the standard is the executable allows these environments to compete, and doesn't close the door on functionality advancements. The interactivity can get better as developers discover new ways to exploit BD-J. Plus, nobody's writing "bonus" games for the kids with a markup language, at least not one that will be interesting for more than two minutes.


"Tools" doesn't really seem to every work out. To this day I find SWING to be barely usable, even with the tools. The proliferation of "half-way" markup solutions for SWING is frustrating. Looking at the Avalon/Sparkle stuff coming out of MS, and even the great-but-way-too-expensive Flex stuff from Macromedia, and XUL, Java at the UI level for me is now officially dead.


Of course, I have to somewhat contradict what I just said, however, I would point out that Narya PuzzlePirates (http://www.puzzlepirates.com) is built with the library that begins life as a declarative 2D graphics markup language with code bindings.

invalidname
2005-10-27 16:02:33
Markup
"Tools" doesn't really seem to every work out. To this day I find SWING to be barely usable, even with the tools. The proliferation of "half-way" markup solutions for SWING is frustrating.


So forget "halfway markup" and write an entire isolation layer in J2ME, letting authors use a full-blown markup like SMIL. And someone else can implement iDV, or some XUL subset, or some totally different concept. This is potentially superior to a single, fixed, unexpandable markup.


Granted, Sun is pretty "tool" happy, especially when they need an excuse or workaround for over-complicated API's. So, I'm interpreting their use of "tools" as meaning any higher-level abstraction that may allow content authors to not touch Java unless they really want to. And I'm also saying it's nice that the executable layer is available, not just the markup layer.

DYuan
2005-10-28 13:56:57
I want my JTV ;)
Interesting... I fully agree with your analysis. There should be a programmable VM at the core with an easy markup-based layer built-on top. This way simple things will be easy, but the possibilities will be limited only our imaginations. This is why Java VM technology was invented.
Chris
2006-04-04 09:42:48
Just surfing by and wondering whether there's any word of a BD-J API yet?
Chris Adamson
2006-04-04 10:16:27

There are some whitepapers at http://www.blu-raydisc.com/. A guy at Sun pointed me to http://www.blu-raydisc.com/Section-13890/Index.html , but it's dying with a "too many HTTP redirects". I think it's moved to http://www.blu-raydisc.com/assets/downloadablefile/bdj_gem_application_definition_050307-12959.pdf . BD-J apparently is going to reuse some interactive television API's, notably Globally Executable MHP (GEM).

Xyzzy
2006-04-11 06:15:35
I would absolutely be interested in a series of blogs such as you have described.
CountZero
2006-05-08 10:56:33
I'd love to see a BD-J development blog! Information is hard to find, so i would very much appreciate it. Thanks in advance! CountZero
Keneke
2006-05-17 13:55:46
Chris,
I would definitely be interested in more information on BD-J tools and software development. There is almost no public information on BD-J development, which is a pity. If Sony really wants this platform to succeed, they have to open it up to the "little people" like me. I don't know anyone who can afford to drop $60K on a copy of Scenarist BD Edition and another $40K on the CineForm HD encoder. There must be some way to create BD content without having to get a second mortgage. I hope you can enlighten us all to the path we are searching for...
asj
2006-06-09 21:55:46
There was some interest in development for this, but after hearing about the closed nature of the business, it might actually wither.


Blu-ray BD-J


I think the Blu-ray group might be going in the wrong direction when it comes to creating a healthy, self-sustaining ecosystem of developers around Blu-ray technology.