How Martin Odersky rewrote the rules of coding for a mobile world