При розробці програмного забезпечення повторне використання коду є однією з найважливіших цілей, досягнення якої дозволяє зберегти зусилля і швидко сконструювати працюючий продукт завдяки використанню вже існуючих настроюваних компонентів. Ті, хто працюють над не-копілефтовими програмами часто змушені наново «винаходити колесо», оскільки набір відкритого некопілефтового програмного забезпечення є досить обмеженим.