Why Java is not a purely Object-Oriented Language