Potranno quindi coesistere software differenti ma che presentano funzionalità identiche e che utilizzano lo stesso linguaggio di programmazione purché lo sviluppo di tali programmi non sia avvenuto accedendo al codice sorgente di software già esistenti.