Tuesday Oct 02, 2012

JavaOne 2012: Slides for "JDK 7 Action" Posted

Stuart, Mike, and I gave a two-hour tutorial about JDK 7 in Action earlier today at JavaOne. For those moving to JDK 7 soon, this talk covers the language and library changes made in that release, including Project Coin and NIO.2.

Monday Oct 01, 2012

JavaOne 2012: slides for "Lessons from Mathematics" Posted

I've posted the slides for my JavaOne bof on Lessons from Mathematics. I've wanted to put together a talk along these lines for a while and I'm happy to have given the talk at JavaOne this year. I was gratified some stalwart JavaOne attendees choose to attend this late-night talk on such an esoteric topic!

Saturday Sep 29, 2012

Annotation Processing Virtual Mini-Track at JavaOne 2012

Putting together the list of JavaOne talks I'm interested in attending, I noticed there is a virtual mini-track on annotation processing and related technology this year, with a combination of bofs, sessions, and a hands-on-lab:

As the lead engineer on bot apt (rest in peace) in JDK 5 and JSR 269 in JDK 6, I'd be heartened to see greater adoption and use of annotation processing by Java developers.

Thursday Jun 14, 2012

JavaOne 2012: Lessons from Mathematics

I was pleased to get notification recently that my bof proposal for Lessons from Mathematics was accepted for JavaOne 2012. This is a bit of a departure from the project-centric JavaOne talks I usually give, but whisps of this kind of material have appeared before.

I'm looking forward to presenting material from linear algebra, stochastics, and numerical optimization that have influence my thinking about technical problems in the JDK and elsewhere.

Thursday Jan 19, 2012

Project Coin Rocks!

After many years of speaking at JavaOne, I was happy to get notification yesterday that for giving The Heads and Tails of Project Coin this year, I was inducted as a 2011 JavaOne Rock Star.

With Project Coin successfully shipped as part of JDK 7, I'm looking forward to exploring speaking about other topics at JavaOne this year. Perhaps I'll sumbit a proposal for a "lessons from mathematics" talk I've long wanted to give. I've found approaches and results from fields like stocastics and linear algebra can be helpful in other contexts, including language design and API work.

Rockin' Duke

Tuesday Oct 04, 2011

Project Coin at JavaOne 2011

Update: A video of this talk is now available on Parley's.

Earlier today, I presented my JavaOne session on The Heads and Tails of Project Coin (slides). The talk included some retrospectives from developing the Coin features which I hope to write up in more detail in the near future.

Turning toward the future, the talk also spent a little time discussing possible language changes coming in JDK 8. First, planning for JDK 8 is on-going and the feature list is subject to change; the JEP process will be used to help define the roadmap going forward. With those caveats, small language changes we're considering proposing for JDK 8 include:

  • Refinements to JDK 7 Coin features
    • try-with-resources on an effective final variable
    • removing restrictions on usage of diamond
    • @SafeVarargs on private methods
  • Collection literals(?)
  • Repeating Annotations(?)
  • Method and constructor parameter names at runtime(?)

Personally, I would welcome programming with collection literals. Repeating annotations and the ability to retrieve the names of method/constructors at runtime are both long-standing requests from our colleagues in EE.

However, with the broad scope of language and platform changes coming into JDK 8 courtesy Lambda and Jigsaw, all these smaller language changes have to be made somewhat opportunistically. For that reason, for JDK 8 we are not planning on having another open call for proposals as was done for Project Coin in JDK 7.

Tuesday Aug 30, 2011

Coming soon: JavaOne 2011

While enjoying some post-JDK 7 GA rest and relaxation, a hotel I stayed at offered this different image of JavaOne, one cup at a time:

JavaOne coffee maker

In the meantime, the usual JavaOne 2011 conference is fast approaching!

JavaOne 2011 Flair

My talk on The Heads and Tails Project Coin is just over a month away on Tuesday, October 4. Later that day, I'll be available for questions at the Meet the Java Language Team bof. If you already have a question you want answered about Project Coin at or before JavaOne, please leave it as a comment on this blog.

For more on Project Coin, based in part on his "coinificaiton work, Stuart will be giving a talk on Using New Java SE 7 Language Features in Real Code.

See you in San Francisco.

Monday Sep 20, 2010

Project Coin at JavaOne 2010

This morning and early afternoon Maurizio and I gave our JavaOne talk about Project Coin to a packed room; the slides for the talk are now available. The NetBeans demo of Coin support also went smoothly.

As announced earlier at JavaOne, we'll be following the "plan B" option for JDK 7 so the accepted Coin features that are not currently implemented will be reconsidered for JDK 8. In the meantime, we're interested to have more feedback on the Project Coin features

  • Improved numeric literals

  • Strings in switch

  • Reduced varargs warnings

  • Diamond operator

  • Multi-catch with more precise rethrow

  • try-with-resources statement

