languages, middleware, services, and algorithms that separate behavior from interaction,