Mis on avatud lähtekoodiga tarkvara?

Avatud lähtekood viitab vähemalt kahele asjale. Esiteks on see Open Source Initiative® kaubamärk ja litsents, mille Open Source Initiative® annab teatud kriteeriumidele vastavale avatud lähtekoodiga tarkvarale (OSS), mida nimetatakse avatud lähtekoodi definitsiooniks. Siiski on avatud lähtekoodiga tarkvara kohta ka teisi ideid, mis ei vasta samadele standarditele ja pakuvad avatud lähtekoodiga tarkvara erinevat tüüpi litsentside alusel. Üks asi, mis kõigil avatud lähtekoodiga tarkvaradel on ühine, on lähtekoodi kättesaadavus kasutajale, mis tähendab, et kasutaja näeb täpselt, kuidas rakendus või programm kodeeriti, ja sageli on tal lubatud seda muuta. Olenevalt litsentsi tüübist võivad kasutajad avatud lähtekoodiga tarkvara muuta ja levitada.

Olenemata litsentsi tüübist, on avatud lähtekoodiga tarkvara analoog kommertstarkvarale. Patenditud kommertstarkvara põhineb ühel ettevõttel, kes arendab ja omab lähtekoodi. Tootelitsents võimaldab kasutajal toodet kasutada äriettevõtte poolt valmistatud kujul. Mõnel juhul lubatakse ja/või julgustatakse kasutajatel looma patenteeritud kommertstarkvara täiustamiseks pistikprogramme või lisandmooduleid, kuid neil on lubatud teha piiranguid. Selle eesmärk on kaitsta tarkvaraarendaja investeeringuid.

Avatud lähtekoodiga tarkvara liikumise taga on mitu eesmärki. Üks mõte on see, et tarkvaraarenduse eraldamine kasumi motiivist julgustab arendajaid tegema seda, mis on tarkvara ja kasutajate jaoks parim, mille tulemuseks on suurenenud kasulikkus ja vähem vigu. Samuti arvatakse, et vastastikuse eksperdihinnangu tegemine ilma kaubandusliku väljalaskekuupäeva piiranguteta aitab kaasa tarkvarale, mida pidevalt uuendatakse, selle asemel, et hoolikalt ajastatud suuremaid väljalaseid, mida ei esine väga sageli, jättes kasutajatele vahepeal vigase tarkvara. Veel üks kaalutlus on see, et koodi avamisega toovad paljud arendajad, kellest igaühel võib tekkida mõtteid tarkvara täiustamise peale, kaasa oma konkreetsed oskused ja arusaamad ning ka oma aja, et protsessi panustada, kiirendades arendust. ja seda mitmes suunas, laiendades tarkvara ulatust.