The JCP recently opened up a lot more, and has mandated a lot more transparency in expert groups. A case study has been written to discuss the progress of JSR 166, Concurrency Utilities, lead by Doug Lea.
- Posted by: Dion Almaer
- Posted on: February 09 2004 19:48 EST
Doug feels that the concurrency package that he built has gotten even better due to this new process. It even gives you a hint on how to run a good project in many ways!
Read JSR 166 Case Study: A Transparent Expert Group
- JSR 166 Case Study: A Transparent Expert Group by Bill Burke on February 10 2004 00:53 EST
- A CSP Kernel for Java would be even nicer. by Michael Mayr on February 10 2004 07:43 EST
- Good job, Sun and Spec lead by code freedom on February 10 2004 10:31 EST
Doug Lea's concurrent library is going to get even better? Can't say enough good things about it. Can't wait til its standard Java.
I really appreciate the work of Doug Lea and others in JSR-166. JSR-166 certainly improves the state of concurrent programming in Java and any improvement is welcome. And it sticks to the world known to the common Java programmer. But a more radical approach towards native CSP would imho have been brilliant.
Benefits from native CSP would be:
- portable Thread semantics (Threads behave the same no matter what underlying OS)
- context switching in nanoseconds
- up to tens of thousands concurrent "threads"
- properties of code are provable because of the mathematical model behind CSP (like deadlock freeness)
For more info about CSP and Java:
- http://www.usingcsp.com/cspbook.pdf (Book by Hoare)
- http://www.cs.kent.ac.uk/projects/ofa/jcsp/ (A Java lib, no native kernel)
- http://www.erlang.org (a concurrency oriented programming language with brilliant thread performance)
Kudos to Sun for making efforts towards making the JCP more open. In this instance, because of the open nature of the spec lead, there was synergy and the fruit can turn out to be only one thing: sweet.
A note to Doug and others at Sun - while the concurrency utils are pretty powerful, the assumption with the drafts kind of is that the reader is familiar with Doug's book, and the assumption in that book is that the reader is an adept programmer adequately versed in concurrent programming. I speak as a general Java programmer - that book is not easy to follow. I have the book, but have never quite been able to master it.
Tiger introduces some other complex ideas which take some mastering - most notably generics. With generics and some other new ideas in Tiger, there has been an effort to introduce the ideas in different forums - tech talks by Josh Bloch on java.sun.com, various articles in different magazines, online and print, voluminous discussions on the java forums. Barring some slides from JavaOne, I have found a similar effort lacking for the concurrency utils. Even magazine articles about the new features in Tiger usually mention the concurrency utils in passing - "Doug Lea's concurrency utils are now a part of the core java distribution".
Inclusion in the core java distribution makes for a much larger exposure than even with very successful open source efforts. It would be very helpful if Sun and others came out with articles in the manner of a gentle introduction to the concurrency utils, with enough leads to digest it and go on to more advanced topics.