Az alábbi fejezetben elsősorban arra szeretnék rávilágítani, hogy az Algol68 mennyiben felel meg a szoftvertermékkel szemben támasztott minőségi követelményeknek. Ezek a szempontok: helyesség, megbízhatóság, karbantarthatóság, újrafelhasználhatóság, barátságosság, hatékonyság, stb. A nyelv kialakításánál figyelembe vett szempontok: az ortogonalitás és a kiterjeszthetőség. Az volt a szándék, hogy általános célú programozási nyelvet hozzanak létre. A nyelv magjában kevés alapkonstrukció van, ezek kombinálásával újakat hozhatunk létre, ezeket elég széles körben alkalmazatjuk. Ez az előnyös tulajdonsága vezetett oda, hogy pl.: a C++ nyelv tervezésekor sokszor visszanyúltak az Algol68-hoz, joggal nevezhetjük a "programozási nyelvek latinjának". Azonban az Algol68 kialakulása és elterjedése óta felmerültek a szoftvertermékekkel szemben olyan elvárások, amelyek akkoriban még nem jelentek meg. Kiderült, hogy a szoftvertermékek kapcsán felmerülő költségek legnagyobb része a program karbantartása, pontosabban a programok nehéz karbantarthatósága miatt merül fel.
Az Algol68-ban még nem jelentek meg az osztályok, amelyek a mai minőségi elvárásoknak leginkább megfelelnek. A modularizáció, részfeladatokra bontás fontos kérdés nagy projektek fejlesztése során. Bár az Algol68-ban is léteznek eljárások, amelyek bizonyos fokig modularizációt valósítanak meg, segítségükkel átláthatóvá válik a program.
A megbízhatóság szempontjából fontos megjegyezni, hogy a nyelv erősen típusos, és számos módon lehetőséget ad a programozónak saját típusok létrehozására is. Az automatikus típuskonverzió persze segít azáltal, hogy biztosítja azon típusok között az értékadás lehetőségét, ahol ez még nem veszélyezteti a biztonságosságot.
Az Algol68 tervezői - a ma már furcsaságszáma menő - megoldásokkal: pl.: az operátorok és közöttük lévő a prioritási sorrend átdefiniálásával talán egy kicsit "túllőttek a célon". Ez a megoldás már önmagában is nagyban csökkenti a program olvashatóságát, újrafelhasználhatóságát és ezzel a karbantarthatóságot is. Természetesnek gondoljuk, hogy ha két egész szám között "+" jel van, akkor az az összeadást jelenti. Nem biztos, hogy szükséges az egészek közötti összeadást átdefiniálni. Ha arra van szükség, hogy valamilyen új típust alkossunk (amely az egészeknek résztípusa), és ezek közötti műveleteket szeretnénk felüldefiniálni, ma már erre az osztály tökéletesen megfelel. (Pl.: modulo 7 maradékosztály típus, ebben az esetben pl.: 5+3=1, ilyen esetet tudok elképzelni, amelyben felmerülhetett az az operátor felüldefiniálásának kérdése). Ezáltal, ha valaki egy korábban megírt programot szeretne továbbfejleszteni, komoly nehézségeket okoz egyáltalán a meglévő program megértése is, amely sok értékes programozói munkaórát elrabol.
Ennél is nagyobb galibát okoz a műveletek prioritásának felüldefiniálása. Úgy érezhetnénk, hogy a helyességet veszélyezteti, hiszen egy leírt műveletsor eredménye nem felel meg a matematikailag. (Bár ha úgy specifikáljuk a feladatot, hogy pl.: az összeadás legyen magasabb rendű művelet, mint a szorzás, akkor a helyesség rendben van). Ez a nagyfokú szabadság a karbantarthatóságot szintén nagyban veszélyezteti. A számok közötti műveletek eredményének matematikai helyessége szintén egy "természetes elvárás".
Összegezve elmondható, hogy a nyelv tervezése során említett ortogonalitás és ehhez kapcsolódó nagyfokú szabadság, alapötletként jó, hiszen új távlatokat nyit meg a programozó előtt, lehetőségeket ad, ami nagyon fontos egy általános célú nyelv kialakításánál. Azonban szem előtt kell tartani azt is, hogy egy programot nem feltétlenül egy ember fejleszt, így szükség van bizonyos "kompromisszumokra", korlátozásokra, amelyek segítségével a programozók "megértik egymást". Ezen kívül bizonyos esetekben a szabad változtatás esetében meg kell vizsgálni, hogy egyáltalán szükséges-e, illetve "megéri-e" (nem okoz több problémát, mintha nem valósítanánk meg).
A nyelv kihalásához vezető okokEddigiekben arról beszéltem, miért nem felelne meg sok szempontból az Algol68 nyelv a mai elvárásainknak. Mi vezetett azonban a nyelv kihalásához? Ezért is a már sokat említett ortogonalitás tehető felelőssé. Egyrészt a programozás ebben a nyelvben elég nehézkes volt, így hát nem csoda, hogy nem terjedt el. További jelentős problémát jelentett, hogy a programozási nyelvben kialakított funkciókat gépi kódra fordítsák. A nyelv túlságosan nagyfokú komplexitása kellően megnehezítette a fordítóprogramok írását. Ez vezetett a nyelv kihalásához. Szintén a kihaláshoz vezető dolognak tartják az Algol68 fájlkezelését is.
ÖsszehasonlításAz Algol68 a mai használatos nyelvek közül a Pascal-ra hasonlít a leginkább, bár sok más nyelv tervezésénél is visszanyúltak hozzá (pl.: C++). Ezek miatt mindenképp érdekes és tanulságos lehet a két nyelv összehasonlítása. A két nyelv hasonló célokkal jött létre: segítségével algoitmusokat lehessen implementálni, futtatható legyen az akkori gépeken és hasznos, tanító célzatú, mindenki számára könnyen tanulható legyen. Annak ellenére, hogy úgy tartják a Pascalnak az Algol volt az alapja, láthatjuk, hogy sok lényeges különbség van a két nyelv között. A különbségek többsége abból ered, hogy bizonyos dolgok, amelyek az Algol68-ban még megengedettek voltak, a Pascal-ban már nem azok (esetenként ezzel csökkentve a komplexitást).
(A. S. Tannenbaum: A comparison of PASCAL and ALGOL 68, The Computer Journal, 1977 június)
A különbségeket még hosszasan sorolhatnánk. A cikk a különbségeket azon nyelvi elemek esetében tárgyalja, amelyek valamilyen szinten mindkét nyelvben megtalálhatók. Nem tesz említést pl.: arról az igen lényeges különbségről, hogy míg az Algol68 már elég komoly eszközökkel (Dijstra-féle szemafor) támogatja a párhuzamosságot, addig ez a Pascalból teljesen kimaradt.
A fentiek alapján elmondható, hogy az Algol68-ban szinte minden tekintetben egy szélesebb eszköztár áll a rendelkezésre (több lehetőség, többet enged meg), mint a Pascal-ban. Persze emiatt lényegesen nehezebb jó fordítóprogramot készíteni az Algol68-hoz. Azon kívül - ahogy már azt korábban említettem - az Algol68-ban a nagyfokú szabadság esetenként nem feltétlenül szükséges, sőt rontja a program újrafelhasználhatóságát.