SlideShare ist ein Scribd-Unternehmen logo
1 von 8
Downloaden Sie, um offline zu lesen
Handle The Billion-Dollar
Mistake In Java
Help tools understand your code
Baptiste Mathus – MiPih
EclipseCon France 2014
Baptiste Mathus - EclipseCon France 2014 - @bmathus
http://batmat.net
Agenda
•Null – a billion-dollar mistake?
•@Nonnull, @Nullable… @WTF?
•Tooling
•Alternatives
Baptiste Mathus - EclipseCon France 2014 - @bmathus
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
Baptiste Mathus - EclipseCon France 2014 - @bmathus
Unexpected…
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
Code talks, slides walks…
Baptiste Mathus - EclipseCon France 2014 - @bmathus
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

Weitere ähnliche Inhalte

Ähnlich wie Handle the billion-dollar mistake in Java

Economics of Open Source Software
Economics of Open Source SoftwareEconomics of Open Source Software
Economics of Open Source Software
Ray Toal
 

Ähnlich wie Handle the billion-dollar mistake in Java (20)

Highcharts wrapper for Seaside by Mariano Martinez Peck
Highcharts wrapper for Seaside by Mariano Martinez PeckHighcharts wrapper for Seaside by Mariano Martinez Peck
Highcharts wrapper for Seaside by Mariano Martinez Peck
 
Artificial intelligence training in hyderabad
Artificial intelligence training in hyderabadArtificial intelligence training in hyderabad
Artificial intelligence training in hyderabad
 
Disruption is Change is Future
Disruption is Change is FutureDisruption is Change is Future
Disruption is Change is Future
 
Will your intranet be replaced with a (chat) bot?
Will your intranet be replaced with a (chat) bot?Will your intranet be replaced with a (chat) bot?
Will your intranet be replaced with a (chat) bot?
 
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
 
Building Bots Using IBM Watson
Building Bots Using IBM WatsonBuilding Bots Using IBM Watson
Building Bots Using IBM Watson
 
How Mistral AI raised €105m with no pitch deck or product
How Mistral AI raised €105m with no pitch deck or productHow Mistral AI raised €105m with no pitch deck or product
How Mistral AI raised €105m with no pitch deck or product
 
Mistral AI Strategic Memo.pdf
Mistral AI Strategic Memo.pdfMistral AI Strategic Memo.pdf
Mistral AI Strategic Memo.pdf
 
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
 
210 - Software Population Pyramids: The Current and the Future of OSS Develop...
210 - Software Population Pyramids: The Current and the Future of OSS Develop...210 - Software Population Pyramids: The Current and the Future of OSS Develop...
210 - Software Population Pyramids: The Current and the Future of OSS Develop...
 
Human-in-the-loop in IoT Systems
Human-in-the-loop in IoT SystemsHuman-in-the-loop in IoT Systems
Human-in-the-loop in IoT Systems
 
Economics of Open Source Software
Economics of Open Source SoftwareEconomics of Open Source Software
Economics of Open Source Software
 
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
 
AI & Robotics PPT For Schools Students.pptx
AI & Robotics PPT For Schools Students.pptxAI & Robotics PPT For Schools Students.pptx
AI & Robotics PPT For Schools Students.pptx
 
What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?
 
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
 
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
 
CAA2014 Community Archaeology and Technology: Making community-driven, open s...
CAA2014 Community Archaeology and Technology: Making community-driven, open s...CAA2014 Community Archaeology and Technology: Making community-driven, open s...
CAA2014 Community Archaeology and Technology: Making community-driven, open s...
 
APIs are for humans (defrag-con)
APIs are for humans   (defrag-con)APIs are for humans   (defrag-con)
APIs are for humans (defrag-con)
 
From Makerspace to MarketSpace - Trondheim MakerFaire 2015
From Makerspace to MarketSpace - Trondheim MakerFaire 2015From Makerspace to MarketSpace - Trondheim MakerFaire 2015
From Makerspace to MarketSpace - Trondheim MakerFaire 2015
 

Kürzlich hochgeladen

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Kürzlich hochgeladen (20)

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

Handle the billion-dollar mistake in Java

  • 1. Handle The Billion-Dollar Mistake In Java Help tools understand your code Baptiste Mathus – MiPih EclipseCon France 2014
  • 2. Baptiste Mathus - EclipseCon France 2014 - @bmathus http://batmat.net
  • 3. Agenda •Null – a billion-dollar mistake? •@Nonnull, @Nullable… @WTF? •Tooling •Alternatives Baptiste Mathus - EclipseCon France 2014 - @bmathus
  • 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. Baptiste Mathus - EclipseCon France 2014 - @bmathus Unexpected…
  • 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. Code talks, slides walks… Baptiste Mathus - EclipseCon France 2014 - @bmathus
  • 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