Very little modern software is written from scratch. To avoid re-inventing the wheel, developers depend on libraries, frameworks and tools written by others.