R has an intrinsic structure that makes functions and function calls the way to approach specific computations and a large set of programming tools has evolved to make packages the natural way to organize non-trivial collections of functions and other tools. The chapter discusses the R version, including questions of designing OOP structure for extending R. It examines a number of interfaces from R to computations in other languages and to subroutines linked to the R process. A key concept for programming in the large as envisioned here is that one should look for the best available computation for an important task. Modern computing is too broad and includes too many good implementations to restrict one's choice when tackling a serious application. For many languages general interfaces from R exist. Also, it may be reasonable to add a new interface or extend an existing one, by understanding how interfaces can work.