that are available to test out now in JDK 7 builds.

Thursday Jul 08, 2010

JavaOne 2010 Talks Scheduled

My two JavaOne talks this year have now been scheduled:

  • Monday, September 20, 11:30AM, Project Coin: Small Language Changes for JDK 7

    Abstract: Project Coin is an effort to select and implement a set of small language changes to enhance programmer productivity in JDK 7. Project Coin language changes include improved integer literals, strings in switch, and the diamond operator. This session will describe the language changes and demo IDE support. In addition, aspects of the selection process and criteria for general language evolution will be discussed.
  • Tuesday, September 21, 8:00PM, Patents, Copyrights, and TMs: An Intellectual Property Primer for Engineers

    Abstract: Increasingly, software engineers interact with a complicated landscape of intellectual property (IP), from software patents, to various copyright licenses, to trademarks and trade secrets. Formulated in terms familiar to engineers, this session will summarize the different types of intellectual property, with a focus on U.S. law. Copyright terms, criteria for patentability, and freedom to operate will all be discussed with examples. The speaker is not a lawyer (he's an engineer) and this talk (and this abstract) does not constitute legal advice. However, the speaker has been issued several U.S. patents and has studied IP in a number of graduate courses.

Lots to do between now and September; see you in San Francisco!

Monday May 10, 2010

JavaOne 2010 Talks Accepted!

I was happy to be notified today that I have two JavaOne talks accepted for this year. The first is a session on Project Coin: Small Language Changes for JDK 7 in the core Java platform track. When I spoke at JavaOne 2009 about Project Coin, the feature selection wasn't yet finalized and I covered some of the general concerns that influence language evolution and spoke on feature selection methodology. Now that additional Coin features are becoming available in JDK 7 builds, this year I expect to focus more on experiences implementing and using the new features.

My second accepted talk is a bof on Patents, Copyrights, and TMs: An Intellectual Property Primer for Engineers over in the Java Frontier track. I've wanted to put together a talk on this topic for several years to condense what I've learned from taking a few classes on intellectual property and filing (and eventually getting issued) several patents.

See you in San Francisco in a few short months!

Tuesday Jun 02, 2009

JavaOne 2009: Project Coin Slides Posted

I presented my technical session about Project Coin, titled more verbosely Small Language Changes in JDK™ Release 7, this afternoon at JavaOne. I've posted the slides. Besides discussing the proposals under further consideration, I also went over some of the experiences from JDK 5 and other considerations we take into account when evolving the language.

Wednesday Apr 15, 2009

JavaOne 2009: Small Language Changes in JDK™ Release 7

My JavaOne 2009 proposal for a talk about Small Language Changes in JDK™ Release 7 was accepted and scheduled for the first day of the conference, 3:20 PM to 4:20 PM on June 2, 2009. Besides discussing experiences evaluating proposals submitted to Project Coin, I plan to include some broader thoughts on Java language evolution, including sharing some informative war stories from back in JDK 5.

Tuesday Dec 02, 2008

JavaOne: Slides for "Tips and Tricks" available

With the call for papers for JavaOne 2009 out, I thought it was high time to belatedly publish the slides for my JavaOne 2008 bof Tips and Tricks for Using Language Features in API Design and Implementation.

The session feedback from attendees of my talk was consistent on there being too much material gone over too rapidly. So if I revisit presenting this material in the future, I plan to split the talk in two, one part on kinds of compatibility and another more focused on using language features in API design.

To provide some context for the slides, here are some excerpts of the talk.

Leading up to JavaOne, I had been thinking a lot about compatibility, both in general terms as well as understanding the compatibility properties of previous API work and possible future changes. Besides being a central constraint on API evolution and general evolution of the JDK, compatibility also turned out to be surprisingly complicated. At some point, I'd like to writeup further thoughts on the acceptable compatibility region in the three-dimensional space of source, binary, and behavioral compatibility.

I feel there is considerable unrealized potential to have more commonly used program analysis and checking based on annotation processing, now built into Java SE 6 compilers. For example, I think it would be an interesting programming exercise to write an annotation processor to review the source and binary compatibility impacts of an API change. A much simpler example discussed in the bof is an annotation processor to find methods and constructors that are candidates for conversion to var-args.

A few times in my API work, I've seen that apparently conflicting goals can be met simultaneously by combining different language features, such as JSR 269 annotation processors being able to both use annotations to specify return values while still having a well-typed interface. So for those facing similar challenges, persevere! The solution may be just around the corner.

The last significant section of the talk is a brief defense of Java generics, a topic worthy of future elaboration. While very complicated in the worst cases, many common use cases are straightforward.

Although I find these technical subjects interesting, I expect to be submitting talk proposals on other matters for JavaOne 2009.

Wednesday May 14, 2008

JavaOne: Writing the next great Java book

Catching up post-JavaOne, I was glad to have gone a bit outside my usual core Java SE track sessions on Thursday evening by attending "Writing the Next Great Java™ Technology Book." Moderated by book editor Greg Doench, the panel of distinguished authors, Brian Goetz, Josh Bloch, Kathy Sierra, and Bert Bates, gave advice ranging from why to start writing a book to how to complete one. Below are my recollections of the bof.

Brian advised to treat writing a book like running a software release, including version control over the text and code samples, as well as automated building and testing of any code. Brian's quote from Churchill,

Writing a book is an adventure. To begin with, it is a toy and an amusement; then it becomes a mistress, and then it becomes a master, and then a tyrant. The last phase is that just as you are about to be reconciled to your servitude, you kill the monster, and fling him out to the public.

—Winston Churchill

certainly rang true for me in scaled down ways for some of the writing and other projects I've done. (I have many partially written blog entries, some over a year old; the toy stage doesn't last very long!) Brian also gave a warning on the scope writing a book: it will take twice as long as you think it will; there is a substantial amount of editing and revising even when the book is seemingly near completion.

