Arvutiprogrammeerimises ja tarkvaraarenduses on natiivne arenduskomplekt (NDK) tavaliselt abstraktne programmeerimisliides (API), mis annab arendajale võimaluse kasutada funktsioone või käivitada koodi otse põhioperatsioonisüsteemi kaudu. See programmi käivitamise meetod erineb selgelt hallatava koodi või tõlgendatud programmide käitamisest, mille puhul kirjutatud koodi käivitab virtuaalne masin või tõlk, mis toimib tarkvarakihina operatsioonisüsteemi põhifunktsioonide ja kasutaja kirjutatud koodi vahel. . Natiivse arenduskomplekti kasutamine võib olla hädavajalik rakendustes, mis nõuavad võimalikult kiiret täitmis- ja töötlemisaega, kuna see võib pakkuda otsest juurdepääsu operatsioonisüsteemi kasutatavale riistvarale ja teekidele. Sõltuvalt kirjutatava programmi tüübist ja sihtoperatsioonisüsteemist ei pruugi natiivse arenduskomplekti kasutamine programmi kiirust üldse suurendada ning muuta koodi hooldamiseks, lugemiseks ja teistesse süsteemidesse portimiseks keeruliseks.
Rakendusi, mis on kirjutatud mõnele seadmele, näiteks nutitelefonidele, või mis kasutavad tõlgendatud arvutikeeli, ei käivita otse operatsioonisüsteemi põhiprotsessid ega kernel. Selle asemel käivitab programmi koodi eraldi programm, mida nimetatakse virtuaalmasinaks (VM) või interpretaatoriks. Virtuaalne masin loeb koodi, laiendab ja lahendab käske ning liidestub tuumaga koodi käivitamiseks. See võib olla kasulik mõnele arendajale, kuna see annab kaasaskantavuse jaoks hea abstraktsioonikihi ja jätab virtuaalmasina loojatele palju keerulisi üksikasju, nagu ressursside haldamine ja failihaldus.
Mõnel juhul võib virtuaalmasin teatud tüüpi programmidele siiski takistuseks olla. VM võib täitmist aeglustada või ei võimalda juurdepääsu mõnele hosti tuuma funktsioonile. Sihtoperatsioonisüsteemi või -seadme natiivne arenduskomplekt avaldab kirjutatavale rakendusele kerneli funktsioonid. Olenevalt komplekti mahust võib see võimaldada programmil otse riistvarale juurde pääseda, laadida kernelisse oma kohandatud teeke või kasutada süsteemispetsiifilisi optimeerimisi.
Omaarenduskomplekti kasutatakse enamasti ainult programmi ajakriitiliste osade jaoks. Need võivad olla graafika töötlemise arvutused, väljund kuvarile või faili sisend ja väljund. Kõik programmid, mis kasutavad algfunktsioone või rutiine, ei näe kiirust kasu, kuna virtuaalmasin võib juba hallatud koodi optimeerida, nii et tulemuseks olev masinakood on identne, olenemata sellest, kas kasutatakse algfunktsioone. Lisaks seob kohalik kood programmi konkreetse operatsioonisüsteemi ja mõnikord ka seadme konkreetse versiooniga, mis tähendab, et natiivset arenduskomplekti kasutavat koodi ei pruugi olla lihtne teistesse süsteemidesse teisaldada.