Mi az, hogy FORRÁSKÓD?

írta: Wyll, 7 éve

Néha felmerülnek ezek a fogalmak. Pl. pár éve annak kapcsán, hogy a Pénzügyminisztérium nem tud vagy nem akar sok pénzt fizetni egy őáltala használt, számára nagyon fontos, de külsős cég által fejlesztett program új verziójáért. Pedig muszáj neki, mert nem nála van a mágikus forráskód.

(UPDATE: megvan az eset, lásd a cikk végén.)

***

Miért van ez? Miért kéne egyáltalán megvennie? Mi az a forráskód? Hogy is van ez?

Most megpróbálom ezt leírni nagyon egyszerűen, elnagyolva, laikusoknak.

A kód szó a programozásban a programozó által írt programkódot jelenti. Ez egy emberileg olvasható szöveges file, ami nem is csoda, hiszen ezt állítja elő a programozó, amikor írja a programot, azaz amikor programoz. És mint ilyen, persze változatható, ellenőrizhető, továbbfejleszthető, stb.

Ebből készül aztán az .exe file. Ennek a tartalma már emberileg nem értelmezhető (úgy mondjuk hogy bináris), ezt hatja végre a számítógépben a processzor, ezért ezt módosítani is gyakorlatilag lehetetlen.

Régen volt olyan programfeltörési mód, amikor az .exe fájlban át kellett írni egy bizonyos bájtot. De ehhez ugye kellett egy nagyon hozzáértő ember előbb, aki ki tudta deríteni, hogy melyik pont az az egy bájt az esetleg sok ezer bájtos vagy millió bájtos exe file-on belül, amit módosítani lehet és kell; és azt is meg tudta mondani, hogy mire kell megváltoztatni. És akkor ez még csak egy egyetlen icipici változtatás a fileban. Talán így már érthető, hogy egy olyan komplexebb módosítás, amit pl. egy új programfunkció jelent, miért nem kivitelezhető az .exe file-on.

A gyakorlatban ez úgy van, hogy mindig a programkódból, az eredeti forráskódból készül a kész program, és ez egy kizárólag egyirányú, visszafordíthatatlan folyamat. Ha bármilyen változtatásra van szükség a programban, akkor ahhoz előbb újra a kódot kell módosítani, majd a módosított kódból mindig újra meg újra legenerálni (lefordítani) az új, kész (futtatható) programot.

Ez az egész forrás meg szellemi tulajdon dolog nemcsak a programokra értelmezhető.

Amikor
- a törvény egy picit változik,
- vagy valamilyen új funkciót szeretne a felhasználó (itt pl. az adott minisztérium),
- vagy bármi más miatt nem jó már a program,
de a programkód nincs a felhasználó birtokában, akkor a szükséges változtatásokat mindig kénytelen megrendelni a kód birtokosától.

Mivel az uniós és hazai pénzügyi törvények, szabályozások, körülmények elég sűrűn változnak, ezért aztán igazi aranybánya tud lenni egy ilyen kód a tulajdonosának.

Ezt inkább úgy kéne megvenni a minisztériumnak, mint egy havi előfizetéses szolgáltatást, ahol a szolgáltató viszonylag kedvező havidíj fejében garantálja, hogy a programja mindig naprakész lesz, és bármilyen törvényi változás esetén meghatározott időn belül, minél előbb szállítja az annak megfelelő új programverziót.

A minisztérium megtehetné, hogy felvesz saját programozókat, akik megírnak egy nagyon hasonló programot, mint eddig a külsős cég. Így már a kód is a minisztérium tulajdona lenne, amit aztán már olcsóbb lenne mindig módosítgatni, csakhogy év végéig ezt már aligha lehet kivitelezni. Másrészt a "rutinos" magyar olvasóban (vagy legalábbis bennem) azért felmerül, hogy egészen biztosan a törvény szavának megfelelő, kiskapuktól mentes, jól működő, úgymond "tisztességes" programot írna-e a minisztérium, ha ez az ő hatásköre volna..

Ezért van az, hogy a nyílt forrású (vagy nyílt forráskódú) programokban ilyen szempontból sokkal jobban meg lehet bízni, hiszen annak a működése a forráskódjának elemzése révén bárki számára ellenőrizhető. A Windows nem ilyen. Arról csak a MS állítja, hogy nincs benne teszem azt pl. hátsó kapu az NSA számára. (Jó, meg esetleg még a tapasztalatok is közvetetten erre utalnak.) Egy linux esetében viszont erről garantáltan meg is lehet győződni.

A másik, amit a minisztérium tehetne, hogy megvásárolja magát a programkódot is annak jelenlegi tulajdonosától, de azt neki valószínűleg esze ágában sem lenne eladni, vagy baromi nagy pénzt kérne érte. És akkor a minisztérium saját programozóinak, ha vannak, még mindig egy csomó idő lenne, mire átlátják és teljesen megértik a (sokszor iszonyú bonyolult) forráskód felépítését, logikáját. Valószínűleg előbb rontanák el, minthogy értékelhető eredményre jussanak vele. Legjobb volna az eredeti programozókat is megvenni a cégtől, de akkor már az egész céget is megvehetné szinte...

Szóval ez mindenhogy szívás. Ezért nagyon fontos dolog, hogy ki a forráskód tulajdonosa.
Általában a legritkább esetben adják csak ki a fejlesztő cégek a forráskódjaikat. Szinte mindig csak és kizárólag a késztermék, a program jut el a felhasználóhoz. Kivéve például az ilyen stratégiai fontosságú állami programokat.

_____________________________________________

Megtaláltam: ez volt az ominózus eset. Elég csúnya módszerekhez fordult a magyar állam, miután rájött, hogy ezt elbaszta.

"az NFÜ megmagyarázhatatlan okból úgy vette ezt meg, hogy a forráskódot nem kérte hozzá. Ez érthetetlen és elképesztően súlyos hiba, ugyanis bár ismert volt, hogy egy állandóan változó felületre lesz szükségük, így viszont minden kisebb-nagyobb módosításért újra le kellett szerződniük a Welt 2000-rel."

Hát igen.