Sorry about not being able to write on the next day - as I was doing for the first 2 days. Reasons:
Anyway, here is the summary of the last 2 days:
I attended the following talks/BOFs:
Gilad Bracha talked about invokedynamic and how that could be useful when compiling dynamically typed languages to JVM bytecodes. The terminology "dynamic languages" is wrong ("With statically typed languages everything is static so that nothing moves?" - as usual Gilad spoke well!). "dynamically typed languages" is the correct way of speaking.
Summary: JVM's invoke instructions [invokeinterface (calling interface methods), invokestatic (call static methods), invokespecial (used to call private methods, constructors), invokevirtual (invoke any other method)] require method signature and target class (or interface) to be specified. But, when operating with dynamic types, you would know what types are to be used. invokedynamic would accept such "typeless" method spec. (just method name) and search appropriate method at each invocation. When matching method is not found a user specified handler will be called -- which can receive some reflective parameter to specify callsite and method called. Also, in the context of the JSR 292 more flexible hotswap will be investigated (for dynamically typed languages).
Nice talk that summarized important anti-patterns to watch out while writing secure code. One important example I liked: do not assume that after throwing exception from constructor (may be after checking for security) will make the object useless. The user can extend the class, define finalize() method and resurrect the partially constructed (unsecure) instance from there. And then, user code can call instance methods -- which assumed that security check has been done already by constructor. Solution is to check a flag in every sensitive instance method - the flag should be initialized by the constructor after security check is successful.
One minor comment about this talk : I had to sit in overflow room and the video quality was poor. Folks in overflow room couldn't see the speakers properly!
This is DTrace talk. I liked (and was amazed!) at the way Jarod Jenson was typing D-scripts and Adam followed him to explain the scripts!. This is one of the talks where you have to be physically present to fully appreciate/enjoy the talk (like the Click and Hack, the Type-It brothers talk).
The speaker explained that there are two ways to detect memory leaking:
The speaker explained how to use the object "age" (the number of garbage collections the object survived) to detect slow memory leaks. Nice talk.
I spoke in this BOF along with Alan Bateman and Kelly O'Hair. So, I should not be evaluating the talk
We had starting trouble in this talk - mostly due to my fault. I'm sorry
We covered the serviceability tools, in particular jhat in depth.
I could participate in only one talk in which I spoke - "scripting for the Java platform". Mike Grogan explained what JSR 223 is all about.
I covered the implementation aspects:
After the scripting talk, I had to run to the airport to catch my evening flight. I am back to Chennai. Still having jet lag and writing this blog at 11.30 PM
Today I attended the following talks:
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:
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.
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
Nice summary of classloaders from JDK standpoint and HotSpot JVM standpoint. Only 2/3 people were interested in "loader constraints". Main take-aways:
-- that too without using paper/pen or blackboard
-- may be you can read my blog
On Tuesday, I attended the following talks.
If you have been following Tim Bray on WS-*, you'll appreciate REST. I liked this talk. The speaker (Dave M Johnson) explained how to ROME based framework is used to create REST based service for blogging. I need to learn more on this area.
The speaker (Stanley Ho) mentioned about "Jar hell, classpath hell" and what is the other one -- I forgot
. It is difficult to manage complex java apps that use many jar files, different version of it and native code, many resources. The deployment modules JSR tries to solve module dependency, versioning, repository, native code management etc. for Java. It is expected to
work closely (and compatibly) with Development modules for Java.
This was a very lively interactive discussion on scripting languages in Java space. Frank Cohen presented a very nice summary. Many heavyweights of scripting world (JRuby, Jython folks for example), Tim Bray, Roberto Chinnci attended this talk. I had chance to meet these people (and few Sun folks with whom I just had email contact!).
Someone asked about Lisp on Java -- there are few -- I like SISC - Scheme implementation for Java - http://sisc.sourceforge.net/. And if you want to try out JSR-223 API for your scripting language, you may want to check out http://scripting.dev.java.net
) to get heap dump. You can get your heapdump from older JDK release and use Mustang's jhat.
I am here in San Francisco to attend JavaOne 2006. I hope to attend all language related (scripting or otherwise) and few other Java SE talk sessions and BOFs this time. And I hope to post comments as I attend. Stay tuned...
Sun launches JavaScript and AJAX developer hubs. Check it out ...
We (Jim Holmlund and I) have written an article on Java Observability on Solaris. Well, two articles - one focusing on Tiger (Java 5.0) and another one focusing on Mustang (Java SE 6). Check it out at...
Meet you @ JavaOne 2006! JavaOne 2005 feels like just yesterday. JavaOne 2006 is nearing! (May 16) I'll speak in the "Scripting in Java™ SE 6" (TS-1382) session along with Mike Grogan (the spec. lead for JSR 223) and participate in troubleshooting BOF. I've proposed a java.net mini talk on the Scripting java.net project as well.
I am excited -- except for the loo...ong flight journey from Chennai, India to US -- I hope to spend time by reading a fat book (or two)! For some reason, I can't sleep during flight journeys
I've implemented JSR-223 script engine for the Java programming language. Check out http://scripting.dev.java.net! [Read More]