by Bill Pugh
FindBugs is a static analysis tool that finds coding mistakes in Java programs. It is widely popular, with more than a million downloads. In a student involving hundreds of engineers at Google, the issues identified by FindBugs were evaluated as should fix or must fix issues 81% of the time. However, many projects and developers use FindBugs on an ad-hoc basis, with individual developers running FindBugs sporadically. Some projects use FindBugs as part of their continuous build system, but find themselves unsure of the return on their investment and wondering if there might be a more effective way to use FindBugs. When first applying FindBugs is a large project and seeing hundreds or thousands of issues, others simply give up on using FindBugs. I'll briefly review FindBugs, and describe techniques for cost-effective integration of FindBugs into the software development process for medium to huge software projects, with a focus on new features available in FindBugs 2.0. Topics include how to customize FindBugs to prioritize and filter issues important to your project, how to store bug data in a cloud so that everyone working on the project shares information about when the issue was first seen and whether people think the issue is important to fix, and ways to use annotations to help FindBugs detect even more errors in your code.
by Stephen Chin
JavaFX 2.0 is the next version of a revolutionary rich client platform for developing immersive desktop applications. One of the new features in JavaFX 2.0 is a set of pure Java APIs that can be used from any JVM language, opening up tremendous possibilities. This presentation demonstrates the potential of using JavaFX 2.0 together with alternative languages such as Groovy and Scala. It also will showcase the successor to JavaFX Script, Visage, a DSL with features specifically targeted at helping create clean UIs.
Functional programming is in the air. The most common question in java programmers mind is whether it is useful and possible to do functional programming(FP) in Java ? I will start of with a quote from Timothy Budd, “Research results from the psychology of programming indicate that expertise in programming is far more strongly related to the number of different programming styles understood by individual than it is the number of years of experience in programming.” So FP will help you to become a better Java developer. And the good news is FP is language agnostic. Its a style that you learn and can use in almost all programming languages. Outline of the presentation - Introduction to FP with examples written in Java - Why FP is important to learn and explain the benefits of FP in enterprise software development - Overview of the FP libraries available in Java (functionaljava, lambdaj etc)
by Bill Pugh
With experience based on Java Programming Puzzlers (previously presented with Joshua Bloch), looking at thousands of coding mistakes found by FindBugs, and working with students and developers writing Java code for over 15 years, I'll discuss some common Java coding puzzlers and bug patterns, and techniques you can use to avoid them. While inexperienced developers can be particularly subject to many of these mistakes, they also occasionally bite experienced developers. Many of them are puzzlers, in the sense that they are hard to detect in code reviews, exhibit surprising behavior, and hard to debug. I'll avoid esoteric puzzlers that are largely a theoretical possibility, and focus on real bugs that occur with a distressing frequency in real code, illustrated by examples from current open source software. The talk will be accessible and value both to those new to the Java programming language and those with more than a decade of experience.
11th–13th January 2012