Sisu
Mis tahes programmeerimiskeele eesmärk on muuta kallis paberiga arvuti kasulikuks andmetöötlus- ja salvestusseadmeks. Selle ülesande täitmiseks valitud keel peab olema tasakaalus tõhususe ja kasutusmugavuse vahel. Masinakeel tähistab mõlema teguri jaoks spektri lõppu.
Masinakeel
Masinakeel annab ainsate juhiste komplekti, millest arvuti saab aru ilma tõlkijata. Arvutid on võimelised esitama heli ja videot, töötlema ja salvestama andmeid, suhtlema Internetiga ja täitma muid spetsialiseeritud ülesandeid, reageerides juhiste komplektile, mis tunneb ära ainult ühed ja nullid. Sadade koodiridade kirjutamine ainult ühe ja nulliga on tüütu ülesanne, mis aitab kaasa kõrgetasemeliste keelte, näiteks C ja Java, populaarsusele.
Esialgsed eelised
IBMi esimene personaalarvuti oli varustatud 512 KB vabamäluga ja 360 KB disketiga. Pärast operatsioonisüsteemi laadimist disketilt mällu laaditi programmid ülejäänud mäluruumi, jättes aktiivsele programmile andmete töötlemiseks väikese RAM-ala, tavaliselt vähem kui 100 KB. Sel ajal oli programmeerija peamine eesmärk luua lühike ja tõhus kood. Nendes arvutites kasutati kõige enam programmeerimisvahendit masinakeel, mis võib olla tunduvalt väiksem kui versioon, mis on kirjutatud BASIC- või C-vormingus. Samuti oli assamblee keele kasutamine veidi lihtsam.
Platvormi sõltuvus
Masinakeel osutab otse arvuti riistvarale, andes programmeerijale täieliku kontrolli programmi käivitamise kõigi aspektide üle. Selle lähenemisviisi puuduseks on see, et efektiivse koodi kirjutamiseks peab programmeerija tundma iga integraallülituse (kiibistiku) komplekti arhitektuuri. Kui muudetakse sellist komponenti nagu videokaart või kettakontroller, tuleb uue seadme tuvastamiseks ja kasutamiseks koodi uuendada.
Kõrgetasemelised keeled
Masinakeele kiiruse ja vähese mälukasutuse eelised kaaluvad üles kiibitaseme juhiste binaarkoodidesse kirjutamise raskused. Gigabaitide RAM-i ja terabaitide salvestusruumide olemasolu on kaotanud vajaduse ülevaatliku ja tõhusa koodi järele kaasaegsetes personaalarvutites. Kõrgetasemelistes keeltes, näiteks C-s ja Java-s kirjutatud programmide täiendav mälu- ja salvestusnõudlus ei ole enam arendusplatvormi valimisel oluline. Kasutusmugavus ja hooldus on enamikus kaasaegsetes tarkvaraprojektides kiiruse ja tõhususe eelistatud tegurid.