This is a design principle in object-oriented programming:
Program to an interface, not an implementation.
At last now I know for sure what the principle means (thanks to @DanBron in the comments) but as a non-native speaker I fail to understand what the phrase "program to" means in that sentence.
It has been suggested that it means "write to" or "program against" but I still can't risk an interpretation: which example usage of "write to" would be similar? Is "program against" a phrasal verb? What does "against" mean in that case?