Werner Dietl | Devoxx US

Werner Dietl
Werner Dietl Twitter

From University of Waterloo

Werner Dietl is an assistant professor at the University of Waterloo in Canada. His goal is to provide developers with sound help in eliminating defects. He combines theoretical results with practical tools so developers can create high-quality, trustworthy software and reduce the enormous impact of software defects.

Blog: https://ece.uwaterloo.ca/~wdietl/

method_archi Methodology & Architecture

Preventing null pointer exceptions at compile time


Null pointer exceptions are the bane of programmers, and have been called the "billion dollar mistake". They happen even if you think hard about your code and test it thoroughly. However, you don't have to be a victim any longer! Come learn about a simple, yet powerful, type system that prevents null pointer exceptions at compile time.

This session will explain the causes of null pointer exceptions, including their relationship to issues such as object initialization, map keys, method contracts, Java 8's Optional class, and dynamic checks. It will show how programmers' informal reasoning can be automated into a formal proof, in a way that is easier to use than Java generics or the Optional class.

You will learn how to use pluggable type-checking, and in particular a freely-available tool called the Nullness Checker (http://CheckerFramework.org/) that integrates with your development environment and toolchain. It has found hundreds of bugs in millions of lines of well-tested code, and it is easy enough for novices such as beginning CS students.

Bring your tricky nullness issues and see how they can be solved!

method_archi Methodology & Architecture

The Checker Framework in action: Preventing errors before they happen


Are you tired of null pointer exceptions, unintended side effects, SQL injections, concurrency errors, mistaken equality tests, and other run-time errors? Are your users tired of them in your code? This presentation shows you how to guarantee, at compile time, that these runtime exceptions cannot occur. You have nothing to lose but your bugs!

The Checker Framework provides more than a dozen pluggable type systems that are ready to use, including nullness, immutability, and concurrency type-checkers. These type systems have found hundreds of bugs in well-tested open source code, including from Oracle, Google, Apache, etc., and even when other tools like FindBugs gave the code a clean bill of health. The Checker Framework also enables you to create your own new pluggable type system for Java.

This short presentation is primarily a demo that concretely shows you the tool in action, helping you to understand how it works and whether it is right for you. You will leave the demo understanding the concepts of pluggable type-checking and ready to use it to improve your code.

The tool is freely available at http://CheckerFramework.org/. You have nothing to lose but your bugs!