Future directions for research and programming