4D Programming