Josh spoke of the importance of passion for the subject matter and knowing what you want to say. Additionally, he thought it was essential to have a diverse slate of reviewers who were representative of the book's audience; for example, one of the early readers of "Effective Java" was the teenaged son of the Java series editor. Good reviewers need a willingness to let the author know when the book is incorrect or needs improvement. To Josh, Strunk and White remains a model of clarity. He also explained how threats from family members can be a helpful motivation to finish a book!

I've read books by Brian and Josh, but I haven't read Kathy and Bert's "Head First Java," which takes a less traditional, more graphical, approach to technical writing. Bert listed a number of books, including What the Best College Teachers Do and Efficiency in Learning, as having important insights to help manage the cognitive load of readers. Kathy only used one slide, but had the audience do several interactive exercises, including staring down our nearest neighbor. (With our forward facing eyes, people are predators; facing down a full room of predators tickles the innate "fight or flight" response :-) She described most technical books as providing an "I suck." experience for the reader, an experience they didn't want to encourage in "Head First." Part of reducing the likelihood of suckage comes from skillfully leaving things out. However, books should strive for a high-resolution experience; in a California-sensitive analogy, many don't regard wine as merely a binary red/white beverage. For Kathy, a goal of a technical books is for the reader's reaction to not be about the author or the book itself, but rather the difference made to the reader.

Besides books, I think the panel's advice is useful for other forms of writing too, having strong reviewers and keeping a concern for your reader are broadly applicable, and I'll keep their suggestions in mind for my future blogging.

Thursday May 08, 2008

JavaOne: Java + You = ...

In this year's JavaOne pavilion, you can get shirt's printed with your own answer to this year's conference theme posed as a question

JAVA + YOU = ?

While "JAVAYOU" would be a string-centric programmatic answer, with my floating-point czar hat on, my answer to this summation is "K9K4", which I computed with the following program:

public class JavaPlusYouSum {
    private static final String JAVA = "JAVA";
    private static final String YOU  = "YOU";
    private static final int RADIX = 36;

    public static void main(String... args) {
	int sum =
	    Integer.parseInt(JAVA, RADIX) +
	    Integer.parseInt(YOU, RADIX);
	System.out.printf(JAVA + " + " + YOU + " = " + 
			  Integer.toString(sum, RADIX));

However, I'm confident less numerical answers will be more useful and satisfying in most contexts :-)

Monday Feb 18, 2008

Coming in 2008: Tips and Tricks on Language Features

My bof proposal titled Tips and Tricks for Using Language Features in API Design and Implementation for a discussion on how to productively use generics, enums, and annotations was accepted for this year's JavaOne conference in the Java SE track. I'll be drawing on experiences creating and working with various JDK APIs, including JSR 269, and plan to talk on topics ranging from maintaining different kinds of compatibility, to subtleties of using interfaces versus abstract classes, to an analogy between the proper use of generics and the Mandelbrot set.

Wednesday May 24, 2006

Joe's JavaOne Presentation Archive

Here is a webpage I've assembled with links to pdf files for most of the JavaOne bofs and technical sessions I've given over the last six years.

Slides for Annotation Processing with JSR 269

Here are the slides for Annotation Processing with JSR 269, which other members of the JSR 269 expert group and I presented at JavaOne last week.

Monday May 22, 2006

Slides for Generics Best Practices

Here are the slides for BOF-0160: Best Practices With Generics and Other Java™ Platform 5.0 Language Features, which Peter and I gave at JavaOne last week.

Sunday May 14, 2006

Ask an Expert

If you want to chat with me about annotation processing, core reflection, numerics, generics, or other language features, I'll be at Sun's "Ask the Experts" area of the Java SE Community booth #723, located near the racetrack, at the following times:
  • Tuesday, May 16, noon to 1 PM



« April 2014

No bookmarks in folder