Skip to content

References

David Bürgin edited this page Apr 2, 2016 · 14 revisions

References

Checker Framework. The Checker Framework Manual, links to which were sprinkled throughout the text, is a great resource worth scrolling through. They also have a tutorial.

null. Tony Hoare, the inventor of the null reference famously called his invention his ‘billion-dollar mistake’. Assorted remarks about the dangers of null are pervasive in the printed Java literature. Some useful online resources include the Guava wiki page ‘Using and avoiding null’, and the topical questions and answers on the Programmers Stack Exchange, ‘Are null references really a bad thing?’ and ‘If null is bad, why do modern languages implement it?’. Discussions of the Optional class tend to remark on null and the problems associated with it: I found the articles by Edwin Dalorzo, ‘Java 8 Optional Objects’, and Benjamin Winterberg, ‘Avoiding Null Checks in Java 8’, useful. Java platform developer Stuart Marks talks about Optional at JavaOne 2015.

Similar tools. The Checker Framework is great, but it’s also a good idea to investigate competing or complementary tools. Some well-known names are SonarQube, FindBugs, PMD, and Error Prone. IDEs have gained excellent nullness inference capabilities over the years, and these are proudly being advertised, too (Eclipse, IntelliJ IDEA, NetBeans). The Checker Framework plugin for Eclipse works well out of the box and can be used without even touching the Maven POM.

Research. The Checker Framework comes out of academia, and there are lots of interesting papers about nullness analysis in Java out there. The ‘Publications’ section in the Checker Framework manual has papers about the Checker Framework itself. Patrice Chalin and Perry James’s ‘Non-Null References by Default in Java: Alleviating the Nullity Annotation Burden’ (2006) may be a good starting point for some empirical findings about the nullability of references in Java.