Day 3: What happened on Wednesday, 2007-06-27
Erich Gamma, Distinguished Engineer at IBM Rational Software's Zurich lab, helped start the Software Pattern movement, was the original lead of the Eclipse Java development environment (JDT) and also contributed to the JUnit testing framework. Dr Gamma delivered this morning's Jazoon keynote address describing his latest project: Jazz - a platform that facilitates team collaboration and coordination throughout the software lifecycle using the "Eclipse Way". The "Eclipse Way", the process used during the development of the Eclipse development application, has become widely known for its success in using "Process Patterns" based on iteration, transparency, and continuous improvement. This approach relied on techniques of continuous builds, integration, release, demonstration, feedback, and testing. There are other elements necessary for achieving a successful implementation of the Eclipse Way. After experimenting with process framework tools such as EPF, he quickly discovered that processes that depend on developers voluntarily and continuously reading (static) documentation were doomed to failure. Therefore one must bring the process into tools as much as possible. In particular, tool support is necessary to ensure that "the boring parts" are addressed as carefully as everything else. Dr. Gamma provided a sneak preview of Jazz, a tool which provides support for specifics such as milestone creation/tracking, continuous integration, dynamic task creation/resolution, and especially a wide variety of actions performed during the "end game" cycle, which is the final sprint toward a releasable product for improving quality from "good" to "golden". He also noted that since each development team has its own dynamic and implementation of process, a successful tool needs to be reactive rather than controlling. Finally, Jazz will not be open source software but rather "open commercial" software - source will be available, but there will be restrictions. Regardless, based on the size and reaction of the audience, this will soon be yet another "must-know" technology..
Neal Gafter, Closures in Java BOF
Gafter gave short but enlighten examples of why anonymous inner classes are not suitable for many callback handling purposes and for implementing control statements in libraries. The problems of anonymous inner classes include: too much boilerplate code, poor nesting, complicated exception handling, the inability of control statements like break, continue and return to effect the enclosing scope and the inaccessibility of local variables in outer scope unless declared 'final'. He used these examples to derive requirements for closures in Java and showed his approach in fulfilling these requirements.