Java SDK for TV
How often I have wondered, if only there was a good SDK for developing Java applications on TV, 'this' problem could have been avoided or 'that' application could have been more compelling. I am sure there are many like me, those who work on Java applications for TV or provide Java platforms for TV.
Connected Device Configuration (CDC)/Foundation Profile (FP)/Personal Basis Profile (PBP) form the basis for most of the Java applications developed for TV. There are other technologies/profiles sitting on top of this stack, like Java Media Framework (JMF), Java TV, AGUI (Advanced Graphics and User Interface), BD-J, GEM (Globally Executable MHP).
For developers, the challenge often is to find usable SDKs to write contents across TV platforms. Ofcourse there are high quality ones available (like the Studios for Bluray Development), but often they are not the cost effective options. Some of the quality ones also tend to focus on one type of application development and can not be leveraged for other types. So lack of usable SDKs for CDC/FP/PBP stack has often been a cause of concern for the developers.
In the past, CDC Toolkit was a popular choice for developers working on CDC/FP/PBP based applications. It included AGUI as a profile on top of PBP. CDC Toolkit platform with NetBeans gave developers a very neat platform to write, debug their CDC based applications. A developer could use the SDK to develop both Graphics and Headless (non Graphics) applications. But there were a few areas where it did not extend enough support (or had no support at all).
It did not have profiling support and this is one thing which every developer would wish to have to fine tune their applications.
Since it included AGUI, the compiler did not catch the code problems for applications which only included PBP. AGUI specification added more APIs and so the compiler conformed to the bigger set - PBP and AGUI. This allowed specification related issues to go all the way down to runtime before being detected! PBP being widely adopted across various TV centric applications, like GEM, BD-J, Interactive TV applications, a compiler that conforms strictly to PBP is of utmost importance to developers.
Moreover the software renderers used by CDC Toolkit, did not leverage the Graphics hardware accelerations on computers and made such applications look a little less real and appealing.
The road ahead looks quite interesting now and promising too ...
Very shortly there will be a Java based Media Client SDK for Windows/x86 platforms available at javatv-developers project on java.net. (there are links, but they are not active yet) This will be based on CDC/FP/PBP 1.1 technology and will work with NetBeans 6.1 and higher. Something that will ensure compilation against PBP classes for sure.
Looks like this SDK will include LWUIT (Lightweigt UI Toolkit) and LWUIT enriches the flavour of Interactive TV applications. So this SDK could be quite handy for developers writing Interactive TV applications (like EPG).
This one will be powered by latest CDC Virtual Machine technology. It would include JVMTI support, so developers will have no problem to debug and profile their applications. I am told that this PBP implementation would be faster and better, so I am very keen on trying my hands at it as soon as it is made available. The LWUIT around this SDK, makes me more excited - I can surely think of possibilities here - cool Games, appealing interactive TV contents, and all of them in quick time!
It doesn't stop there, there are more promising stuff down the road...
Sun Microsystems plans to release another version of Java based Media Client SDK that will support both graphics and media centric applications development. This one will include CDC/FP/PBP 1.1 and JMF 2.1 technologies. The first version is likely to be available as Platform Pluggin with NetBeans 6.5 for Linux/x86 computers. This One-Click-Install pluggin would make development of Graphics and Media applications for TV a lot simpler and efficient exercise. So all of you, who are keen on writing Media based applications, and waiting for suitable SDK and Emulator to develop them on your computers - the day is near when your dreams will see the daylight. Possible that the Windows/x86 version would have JMF technology in it sometime soon.
To summarize, it was a bumpy ride with available CDC based SDKs at times - but I can see fast lanes ahead. Lots of stuff happening around SDKs and Emulators; and they promise developing compelling Java applications for TV to become easier and faster. Java ME SDK 3.0 is going to address fair amount of existing problems. The upcoming versions of Java based Media Client SDKs are only going to make things better. Features like LWUIT, JMF just fits the order of the day for TV applications. Soon the two versions are likely to support same set of features and so developers would enjoy the same flavour on two commonly used OS platforms. I hope this 'unified SDK' version would grow over time and act as the catalyst for faster evolution of Java TV applications.
Watch me writing more about this topic or on JavaME for TV.