1. A software architecture implemented at least in part by a computing device for a distributed computing system comprising: a plurality of applications configured to handle requests submitted by remote devices over a network, the plurality of applications being written in different programming languages; an application program interface to present functions used by the plurality of applications to access network and computing resources of the distributed computing system, wherein the application program interface comprises: a first group of services related to creating Web applications, the first group of services comprising: constructing Web services; temporary caching resources; performing an initial configuration; creating controls and Web pages; enabling security in Web server applications; and accessing session state values; a second group of services related to constructing client applications, the second group of services comprising: creating windowing graphical user interface environments; and enabling graphical functionality; a third group of services related to data and handling XML documents, the third group of services comprising: enabling management of data from multiple data sources; and functions that enable XML processing; and a fourth group of services related to base class libraries, the fourth group of services comprising: defining various collections of objects; accessing configuration settings and handling errors in configuration files; debugging and tracing code execution; customizing data according to cultural related information; inputting and outputting of data; enabling a programming interface to network protocols; viewing loaded types, methods, and fields; creating, storing and managing various culture-specific resources; enabling system security and permissions; installing and running services; enabling character encoding; enabling multi-threaded programming; and facilitating runtime operations; and a common language runtime layer that translates the plurality of applications written in different programming languages into an intermediate language, the intermediate language being: executed natively by the common language runtime layer; and configured to access the network and computing resources or the first, second, third, and fourth group of services requested by the remote devices, whereby a seamless integration between multi-language application development, with cross language inheritance is allowed and a robust and secure execution environment for multiple programming languages is provided.