1. An application distribution system for distributing an application from a distribution server to a user terminal through a communication network, wherein said distribution server optimizes a program code of said application based on execution data indicative of execution conditions of said application at said user terminal to distribute said application to said user terminal.