Pri računalniškem programiranju in razvoju programske opreme je domači razvojni komplet (NDK) običajno abstraktni programski vmesnik (API), ki razvijalcu omogoča uporabo funkcij ali izvajanje kode neposredno prek jedrnega operacijskega sistema. Ta način izvajanja programa se bistveno razlikuje od izvajanja upravljane kode ali interpretiranih programov, pri katerih napisano kodo izvaja navidezni stroj ali tolmač, ki deluje kot programska plast med osnovnimi funkcijami operacijskega sistema in uporabniško napisano kodo. . Uporaba domačega razvojnega kompleta je lahko bistvena v aplikacijah, ki zahtevajo najhitrejše možne čase izvedbe in obdelave, saj lahko zagotovi neposreden dostop do strojne opreme in knjižnic, ki jih uporablja operacijski sistem. Odvisno od vrste programa, ki se piše, in ciljnega operacijskega sistema, uporaba domačega razvojnega kompleta morda sploh ne poveča hitrosti programa in lahko povzroči kodo, ki jo je težko vzdrževati, brati in prenašati v druge sisteme.
Aplikacije, ki so napisane za nekatere naprave, kot so pametni telefoni, ali uporabljajo interpretirane računalniške jezike, se ne izvajajo neposredno s procesi osrednjega operacijskega sistema ali jedrom. Namesto tega programsko kodo izvaja ločen program, znan kot navidezni stroj (VM) ali tolmač. Navidezni stroj bere kodo, razširi in razreši ukaze ter se poveže z jedrom, da izvede kodo. To je lahko koristno za nekatere razvijalce, saj zagotavlja dobro plast abstrakcije za prenosljivost in prepušča številne zapletene podrobnosti, kot so upravljanje virov in ravnanje z datotekami, ustvarjalcem navideznega stroja.
V nekaterih primerih pa je virtualni stroj lahko ovira za nekatere vrste programov. VM lahko upočasni izvajanje ali ne zagotovi dostopa do nekaterih funkcij v jedru gostitelja. Domači razvojni komplet za ciljni operacijski sistem ali napravo izpostavi funkcije jedra aplikaciji, ki se piše. Odvisno od obsega kompleta lahko to programu omogoči neposreden dostop do strojne opreme, nalaganje lastnih knjižnic po meri v jedro ali uporabo optimizacij, specifičnih za sistem.
Domači razvojni komplet se najpogosteje uporablja samo za časovno kritične dele programa. To so lahko izračuni grafične obdelave, izhod na zaslon ali vnos in izhod datoteke. Vsi programi, ki uporabljajo izvorne funkcije ali rutine, ne bodo imeli prednosti pri hitrosti, ker navidezni stroj morda že izvaja optimizacije upravljane kode, tako da je nastala strojna koda identična, ne glede na to, ali se uporabljajo izvorne funkcije. Poleg tega domača koda poveže program s specifično implementacijo operacijskega sistema in včasih s specifično različico naprave, kar pomeni, da kode, ki uporablja domači razvojni komplet, morda ne bo enostavno prenesti v druge sisteme.