A method for optimizing the distribution of applications in a multi-platform system comprising a first platform having a first operating system and a second platform comprising a second operating system, wherein the second operating system is an operating system that is not the first operating system, the method comprising the steps of: identifying, in a multi-platform system, a plurality of processes executing in a first platform of the system amenable to migration to a second platform of the system by determining a specific complexity score for migrating each process of the plurality of processes and identifying only processes with a complexity value below a predetermined threshold, wherein the specific complexity comprises one or more of: the dependencies of the process; or computing resource usage rates; for each process of the plurality of processes, determining an estimated saving in computing cost of migrating the process to the second operating system by determining the amount of processing used by the process in the first platform; evaluating a candidacy of each process for migration, the candidacy comprising a viability of migrating the process to the second platform and the estimated saving in computing cost, wherein the viability of a process for migration to the second platform is determined by whether the process is specific to the first platform; based on the evaluation of the candidacy of each process, determining a collection of processes from the plurality of processes to be migrated from the first platform to the second platform, wherein the collection of processes to be migrated comprises a plurality of processes which are determined to be viable for migration from the first platform to the second platform; calculating a cost of migration for each process from the collection of processes; prioritizing the collection of processes in an order of migration according to the cost of migration for processes comprising the collection of processes; and incrementally migrating the collection of processes from the first platform to the second platform according to the order of migration. identifying, in a multi-platform system, a plurality of processes executing in a first platform of the system amenable to migration to a second platform of the system by determining a specific complexity score for migrating each process of the plurality of processes and identifying only processes with a complexity value below a predetermined threshold, wherein the specific complexity comprises one or more of: the dependencies of the process; or computing resource usage rates; the dependencies of the process; or computing resource usage rates; for each process of the plurality of processes, determining an estimated saving in computing cost of migrating the process to the second operating system by determining the amount of processing used by the process in the first platform; evaluating a candidacy of each process for migration, the candidacy comprising a viability of migrating the process to the second platform and the estimated saving in computing cost, wherein the viability of a process for migration to the second platform is determined by whether the process is specific to the first platform; based on the evaluation of the candidacy of each process, determining a collection of processes from the plurality of processes to be migrated from the first platform to the second platform, wherein the collection of processes to be migrated comprises a plurality of processes which are determined to be viable for migration from the first platform to the second platform; calculating a cost of migration for each process from the collection of processes; prioritizing the collection of processes in an order of migration according to the cost of migration for processes comprising the collection of processes; and incrementally migrating the collection of processes from the first platform to the second platform according to the order of migration.