Java SIG: Josh Bloch & Neal Gafter - Java 5 Puzzlers; API Design



  • The Monthly Meeting of the Java SIG


    First Half:

    The Continuing Adventures of Java Puzzlers - Tiger Traps

    Neal Gafter, Software Engineer & Java Evangelist, Google
    Joshua Bloch, Principal Engineer, Google

    Josh Bloch and Neal Gafter present eight more programming puzzles for your entertainment and enlightenment. An entirely different set of puzzles from those presented in previous years, this year's talk focuses on features introduced in the 5.0 ("Tiger") release. The game show format keeps you on your toes while the puzzles teach you about the subtleties of the Java programming language and its core libraries. Anyone with a working knowledge of the language will be able to understand the puzzles, but even the most seasoned veterans will be challenged. The lessons you take from this talk are directly applicable to your programs and designs. Some of the jokes may even be funny. A special surprise is planned for this year. As always, be sure to come early: Overripe fruit will be given to the first attendees.


    Second Half:

    How To Design a Good API and Why it Matters

    Joshua Bloch, Principal Engineer, Google

    Every day around the world, software developers spend much of their time working with a variety of Application Programming Interfaces (APIs). Some are integral to the core platform, some provide access to widely distributed frameworks, and some are written in-house for use by a few developers. Nearly all programmers occasionally function as API designers, whether they know it or not. A well-designed API can be a great asset to the organization that wrote it and to all who use it. Good APIs increase the pleasure and productivity of the developers who use them, the quality of the software they produce, and ultimately, the corporate bottom line. Conversely, poorly written APIs are a constant thorn in the developer's side, and have been known to harm the bottom line to the point of bankruptcy. Given the importance of good API design, surprisingly little has been written on the subject. In this talk, I'll attempt to help you recognize good and bad APIs and I'll offer specific suggestions for writing good APIs and coping with bad ones.


    Presenters Bios:

    Joshua Bloch is a Principal Engineer at Google and author of the Jolt Award-winning book, "Effective Java" (Addison Wesley, 2001). He is coauthor of Java Puzzlers: Traps, Pitfalls, and Corner Cases (Addison-Wesley, 2005). He was previously a Distinguished Engineer at Sun Microsystems and a Senior Systems Designer at Transarc. Josh led the design and implementation of numerous Java platform features, including JDK 5.0 language enhancements and the award-winning Java Collections Framework. He holds a Ph.D. in computer science from Carnegie Mellon University.

    Neal Gafter is a Software Engineer and Java evangelist at Google and coauthor of Java Puzzlers: Traps, Pitfalls, and Corner Cases (Addison-Wesley, 2005). He was previously a Senior Staff Engineer at Sun Microsystems, where he led the development of the Java compiler and implemented the Java language features in releases 1.4 through 5.0. He was a member of the C++ standards committee and led the development of C and C++ compilers at Sun Microsystems, Microtec Research, and Texas Instruments. He holds a Ph.D. in Computer Science from the University of Rochester and a B.S. in Computer Science from Case Western Reserve University.


    Event Logistics


    Cubberly Community Center

    4000 Middlefield Road, Room H-1

    Palo Alto, CA 94105


    6:30-7:00 Doors open. Networking. Pizza.

    7:00-7:50 The Continuing Adventures of Java

    Puzzlers - Tiger Traps by Neal Gafter & Joshua Bloch

    7:50-8:10 Announcements. Break.

    Give-aways: Several copies of Java Puzzlers

    8:10-9:10 How To Design a Good API and Why it Matters by Joshua Bloch

    9:10-9:13 Special off-topic surprise by Neal Gafter & Joshua Bloch



    $15 at the door for non-SDForum members

    No charge for SDForum members

    No registration required

    More on the Java SIG....