The languages used to program networks today lack modern features. Programming them is a complicated and error-prone task, and outages and infiltrations are frequent. We believe it is time to develop network programming languages with the following essential features: High-level abstractions that give programmers direct control over the network, allowing them to specify what they want the network