The bartender says, “Sorry we don’t serve neutrinos here”.
A neutrino enters the bar.
Thanks to a recent discovery by scientists at CERN, the world’s largest physics lab, such inspired jokes have been making the rounds on ‘Twitterverse’. I have to admit, it took me a few seconds to understand the joke.
Scientists at CERN have released details of their experiments, which show that certain subatomic particles called neutrinos can travel faster than light. If true, this finding would break one of the most fundamental laws of physics, the theory of relativity, and makes the possibility of time travel a scientific reality, not just science fiction.
News from CERN is always interesting, especially for us here at Coverity, as over the last year as CERN has used Coverity® Static Analysis for development testing on the ROOT project. ROOT is a software program used by CERN’s physicists to store, analyze and visualize petabytes of data from the Large Hadron Collider (LHC) experiment. My colleague Chris Adlard, who shared the details of CERN’s usage of Coverity in last week’s post, even had the opportunity for a visit to the LHC facility!
I am not a physicist, but a software engineer. When I think about time travel, it is usually during late night debugging sessions. It’s when I wish I could go back to the time I was writing code and add clear comments, initialize every variable before using it, make sure that I don’t use pointers that have not been initialized or ones that are freed, and do everything possible to avoid writing buggy code so that in the future I will not have to sit through marathon debugging sessions.
In lieu of time travel machines, for now we have automated testing. It is not the cure to all debugging, but it does make the process more efficient by allowing you to focus on logic and functional errors, instead of coding defects like memory corruptions, null pointer dereferences and uninitialized variables.
Now if the CERN discovery proves to make the possibility of time travel a reality, among other things, the process of software debugging is going to look very different in the future (or is it in the past?).