Software Interfaces POSIX "doing it with environment variables is OH SO SYSTEM FIVE LIKE OH MY GOD PASS ME THE SPOON" - theo.c Mostly ok but has a lot of baggage Kitchen sink VM programming languages ( Java Class libraries, .Net Class libraries ) Abstract OS abstractions, and then add even more stuff