Az assemblerekkel megoldódott a programok gépi kódra fordításának problémája, de hamarosan egy még nagyobb probléma ütötte fel a fejét. Ez pedig a hordozhatóság volt...
Hordozhatóság
A hordozhatóság, mint olyan, azt jelenti, hogy egy program tetszőleges másik gépen is futtatható legyen. A hordozhatóság problémáját csak nemrégiben sikerült orvosolni (erről majd később). A régi időkben csak néhány ember készített számítógépet, és szinte egyik gép sem dolgozott együtt másikakkal. Szóval tegyük fel van egy (A) gép, aminek az 1 mint parancs szorzást jelent, de egy másik (B) gépnek a szorzás parancsa balga módon mondjuk pont a 2.
Az assembly nyelvek segítettek az ilyen és ehhez hasonló problémák megoldásában. Mindkét gépnek megvolt a saját parancsa összeadásra, kivonásra, szorzásra és osztásra, szóval a gyakorlatban csupán kétféle assembler kellett. Egy az A géphez, ami a "MUL" parancsot 1-re, egy pedig a B géphez, ami a "MUL" parancsot 2-re fordítja.
Elméletben tetszőlegesen sok gépre portolható volt egy bizonyos program, feltéve, hogy minden géphez volt egy assembler, ami értette azt a bizonyos assembly nyelvet amit a programozó a program megíráshoz használt.
De a dolgok nagyon hamar eldurvultak. A számítógépek egyre összetettebbé váltak, és a gyártók úgy döntöttek, hogy annyi parancsot építenek be a processzoraikba, amennyit csak lehet. A probléma ott kezdődött, hogy nem tudtak megegyezésre jutni, hogy pontosan milyen parancsokat is használjanak a processzorok. Némelyik processzor képes volt matematikai műveletekre lebegőpontos számokkal, sok másik viszont nem. Az egyikkel több tucat módon hozzá lehetett férni a memóriához, a másik viszont csak egyféle módon tette lehetővé ugyanezt.
Ennek hatására az assemblerek már nem voltak alkalmasak a programok különböző platformokra való portolására, mert a platformok palettája hamar egy sötét, átláthatatlan halmazzá duzzadt. Szóval ahelyett, hogy a programozók az összes gépre próbáltak volna programokat írni, inkább kitanulták egy típus fortélyait, és a programjaikat csak arra az egy típusra írták. B gépen le akarsz futtatni egy programot, amit A gépre írtak? Sajna; semmi esélyed sincs rá.
Ekkor jöttek a magas szintű programnyelvek...
TO BE CONTINUED...