A magas szintű programozási nyelvek hátrányai

A számítógépes programozási terminológiában a programozási nyelveket gyakran "magas szintű" és "alacsony szintű" nyelvekre különítik el. A kettő közötti különbség a hardveres interakció kérdése. Egyszerűen fogalmazva, az alacsony szintű nyelvek "alul" vannak a számítógépes rendszerben, közelebb a tényleges hardveres interakcióhoz. A magas szintű nyelveket elvonatkoztatják a hardvertől. Ennek az absztrakciónak az eredménye gyorsabb, olvashatóbb kódot, de alacsonyabb sebesség-előnyöket és a rendszererőforrásokhoz való hozzáférést eredményezhet.

Absztrakció

Ami a magas szintű nyelveket különbözteti meg az alacsony szintű nyelvektől, az az absztrakció mértéke, amely a nyelvnek a rendszererőforrásoktól való. A rendszererőforrásokkal való napi kezelés lassú és fájdalmas lehet. Magas szintű nyelveket hoztak létre ennek a problémának a kezelésére úgy, hogy a rendszert a programozó számára kezelték, felszabadítva bonyolultabb feladatok elvégzésére, miközben figyelmen kívül hagyja a rendszer apró részleteit, például a memóriát menedzsment. Ennek azonban megvan az a hátránya, hogy a programozó olyan helyzetbe kerülhet, amikor rendszer-hozzáférésre van szükség, és egy magas szintű nyelv nem tudja ezt a hozzáférést biztosítani. A magas szintű nyelvek rendszerint nem alkalmasak rendszerprogramozásra.

A nap videója

Sebesség

A magas szintű nyelvek általában "értelmezett" nyelvek, nem pedig "összeállított" alacsony szintű nyelvek. Az „interpretált” egyszerűen azt jelenti, hogy egy nyelv olyan tolmácsot használ, amely soronként végrehajtja a forráskódot, nem pedig bináris fájlt fordít. A tolmácsok azonban gyakran lefordított nyelveken írt programok. Emiatt az értelmezett nyelv -- például a Python -- csak a Python interpreter tetején fut, amely C nyelven íródott. Ez növeli az értelmezett programok memóriáját és időráfordítását, és gyakran lassabban futnak le.

A rendszer sajátosságai

A magas szintű kód látszólagos erőssége a hordozhatóság. A magas szintű kód minden olyan rendszeren futhat, amelyre telepítve van a megfelelő tolmács. Amikor azonban egy programot számítógépre fordítanak, az a rendszer teljes környezetét figyelembe veszi a fordítás során. Egy értelmezett nyelv már annyira elvonatkoztatott a rendszertől, hogy az értelmezett program semmit sem tud a rendszerről azon kívül, amit a tolmács tud neki adni.

Programozási korlátok

A magas szintű nyelvek természetéből adódóan vannak olyan feladatok, amelyekre nem, vagy legalábbis még nem alkalmasak. A rendszererőforrásokhoz való hozzáférés nélkül nehéz gyors, OS-natív alkalmazásokat fejleszteni. Ezenkívül még az operációs rendszer fejlesztése is problémássá válik. Ahogy egyre több szoftver költözik az internetre, ez a tény egyre kevésbé aggodalomra ad okot, de kereskedelmi és ipari felhasználás esetén előfordulhat, hogy a tolmácsolt nyelvek túl lassan működnek, vagy túlságosan távol állnak a hardveres interakciótól.