Handle the billion-dollar mistake in Java

456 views

Published on

Slides associated with the EclipseCon session: https://www.eclipsecon.org/france2014/session/handle-billion-dollar-mistake-java-help-tools-understand-your-code

Note: the session was essentially code-based, so the slides may not be really useful taken alone.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
456
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Handle the billion-dollar mistake in Java

  1. 1. Handle The Billion-Dollar Mistake In Java Help tools understand your code Baptiste Mathus – MiPih EclipseCon France 2014
  2. 2. Baptiste Mathus - EclipseCon France 2014 - @bmathus http://batmat.net
  3. 3. Agenda •Null – a billion-dollar mistake? •@Nonnull, @Nullable… @WTF? •Tooling •Alternatives Baptiste Mathus - EclipseCon France 2014 - @bmathus
  4. 4. The null concept: a billion-dollar mistake? His creator, Sir Charles Antony Richard Hoare, says yes! :-) [...] languages designs is serious scientific engineering activity. And we should begin to take responsibility for the mistakes our users make in the use of our languages. – Tony Hoare Baptiste Mathus - EclipseCon France 2014 - @bmathus
  5. 5. Baptiste Mathus - EclipseCon France 2014 - @bmathus Unexpected…
  6. 6. JSR305 : Annotations for software detections Why @Nonnull… annotations? « they express design decisions that may be implicit, or described in documentation, but not easily available to tools » Baptiste Mathus - EclipseCon France 2014 - @bmathus
  7. 7. Code talks, slides walks… Baptiste Mathus - EclipseCon France 2014 - @bmathus
  8. 8. References • Null References: The Billion Dollar Mistake • http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake- Tony-Hoare • Eclipse Help For Using Null Analysis • http://eclip.se/2f • JSR 308: Annotations on Java Types • https://www.jcp.org/en/jsr/detail?id=308 • To go further: the Checker Framework • http://types.cs.washington.edu/checker-framework/ • Experiment: runtime report of non-compliant calls (WIP) • https://github.com/Batmat/jsr305reporter Baptiste Mathus - EclipseCon France 2014 - @bmathus

×