This chapter seeks to give a short introduction to the ideas that lie behind this project. Since the approach taken in the system described here is (I think) radically different from the majority of development happening in scientific computing systems, this chapter will also serve as an attempt to justify these ideas.