Lego

Tegnap meghallgattam egy sor előadást a Szövetség az Elektronikus Kereskedelemért Egyesület „Hol a határ” című konferenciáján.

Molnár Balázs, az Oracle előadója arról beszélt, hogyan lehet elejétől a végéig informatikai eszközökkel támogatni a kereskedelmi folyamatot. Amikor rátért a Szolgáltatás Orientált Architektúra (SOA) előnyeinek ecsetelésére, megütötte a fülemet egy szó: Lego. Rakjunk össze egy támogató rendszert egy folyamat mentén úgy, mintha legóznánk. Így gyorsabb, és a már meglévő rendszereket sem kell kidobni valami monumentális újdonság érdekében.

Hát igen, Lego. Lego és informatika. Lego és programozás. Pár napja olvastam Scott Rosenberg könyvét, a Dreaming in Code-ot. Érdekes és szórakoztató munka. Egy csapat programozó és az általuk művelt open source fejlesztés történetét követi végig esettanulmány-szerűen, de úgy, mintha valaki összetolná az esetet a tanári segédlettel. Miközben a történet kocog előre, a csapat írja a programot, kibontakozik előttünk a technikatörténeti háttér meg az informatikusi-programozói munka egy egész sor problémája és dilemmája.

Van a könyvben egy Legoland című fejezet is, amiben Rosenberg ezek egyikét járja körbe. Programot írni hosszú és fárasztó tevékenység, a felhasználók meg persze türelmetlenek. Hogyan lehetne felgyorsítani, egyszerűsíteni a munkát? Hát például úgy, hogy kész elemeket kell használni, ahol csak lehet. Ezzel meg is érkeztünk Legolandba, csak a játék minden darabja helyébe valamilyen kész, szabványos programot, modult kell odaképzelnünk. Hogyan dolgozzon ezekkel a programozó, a rendszerépítő? Hát úgy, mintha legózna: szedje össze a szükséges darabokat, emelje le őket a polcról, és rakja össze belőlük a rendszert. A feltételeket is könnyű felsorolni: következetes és kiterjedt szabványosítás, a modulok gondos dokumentálása, könyvtárazása…

Új ez a gondolat? Nem, hiszen ha belegondolunk, erre a szabványosításra, modularitásra, a csereszabatos alkatrészek világára épül a modern tömeggyártás. A kérdés, ha kellő magasságba emelkedünk, tehát végső soron az, meg lehet-e úgy szervezni a programozást és az informatikai rendszerek építését, mint a modern gyáripart, ahogy azt Ford és mások kiötlötték, annak minden kellemes és kellemetlen következményével persze.

Háziipar vagy modern tömeggyártás (tömeges testreszabás) – ez itt a kérdés. A legózás gondolata végigkíséri a programozás történetét. Én már vagy húsz éve nem írtam programot, de azért emlékszem a szubrutinokra, ezekre az adott pontokon hívószóra (GOSUB?) szolgálatkészen előreugró alprogramocskákra, amelyek használatával időt, pénzt és fáradságot lehetett megtakarítani. Ilyeneket magának is készített az ember, de nyilván könyvtárazni és csereberélni is lehetett őket. De itt nem ér véget az informatikai legózás története, mindig újabb és újabb megoldások, eljárások jönnek. Az új mindig jobb az előzőnél, de sohasem tökéletes.

Hogyan is lehetne – írja Rosenberg -, képzeljünk csak el egy olyan legót, amelynek egyik kockája két milliméter hosszú a másik viszont húsz méteres, az egyik műanyagból van, a másik acélból a harmadik meg valamilyen gázból, az egyik egy kis pöcökkel kapcsolódik, a másikat oda kell ragasztani a szomszédjához, a harmadikat pedig drótozni kell… Aztán van itt egy érdekes lélektani jelenség is: sok programozó nulláról szeret indulni, büszke szerzőként viselkedik, akinek ne mondják, hogy ezt vagy azt a jelenetet Tolsztoj már egész jól megírta, vegye át tőle, minek strapálja magát.

A legózás problematikája hosszú árnyékot vet a programozásra, főnixként újraéled, reinkarnálódik. Mindeközben felmerül egy sor stratégiai probléma is. Hogy példát mondjunk: mi lesz a következménye a további erőteljes szabványosításnak? Miben jelenik meg a differenciális oly fontos stratégai lehetősége? Mégis igaza lenne Nicholas Carrnak, aki ha szabványosítást, közüzemi megoldást, új gigantikus szerverfarmot, on-demand modellt lát, elégedetten mosolyog: Ugye megmontam!  Az történik, aminek történnie kell. Ti sem vagytok kivételek.

Post a Comment

You must be logged in to post a comment.