A gépi szintű nyelv előnyei és hátrányai
Bármely programozási nyelv célja, hogy egy számítógépet drága elektronikus papírsúlyból hasznos adatfeldolgozó és -tároló eszközzé alakítson. A feladat végrehajtásához szükséges nyelv kiválasztása kompromisszum a hatékonyság és a könnyű használat között. A gépi nyelv mindkét tényező spektrumának szélső végét jelenti.
Gépi nyelv
A gépi nyelv állítja elő az egyetlen utasításkészletet, amelyet a számítógép fordító nélkül is megért. A számítógépek képesek végrehajtani a hang- és képvisszaadást, az adatfeldolgozást és -tárolást, az internetes kommunikációt és minden egyéb speciális feladatot, ha olyan utasításkészletre reagálnak, amely csak egyeseket és nullákat ismer fel. Egyesekből és nullákból álló kódsorok százainak megírása igényes és fárasztó folyamat, amely a magasabb szintű nyelvek, például a C és a Java népszerűségéért felelős.
Korai előnyök
Az első IBM személyi számítógépet 512 kilobájt közvetlen elérésű memóriával és 360 kilobyte-os hajlékonylemez-meghajtóval szerelték fel. Miután az operációs rendszert betöltötték a memóriába a hajlékonylemez-meghajtóról, a programokat a fennmaradó memóriaterületre töltötték be, így nagyon kis, gyakran 100 kilobájtnál kisebb RAM-terület maradt az aktív program számára az adatok feldolgozásához. Ebben az időszakban a programozó fő gondja a karcsú, hatékony kód volt. Ezeken a korai számítógépeken a választott programozási eszközök általában a gépi nyelvek voltak, ami jóval kisebb lehet, mint egy BASIC vagy C nyelven írt változat. Valamivel könnyebb volt a leszármazott, assembly nyelvet is használni.
Platformfüggőség
A gépi nyelv közvetlenül a számítógép hardverét szólítja meg, így a programozó teljes ellenőrzést biztosít a program végrehajtásának minden aspektusa felett. Ennek a megközelítésnek az a hátránya, hogy a programozónak ismernie kell az egyes chipkészletek architektúráját, mielőtt hatékony kódot írhatna. Ha például egy komponenst, például egy videokártyát vagy meghajtóvezérlőt megváltoztatnak, frissíteni kell a gép nyelvi kódját, hogy felismerje és megcímezze az új eszközt.
Magas szintű nyelvek
A gépi nyelv sebességének és kis memóriaigényének előnyeit egyre inkább felülmúlja a chip szintű utasítások bináris kódban történő írásának nehézsége. A gigabájt RAM és a terabájtnyi rendelkezésre álló tárhely megszüntette a karcsú, hatékony kód iránti igényt a modern személyi számítógépekben. A magasabb szintű nyelveken, például C és Java nyelven írt programok több memória- és tárhelyigénye már nem számít a fejlesztői platform kiválasztásának. A legtöbb modern szoftverprojektben a könnyű használhatóság és a jövőbeni programkarbantartási szempontok veszik át a sebesség és a hatékonyság helyét.