1. A method performed on a computer system having a primary storage device, a secondary storage device, a display device, and an input/output mechanism which enables a client to dynamically distribute to a server computer in a collection of server computers a task developed in a programming language compatible with each of the server computers, the method comprising the steps of: selecting a server from a plurality of heterogenous servers to process a task based upon the overall processing load distribution among the collection of server computers and the specialized computing capabilities of each server computer; marshalling parameters and data into a task request which further comprises the substeps of, determining if code and data types related to the requested task are present on the selected server, and downloading the code and related data types onto the selected server when the code or data types are not present on the selected server; invoking a generic compute method associated with the selected server which executes the task and further comprises the substeps of, providing the task as a parameter to the generic compute method, and indicating to the server that results from a computed task should be stored in a result cache on the selected server for subsequent tasks to use; and receiving the computed task back from the selected server for further processing on the client.