Mis on hallatav kood?

“Hallatud kood” on Microsoft® Coprorationi loodud termin. See termin viitab programmikoodile, mille kasutamiseks on vaja Common Language Runtime (CLR) virtuaalmasinat. Mõistet “hallamata kood” kasutatakse programmikoodi kohta, mis seda virtuaalmasinat ei vaja.

Common Language Runtime töötati välja selleks, et võimaldada programmidel töötada erinevates arvutites ja operatsioonisüsteemides, ilma et oleks vaja programmikoodi muuta. Selleks teisendatakse arvutiprogrammi kood virtuaalmasina baitkoodiks. Seejärel tõlgendab CLR-i virtuaalmasin seda baitkoodi ja teisendab selle konkreetse arvuti baitkoodiks, milles see töötab.

Hallatud kood on võimeline töötama igas arvutis, mis on varustatud CLR-i virtuaalmasinaga. See kõrge kaasaskantavuse tase annab sellele kindla eelise haldamata koodi ees. Haldamata kood nõuab, et programmeerijad muudaksid programmikoodi, et seda erinevates masinates kasutada. See protsess võib mitte ainult olla aeglane, vaid põhjustada ka palju rakendusevigu.

Teine hallatava koodi eelis on selle täiustatud turvalisus. Haldamata koodiga tehtud programmi turvalisus sõltub suuresti programmeerijate loodud teostusest. CLR-i virtuaalmasina kasutamine aitab programmeerijate õlgadelt võtta suure osa turvaprobleemidest. Enamik tekkida võivatest turbeprobleemidest on otseselt virtuaalmasinas endas. See iseenesest aitab probleeme tsentraliseerida, muutes turvapaikade juurutamise palju kiiremaks.

Arvutiprogrammeerijate jaoks on äärmiselt oluline küsimus, kas konkreetne koodikomplekt on hallatud kood või mittehallatav kood. Hallatud koodil on suurem kaasaskantavuse tase, kuid see teisaldatavus nõuab, et sihtarvutisse oleks installitud Common Language Runtime. Haldamata koodi saab seevastu käivitada ilma CLR-i lisamata.

Hallatud koodi kasutamisel on palju eeliseid, kuid on ka mitmeid puudusi. Peamine puudus on CLR-i virtuaalmasina kasutamiseks vajalikud üldkulud. Erinevus hallatava koodi töökiiruse ja mittehallatava koodi kiiruse vahel on sageli tühine, kuid mõnel juhul tekitab see rakenduse reageerimisajas väga märgatava erinevuse. Selle tulemusena mängib haldamata kood otsustavat rolli enamikus rakendustes, mis nõuavad kaasaskantavuse asemel suurt kiirust.