
Thursday May 18, 2006
JavaOne 2006: Wednesday, May 17
Today I attended the following talks:
- Blu-Ray: Java Technology Goes Hollywood!
- Superpackages: Development Modules in Dolphin JSR-294
- Integrating XML into the Java programming language
- Java Memory Model: The building block of concurrency
- Understanding Mysteries of Java SE classloading
Blu-Ray: Java Technology Goes Hollywood!
I am a big fan of interactive TV -- atleast the kids can have something to do when watching TV rather than just sitting and watching passively
I don't know much about interactive TV standards or Java standards in this space - although I know a bit of MPEG-4. Main points I learned from this talk:
- Blu-Ray uses different wavelength to record. Can record upto 8 layers. Atleast 25 GB of storage!! That is BIG storage!! Many things are possible...
- Blu-Ray supports a Java standard BD-J - which uses a profile on CDC configuration
- Compatible with cable TV Java standards -- which means you can write apps that can moved
with minimal changes b/w cable-TV from/to blu-ray disc
Superpackages: Development Modules in Dolphin
As usual, Gilad Bracha presented nicely. JSR is in
it's infancy. He explained the current strawman proposal of the development module. Someone asked why do you need two JSRs for module system for Java (development modules - JSR 294, deployment modules - JSR 277). Answer: Language design JSRs are different from other kind of JSRs. The focus of these JSRs are different.
Integrating XML into the Java programming language
This is XML literal support for Java. Mark Reinhold summarized why ad-hoc XML programming is hard in Java - he compared existing XML APIs such as DOM, JDOM, dom4j, XOM, StaX. Two proposals for XML literal syntax -- XML-like angular bracket or # to demarcate tags (he calls this Java-like). He did a "show of hands" poll for XML language support in Java. I voted for "no" -- I must admit that I am with the minority
Java Memory Model: The building block of concurrency
Main take-aways of this talk:
- No way two threads can communicate without synchronization.
- reordering of instructions, memory fetches, related compiler/proecessor optimizations can result in non-intutive results.
- Use synchronized blocks/methods -- don't be clever-- "there is only a thin line b/w being too clever and stupid"! (I liked this punch line)
- Double checking idiom works only if you make the double checked field as volatile
(and you are using JDK 5.0 or above)
- Use java.util.concurrent classes whenever possible - don't reinvent the wheel and code similar data structures.
- Testing does not prove correctness with concurrency.
Understanding Mysteries of Java SE classloading
Nice summary of classloaders from JDK standpoint and HotSpot JVM standpoint. Only 2/3 people were interested in "loader constraints". Main take-aways:
- Avoid writing classloaders -- try to use java.net.URLClassLoader if possible
- If not, extend URLClassLoader and just override findClass and findResource methods
only.
- Better to use single-parent-delegation model
- -XX:+TraceClassResolution can be used to debug class resolution/loading
It is difficult to describe "loader constraints" late in the night

-- that too without using paper/pen or blackboard

-- may be you can read
my blog
( May 18 2006, 10:02:34 PM IST )
Permalink

|

|

|

|

|
Posted by asj on May 19, 2006 at 11:48 AM IST #
Posted by Shai on May 19, 2006 at 02:16 PM IST #