Masina tasemel koodi kirjutamine on keeruline protsess.
Pildi krediit: Jupiterimages/Photos.com/Getty Images
Iga programmeerimiskeele eesmärk on muuta arvuti kallist elektroonilisest paberimassist kasulikuks andmetöötlus- ja salvestusseadmeks. Selle ülesande täitmiseks keele valimine on kompromiss tõhususe ja kasutuslihtsuse vahel. Masinakeel esindab mõlema teguri spektri äärmusi.
Masina keel
Masina keel loob ainsa juhiste komplekti, millest arvuti ilma tõlkijata aru saab. Arvutid suudavad teostada heli ja video taasesitamist, andmetöötlust ja -salvestust, Internetti side ja kõik muud eriülesanded, vastates käsukomplektile, mis tunneb ära ainult ühe ja nullid. Sadade ühtedest ja nullidest koosneva koodiridade kirjutamine on nõudlik ja tüütu protsess, mis põhjustab kõrgema taseme keelte, nagu C ja Java, populaarsust.
Päeva video
Varased eelised
Esimene IBMi personaalarvuti oli varustatud 512 kilobaidise muutmälu ja 360 kilobaidise disketiseadmega. Pärast seda, kui operatsioonisüsteem laaditi disketiseadmelt mällu, laaditi programmid ülejäänud mäluruumi, mis jätab aktiivsele programmile töötlemiseks väga väikese ala RAM-i, sageli alla 100 kilobaidi andmeid. Sel perioodil oli programmeerija peamine mure lahja ja tõhus kood. Nendes varajastes arvutites valitud programmeerimistööriistad olid tavaliselt masinakeel, mis võib olla tunduvalt väiksem kui BASIC- või C-keeles kirjutatud versioon. Samuti oli mõnevõrra lihtsam kasutada järeltulijat, assemblerkeelt.
Platvormi sõltuvus
Masina keel käsitleb otse arvuti riistvara, andes programmeerijale täieliku kontrolli programmi täitmise kõigi aspektide üle. Selle lähenemisviisi puuduseks on see, et programmeerija peab enne tõhusa koodi kirjutamist teadma iga kiibistiku arhitektuuri. Kui muudetakse näiteks mõnda komponenti, näiteks videokaarti või draivi kontrollerit, tuleb masina keelekoodi värskendada, et uus seade ära tunda ja adresseerida.
Kõrgetasemelised keeled
Masinakeele kiiruse ja väikese mälumahu eelised kaaluvad üha enam üles kiibi tasemel juhiste binaarkoodi kirjutamise raskus. Gigabaidi RAM-i ja terabaiti vaba salvestusruumi on tänapäevastes personaalarvutites kaotanud nõude vähese ja tõhusa koodi järele. Kõrgema taseme keeltes (nt C ja Java) kirjutatud programmide täiendavad mälu- ja salvestusnõuded ei ole enam arendusplatvormi valikul teguriks. Kasutuslihtsus ja tulevaste programmide hooldusprobleemid asendavad enamiku kaasaegsete tarkvaraprojektide kiiruse ja tõhususe.