Charles Simonyi
Gondolatmorzsák a Szilíciumvölgyben
Termékeink szoftvertartalma

Nagyon szeretem a tudományos múzeumokat. Kedvenceim közé tartozik a Smithsonian Washingtonban, a londoni Természettudományi Múzeum és a Deutsches Museum Münchenben. A kellemes élmény egyik fontos összetevõje az esztétikai élvezet. Watt és Corliss gõzgépe, a Pascal vagy Babbage által megépített számológép, vagy Benz automobilja egyaránt büszkén tárja elénk szerkezetét és mûködését a csillogó tengelyek, csapágyak, rudak és fogaskerekek segítségével. Ha az ember elegendõ ideig áll e gépek elõtt, rájön arra, hogyan mûködnek. Az alak és funkció kapcsolata közvetlen és pontos.

A jövõben azonban nehezebb dolguk lesz a múzeumok kiállítóinak. Azok a gépek, amelyeket manapság építünk, sokkal kevésbé érdekesek. Az alak és a funkció többé már nem illeszkedik egymáshoz. Emlékeznek még az írógépekre és telexmasinákra? Billentyûik és tengelyeik csodálatos kattogására, ahogyan a betûk kinyomtatásával foglalatoskodtak? Nyissunk fel ma egy tintasugaras nyomtatót! Rendkívül kevés mozgó alkatrésze van: egy kerék a papír továbbítására, egy sín a nyomtatófej számára, valamint a nyomtatófej maga, néhány tucat mikroszkopikus lyuk a tintának, ezeket alig lehet látni. Nem csoda, hogy a modern nyomtató olcsó, megbízható, csendes és ránézésre felettébb unalmas. Ami meglepõ, hogy ez az egyszerû szerkezet sokkal bonyolultabb és szebb lapokat tud nyomtatni, mint az írógép vagy telex valaha is képes volt. A tintasugaras nyomtató telefaxként is mûködik, képeket, rajzokat továbbít és a nyomtatás minõsége kiváló.

Miként lehet az, hogy ma már az egyszerû szerkezetek is képesek bonyolult feladatok ellátására? A válasz az, hogy a bonyolultság továbbra is jelen van, méghozzá óriási mértékben megnövekedve, ma azonban már el tudjuk rejteni a „szoftverben”. A nyomtatónak az a része, amit látunk, csupán a „végrehajtó” a bonyolult szoftver számára, ami valójában az igazi nyomtató. A tiszta szoftvernek végrehajtóra van szüksége ahhoz, hogy a valódi világban változásokat hozzon létre, a szoftvernek „szenzorok” kellenek. Például a nyomtató szenzorok segítségével „érzi”, van-e elegendõ papír vagy tinta. A számítógép billentyûi szintén szenzorok. Vagyis a modern nyomtató nem más, mint speciális számítógépesített robot nyomtatás céljára, tehát egy gép, amelynek szenzorai, végrehajtója és szoftvere van.

Ezzel szemben a régi írógépek ugyanezen feladatok ellátására mechanikai kapcsolatokat, áttételeket és fogaskerekeket használtak. A billentyûzet „érzékelése” és a papírra nyomtatás egyaránt mechanikai úton történt. Ez nem sokat változott. De a régi írógépben a nyomtatás logikáját is a mechanika segítségével kellett megvalósítani. Például azt, hogy a betûköz és a „kocsi vissza” billentyû kivételével valamennyi billentyû elõre mozgassa a nyomtatófejet. További szabály, hogy a „betûköz” billentyû nem hagyhat nyomot. A bonyolultság legnagyobb része itt jelentkezik – a funkciók megvalósításában.

A gépek létrehozásának új módja, amelynél a szenzorokat a végrehajtókkal a szoftver kapcsolja össze, megállíthatatlan folyamat. Ennek oka, hogy a szoftver egyedülállóan alkalmas a bonyolultság kifejezésére – milliószor alkalmasabb, mint bármi más erre a célra. Késõbb majd azt is elmagyarázom, hogy miért. Most inkább azt nézzük, hogy mire vagyunk képesek, ha a bonyolultságot a szoftver bûvös szõnyege alá söpörjük.

Elõször is csökkentjük a költségeket; szoftvert létrehozni könnyebb, mint szerkezeteket. Aztán igen kis járulékos költséggel sokkal több funkciót tudunk ellátni. Például a könyvek nyomtatására használt szedõgépek legalább ötszázszor többe kerültek, mint egy jó írógép. Ma pedig a régi szedõgép minden képessége rendelkezésre áll jutányos áron egy szoftvercsomag alakjában, mint például a Microsoft Word.

Az ipar számára a legfontosabb hatás a „gondok szétválasztásának” új lehetõsége. A régi írógépek gyártóinak igen sokféle problémával kellett megküzdeni, és ezért nem voltak képesek egy-egy dologban kiemelkedõt alkotni. Gondot jelentett a billentyûzet érzékenysége, a nyomtatás minõsége, az írógépszalag kazettája, a hordozhatóság, valamint a felhasználhatóság. Ennek a sokféle feladatnak a megoldását mind az írógépek eladásából származó bevételekbõl kellett finanszírozni.

Az új digitális gazdaságban a billentyûzetet – a „kijelölõ gépezetet” –, valamint a szoftvert rendszerint különbözõ vállalatok fejlesztik ki és gyártják. A gondok így különválnak, és egy-egy szûkebb területen jobb eredményeket lehet elérni. Mindenekfelett azonban a munkát különbözõ területekrõl származó bevételek fizetik, nem csupán a szövegszerkesztés igényei, mint elõbbi példánkban. Mivel a tintasugaras nyomtatóknak számos felhasználási területe van, pl. faxoknál, személyi számítógépeknél, pénztárgépeknél stb., a nyomtatás minõségének javítására fordítható összeg óriási volt.

A mikroszkopikus pumpákat, amelyek a tintasugarakat kilövellik, más területeken is alkalmazzák. A DNS aminosav-szekvenciáinak meghatározásához igen kis, meghatározott mennyiségû folyadékminta szabályozott továbbítására van szükség, amely rendkívül hasonlít a nyomtatásnál szükséges mûködéshez. A nyomtatófej tintapöttyöket fecskendez a papírra, hogy betûk alakuljanak ki, a DNS vizsgálatánál egy csipre aminosavak meghatározott kombinációját kell eljuttatni, hogy megfelelõ kémiai reakciókat hozzanak létre. A digitális berendezések szempontjából a kétféle feladat teljesen azonos. Nem csoda, hogy a DNS szerkezetének meghatározása ma már sok ezerszer gyorsabb, mint néhány évvel ezelõtt volt.

A szenzorok és végrehajtók hasonló különválása egyaránt jelen van az új dízelmotorokban, a blokkolásgátló fékrendszereknél, a lakások elektromos hálózatánál, az ûrhajókban és sok más terméknél is. A szoftvertartalom teszi a gépeket hatékonyabbá, tisztábbá, megbízhatóbbá és sokoldalúbbá.

Ez a tendencia tovább folytatódik, amíg legtöbb berendezésünkben különválik majd a szenzor és a végrehajtó rész. Neal Stephenson, a sci-fi író a jövõ görkorcsolyáját úgy képzeli el, hogy annak kis kerekei dinamikusan változtatják majd alakjukat, hogy simán le tudjunk gurulni lépcsõkön, vagy más akadályokon is át tudjunk kelni. Ebben az esetben még a kerék, az emberiség egyik legõsibb találmánya is szoftvertartalmat kap majd.

Mi is az a Moore törvénye?

Manapság sokat hallunk Moore törvényérõl, és arról, hogyan szabályozza az információs gazdaságot. A törvény kimondja, hogy minden két évben kétszeresére nõ a számítástechnikai kapacitás. Nehéz túlbecsülni ennek a ténynek a fontosságát, következésképpen mindennél elõbbre való, hogy figyelmet fordítsunk rá.

Emlékezzünk a maharadzsa történetére, aki beleegyezett, a sakkjáték feltalálóját azzal jutalmazza, hogy a sakktábla elsõ mezejére egy szem búzát, majd minden következõre az elõzõ mezõ tartalmának dupláját helyezi el. Kiderült, hogy ennek a látszólag egyszerû ígéretnek a beváltásához a világ teljes gabonakészlete sem lenne elegendõ, mivel a számok hatványai igen gyorsan növekednek.

A számítástechnika esetében Gordon Moore úr, az Intel egyik megalapítója a jóslat szerzõje, a mi maharadzsánk pedig a Szilíciumvölgy, amely (1970-tõl kezdõdõen) már 15 cikluson keresztül produkálta a megjósolt hihetetlen mértékû növekedést. Soha korábban semmiféle ipar sem növekedett ilyen ütemben. Nyilvánvalóan senki sem várja, hogy ez a növekedés a végtelenségig folytatódjon, de még messze vagyunk attól, hogy ennek a hihetetlen ajándéknak a végéhez közeledjünk.

Moore törvényét eredetileg a szilíciumcsipekre fogalmazta meg. Ma már azonban láthatók annak a bizonyítékai, hogy az exponenciális növekedés mind a mágneses tárolólemeznél, mind az üvegszálas távközlési iparban is jelen van. Így Moore törvénye a számítástechnika növekedésének egészére vonatkozó általános állítássá vált.

Mi teszi lehetõvé ezt az egyedülálló fejlõdést a számítástechnikában? Az energiatermelés, a közlekedés, a szolgáltatások vagy a gyártás területén nyilvánvalóan nem várhatunk hasonló ütemû növekedést. Ennek oka a számokkal és a kis dolgokkal kapcsolatos alapvetõ megfigyelésben rejlik.

Elõször is, tudjuk, hogy egy szám értéke nem függ attól, hogyan írjuk és mekkora a számjegy fizikai mérete. A labdarúgó-mérkõzés eredménye nem függ attól, hogy a stadion eredményjelzõ tábláján háromméteres számjegyekkel írjuk ki, vagy pedig az újság utolsó oldalán a legapróbb betûtípussal nyomtatjuk ki. A kilencven szám ugyanaz marad, ha római számjegyekkel XC alakban, arab számjegyekkel 90, vagy a számítógép bitjeivel 1011010 alakban írjuk.

Másodszor, tudjuk, hogy minél kisebb valami, annál gyorsabban képes rezegni, vagy állapotát megváltoztatni egyik véglettõl a másikig. Nézzük a sólymot, ahogy a szárnyait méltóságteljesen mozgatja! Hallgassuk meg ezután a szúnyog zümmögését – nézni nem érdemes, mert semmit nem látunk, olyan gyorsan mozognak a szárnyai. Vajon melyik állatnak mozognak gyorsabban a szárnyai a levegõben? Ténylegesen nagyjából azonos sebességgel mozognak, azonban a szúnyog szárnyainak sokkal kisebb távolságra kell elmozdulniuk!

A számítástechnikának mindössze olyan számokra van szüksége, amelyek gyorsan tudnak változni. Ha a számítástechnikában „szúnyogszárnyakat” használunk, a kilencven szám 1011010 alakja mindössze néhány szárnycsapással százra, azaz 1100100 alakra változhat. Minél kisebb a számítógép, annál kevesebb hely szükséges egy bit információ számára, vagy másképpen ugyanannyi helyen több bit információ tárolható. A kicsi gyakran olcsóbbat, valamint kevesebb energiafelhasználást is jelent. A számoknak mindez mindegy, számukra a fizikai méretek irrelevánsak.

Ezért a számítástechnikai ipar a biteket egyre kisebbé teszi. Az üvegszálakban a fény rendkívül rövid hullámhosszú elektromos rezgés, ezért is tapasztalhatunk ezen a területen olyan gyors fejlõdést. Mi lesz akkor, ha elérjük képességeink határát az egyre kisebb szilíciumcsipek elõállításában? Sok számítástechnikus úgy gondolja, hogy akkor majd a biotechnológia, a nanotechnológia, vagy a kvantum számítástechnika siet a „maharadzsa” segítségére.


A kvantum abakusz

Nem vagyok babonás. Nem hiszek az asztrológiában, a kísértetekben, vagy a szerencsét hozó talizmánokban. Barátaim sokszor ugratnak azért, mert ilyen unalmas vagyok, jómagamnak is sokszor hiányzik az a bátorság, amivel akkor rendelkeznék, ha tudnám, hogy a csillagok állása kedvezõ terveim számára.

Mégis hiszek valamiben, ami sokkal furcsább, mint bármiféle hiedelem vagy kísértettörténet. Én a kvantummechanikában hiszek. Mostanáig csupán olyasmi volt számomra, mint valami, amit a tankönyvekben olvastam. Lehet, hogy újból el kell majd olvasnom a régi könyveket – vagy sokkal valószínûbb, hogy újakat kell vásárolnom az amazon.com-tól –, mivel a kvantummechanika nagyon fontos lehet szakterületem, a számítástudomány számára. Sok mindent tudok a bitekrõl (amelyekbõl kétféle van: az egyes és a zérus), de manapság egyre többet kezdenek beszélni az emberek a „qbitekrõl”. Mik is ezek?

A legtöbb ember a kvantummechanikát Heisenberg híres határozatlansági összefüggésével azonosítja. Valahogy a „kvantum” szó azt jelenti, semmi se biztos. Igen sajnálatos ez a népszerû, de torz vélekedés, és némiképpen a relativitás elméletére emlékeztet. A mozgás relativitása mindig is közismert volt; még az én lovas õseim is tudták, hogyan kell a vágtázó ló hátán íjukkal mozgó célra lõni. Az az új koncepció, amelyet a relativitás elmélete bevezetett, valójában a fénysebesség abszolút állandóságának az intuícióval ellentétes és meghökkentõ ténye. Csak találgatni lehet, milyen következményei lettek volna annak, ha az elméletet ennek megfelelõen nevezik el.

Teljesen hasonló módon, a kvantummechanikáról alkotott nézeteink sokkal teljesebbé válnak, ha azt nézzük, hogy az elmélet szerint mi a biztos, és nem azt, ami bizonytalan. A kvantummechanika határozottan állítja, hogy az energia a kvantumnak nevezett kis adagokban keletkezik. Létezik egy, kettõ, vagy kétezer egységnyi energia, de nem lehetséges félegységnyi, vagy 1,99 egységnyi belõle. Ez rendkívül fontos, mivel ez teszi a világot olyan érdekessé. Ez teremt stabilitást. Ahogyan az élõlényeknek génjeik vannak, amelyek apró részekbõl állnak, és meghatározzák méretüket, alakjukat, a kémiai elemek elektronjainak energiaállapotai határozzák meg a tulajdonságaikat. Ezek miatt puha és nehéz az ólom, a titán pedig erõs és könnyû. A kvantumok tulajdonságainak pontos számon tartása nélkül valóban semmi sem lehetne biztos, a világnak nem lenne érdekes szerkezete. Az arany nem emlékezne arra, hogy fényesen csillognia kell.

Heisenbergnek azonban igaza volt a határozatlansággal kapcsolatban. A kvantum abakusz mindig pontos értéket ad, csak az a bizonytalan, hogy melyiket. A kvantum összeadásnál azt mondhatjuk, egy meg egy az néha egy, de néha három. Az átlag biztosan kettõ, de egy konkrét összeadás eredményét – hogy az egy vagy három lesz-e – lehetetlen megjósolni. Ha az ember egy sor összeadást és más matematikai mûveletet végez, a kvantum abakusz úgy viselkedik, mintha számba tudná venni az összes lehetséges eredményt, mielõtt valaki az eredményt megkérdezi. Ennek az állításnak az abszurditását tipikusan „Schrödinger macskájának” története illusztrálja, amelynek az élete egy kvantumkísérlet eredményétõl függ, ezért egyidejûleg élõnek és döglöttnek kell tekinteni, amíg valaki el nem végez egy konkrét megfigyelést.

A fizikusok megtartották józan eszüket, és nagyszerû újításokat hoztak létre – mint a tranzisztorok és a lézerek – azzal, hogy elfogadták a kvantummechanika „koppenhágai interpretációját”. Ez a megközelítés alapvetõen azt mondja ki, hogy értelmetlen a kvantumos viselkedés „jelentésérõl” vitatkozni, ha a formulák a helyes eredményeket szolgáltatják. Schrödinger kellemetlen macskáját és a „megfigyelés” fogalmának filozófiai érdekességeit egyszerûen figyelmen kívül hagyták, miután a tranzisztorok és a lézerek tökéletesen mûködtek.

Az udvarias békességnek ez az állapota fokozatosan elenyészett, ahogy a fizikusok és számítástudósok elkezdték annak a módját keresni, hogyan lehetne a kvantumos viselkedés tulajdonságait számítások végzésére felhasználni. A kvantumos információ egységére a „qbit” elnevezést javasolták, mint egy miniatûr Schrödinger-féle macskát. Értéke egyidejûleg egy vagy zérus, míg valaki meg nem figyeli. Tíz qbit egy „kicsi bittel” közelebb van egy valóságos macskához: ezer különbözõ szám egyidejûleg! A qbitek bármilyen megfigyelése megtöri a varázst, és a qbitek egyetlen meghatározott számértéket adnak, ahogyan a megérthetetlen macska megfigyelése eldönti, hogy az egyértelmûen élõ-e vagy holt. Hogyan lehet egy sorozat mûveletet úgy elvégezni, hogy a részeredményeket ne figyelnénk meg? Csak az elmúlt években sikerült olyan algoritmusokat találni, melyek megengedik, hogy a folyamat közben a qbitek zavartalanok maradjanak.

Mennyire valóságos mindez? Egyetlen qbit annyira közönséges dolog, mint bármelyik középiskolai labor. Két vagy több qbitet a világtól elzárva együtt tartani sokkal nehezebb, de a laboratóriumokban sokkal gyorsabban érnek el új mérföldkövekhez e téren, mint ahogy azt az emberek korábban lehetségesnek gondolták. A mai idõk apró kvantum számítógépei valójában fizikai kísérletek, de a siker esetleges következményei lélegzetállítóak. Ha képesek vagyunk arra, hogy a kvantumbirodalom meghatározatlanságából valódi számítási eredményeket kinyerjünk, ez tovább élezi a valóság kérdéseit: pontosan hol is történnek a számítások? Oxfordban David Deutsch, a számítástechnika úttörõje egy különösen provokatív elméletet javasol: a qbitek a „multiverzum” létezésének bizonyítékai, amely az univerzumnak egy olyan mélyebb szerkezete, ami szélesebb körû és bonyolultabb, mint amit ma látunk.

Ez mind nagyon furcsa, és egyáltalán nem unalmas. Talán egyszer a kísérteteket is megmagyarázza majd.


Az elsõ számítógép

Nemrég Berlinben jártam. Amellett, hogy tiszteletemet tettem Pergamon és Babilon csodáinál, és ismét tanúja voltam Nofretete lélegzetállító szépségének, elmentem a Német Mûszaki Múzeumba is, ahol másik kedvenc berlini mûtárgyamat, a Z1-et õrzik.

Micsodát? – kérdezhetik. Nos, a mûtárgy melletti felirat szerint Z1 volt „a világ elsõ programozható bináris számítógépe”. Alkotójáról, Konrad Zusérõl nevezték el Z1-nek. Amint az Berlinben sok más mûtárggyal is megtörtént, az eredeti berendezés a háborúban megsemmisült, a kiállított példány az eredeti pontos másolata, amelyet késõbb maga Zuse készített el. Gondolom, kicsit fényesebb, elegánsabb, mint az elsõ példány, amelyet az ipari korszak alapvetõ anyagából, bádoglemezbõl készítettek. Mindenesetre a másolat nem rítt ki a többi tárgy közül, még a szaga is olyan volt, mint a kiállított esztergapadoknak, turbináknak, vagy dízelmotoroknak.

Információs társadalomban élünk. Mindenki szinte naponta kapcsolatba kerül a számítástechnikával és a számítógépekkel. Ennek az új korszaknak minden aspektusa a számítások legkorábbi eszközein alapul, ahogy hasonló módon felfedezhetjük az építészet modern elveinek, a törvénykezésnek, az esztétikának és a filozófiának gyökereit más berlini múzeumok kiállított tárgyaiban.

A számítógép memóriával rendelkezõ programozható számológép. Léteztek más programozható gépek is: Jacquard szövõgépe a XVIII. század végén például szintén programozható volt. Sok olyan számológépet készítettek, amiket nem lehetett programozni. Pascal, a híres francia filozófus és matematikus például több ilyet is tervezett és épített.

Bár Babbage korában már ismeretes volt a programozhatóság, valamint a mechanikai számítások módjai, ez nem kisebbíti az excentrikus brit tudós érdemeit: õ ismerte fel a memória fontosságát, az elõbbi három alapvetõ fogalom összekapcsolásának értékét, és a viktoriánus korszakban megpróbált mechanikus számítógépet alkotni. Nem járt sikerrel, mivel tervei megvalósításához jóval pontosabb munkára volt szükség, mint amire lehetõsége nyílt abban a korban. Azonban nagyon közel járt a sikerhez. W. Gibson és B. Sterling „A differencia gép” címmel izgalmas sci-fit írt, amelyben az alaptörténet szerint Babbage-nek sikerült számítógépet létrehozni, és a gõzgéppel hajtott számítógépek felgyorsították az ipari forradalmat. A könyvben a költõ Keats programozóként tûnik fel.

A számítástechnika igazi históriája lényegében mérnöki tevékenység: annak a története, hogyan sikerült memóriával rendelkezõ, mûködõképes programozható számítógépet létrehozni.

Babbage terve digitális volt. Ma már hozzászoktunk a digitális zenéhez, a digitális telefonhoz és ahhoz, hogy minden, ami digitális, az jobb. A „digitális” szó azt jelenti, hogy számokat használunk. Az autó kilométerórája digitális, mivel számjegyeket mutat. Babbage a megszokott tízes számrendszer tíz számjegyét használta; egy mechanikus, tízes számrendszerû digitális számítógépet épített. Mi volt ezzel a gond? Nos, egy decimális berendezés alkatrészeinek igen pontosan kell mûködniük. Mindössze 10 százalék pontatlanság már egy teljes számjegyeltérést okozhat, a kis hibák pedig könnyen összeadódnak. Ezért figyeljük izgatottan a kocsink kilométeróráját, amikor az például 39 999-et mutat: néha úgy tûnik, nem sikerül elérnie a következõ számjegyet, soha nem jelenik meg a 40 000. Babbage számítógépe a kilométeróránál ezerszer bonyolultabb volt, és hát nem is sikerült.

Ez azonban visszavisz bennünket Zuséhez. Babbage után egy évszázaddal, 1936-ban Zuse szülei konyhájában dolgozott – ez kétségtelenül lényegesen szerényebb környezet volt, mint a személyi számítástechnika pionírjainál, akik konyha helyett garázsban munkálkodhattak. Hogyan lehetséges, hogy Zuse szerény bádoglemez berendezése mégis felülmúlta Babbage gyönyörû és drága bronz fogaskerekektõl csillogó konstrukcióját? Zuse szakított a tízes számrendszer antropomorf hagyományával, ehelyett egy bináris – kettes számrendszert használó – mechanikus számítógépet épített. A bináris rendszernél csak két számjegy, a 0 és az 1 létezik. Miért jó ez? A kettes számrendszernél egy 10 százalékos hiba nem éri el az 50 százalékos határt ahhoz, hogy egy számjegynyi hiba jöjjön létre. Még ha a gép pontatlanabb, igénytelenebb is, mûködik. A Z1 gép rendkívül igénytelen volt, de többé-kevésbé mûködött. Késõbb Zuse sokféleképpen javított a hardveren, azonkívül másoktól függetlenül sok alapvetõ számítástechnikai ötletet is felfedezett: hogyan kell nagy számokat és törtszámokat kezelni, vagy hogyan kell programokat írni egy speciális nyelv segítségével.

Amerikában egész más okból hódított tért a bináris számítástechnika: a kettes számrendszer és az elektronika jól illik egymáshoz; ezt úgy is megfogalmazhatjuk, hogy az elektronika szereti a pontatlanságot – de az elektronika gyors. Mauchly és Eckert 1946-ban építette meg az elsõ bináris elektronikus számítógépet.* Persze õk nem dolgoztak bádoglemezzel, az ENIAC drága elektroncsövek tízezreit tartalmazta. Sok ezerszer gyorsabb is volt, mint a Z gépek.

A számítástechnika terén az amerikai gyõzelem utolsó felvonását Neumann János írta meg. Ahogy azt minden témával tette, amely felkeltette lángelméje érdeklõdését, sokak tapasztalatát egy koherens egészben összegezte. Minden modern számítógép Neumann János tervein alapul, beleértve azokat a kis üzleti számítógépeket is, amelyeket Zuse saját cége épített az ötvenes és hatvanas években.

Ezek a tények. Hadd mondjam el azonban, miért a Z1 a kedvencem! A szilíciumcsippel összevetve az ENIAC maga volt a sikertelenség. A villogó jelzõlámpákkal és sok ezer izzó elektroncsõvel dolgozó „óriási elektronikus agy” kétségtelenül hatalmas volt, de agynak semmiképpen nem nevezhetõ. A számítások hasznosak és érdekesek voltak, de nem indítottak el egy új korszakot – az információs korszaknak várnia kellett a csipre.

Ha az ember megnézi a képeken Babbage számítógépét, az ENIAC-ot, a Z1-et és a csipet, igen érdekes sémát fedez fel: Babbage gépe hasonlít az ENIAC-ra, de a Z1 olyan, mint a csip.

A hasonlóság Babbage gépe és az ENIAC között finom és impresszionista: mindkettõ méltóságteljes, drága, bonyolult és színes. Ezzel szemben a vizuális rokonság a Z1 gép és egy felnagyított csip között döbbenetesen közvetlen: a különbözõ kapcsolatok ugyanolyan keresztezõdései, a tevékenység elrendezése, a „szürkén-szürke” kidolgozás. Ez nem lehet véletlen. Természetesen a funkcionalitás ugyanaz, de ez még nem minden. Az olcsóságra, az alapvetõ egyszerûségre és azonosságra való törekvés, az egyszerû alapanyagok használata, az anyagokból „kinyomtatott” azonos struktúrák használata rejtõzik e rokonság mögött, amelyet szemünk egy pillantás alatt felismer.

Meghajtom a fejem elõtted, Z1, te bádogcsip!


Miért bonyolult a szoftver?

A modern dolgok gyakran felidegesítenek, mint például a szállodai szobák ébresztõórái. Tudja valaki egyáltalán, hogyan kell beállítani õket? Én mindig magammal viszem Braun gyártmányú órámat, amely még a régi módon mûködik. A sok gombbal ellátott digitális órákat túl bonyolultnak találom. Mindazonáltal, a bonyolultság az „új gazdaságban” szintén fontos jelenség. A bonyolultság szabályozása és szervezése a siker alapvetõ feltételévé vált.

Akár tetszik, akár nem, az élet bonyolult. Mint sok más esetben, a bonyolultságnak itt is lehet a jó vagy a rossz oldalát hangsúlyozni. A hátrányos oldala nehézségeket jelent. Nehéz dolog ébresztõórát használni, adóbevallást készíteni, nehéz lépest tartani a legújabb szakmai fejleményekkel, vagy nehéz megjósolni, hogy mekkora lesz a kereslet egy új termék iránt.

Másrészt azonban a bonyolultság változatosságot, sokféle választási lehetõséget, kifinomultságot jelent. Régen a választásról így vélekedtek: „Wer die Wahl hat, hat die Qual” (Akié a választás, azé a kín is). Az új gazdaságban az egyénre szabott választás sokkal nagyobb lehetõségét várjuk el és alapozunk is rá.

A bonyolultság gyakran szükséges. Ha azt akarjuk, hogy az adótörvények hûen tükrözzék a társadalom bonyolult kapcsolatrendszerét, bonyolult adótörvényekre van szükség. Elvárjuk, hogy orvosunk ismerje a legújabb technika csínját-bínját, elvárjuk, hogy kereskedõinknél megtaláljuk a legújabb termékeket stb.

A jó hír az, hogy a szoftver – a számítástechnikával együtt, amely õt életre kelti – kiválóan alkalmas a bonyolultság megtestesítésére. A szoftver az adótörvényeket program alakjában tartalmazza, és segíthet az adóívek kitöltésében. A szoftver segíti az orvost a diagnózis felállításában, a kereskedõket és vásárlókat pedig a megrendelések és üzletek lebonyolításában. Már említettem, hogyan forradalmasítja a szoftver mindennapi tárgyaink tervezését az ébresztõórától a blokkolásgátló fékrendszeren keresztül az ûrhajókig.

Ahogyan a pálinkafõzde a cefrébõl pálinkát készít, a programozás hasonló módon desztillálja egy probléma alapvetõ bonyolultságát a szoftverbe. A szoftver bonyolult, a pálinka erõs: mindegyik a lényegét tartalmazza annak, amibõl kiindultunk.

Hogyan mûködik mindez? Durván leegyszerûsítve, minden ismétlõdõ sémát (újkeletû szóval „pattern”-t), a szoftver a séma tömör leírásává alakít, amit algoritmusnak nevezünk. Érdekes felidézni a számítógépek korai változatait, például Jacquard szövõszékét, amely a szövetbe bonyolult mintákat tudott szõni. Azt is mondhatjuk, hogy a PC képernyõjének képe egy minta, amelyet az operációs rendszer és a futtatott program egy szempillantás alatt megszõ, majd újra szõ.

További példákkal is lehet illusztrálni azt a hihetetlen hatékonyságot, amellyel a szoftver a bonyolultságot képviseli. Ha a bonyolultságról tudományos módon akarunk beszélni, szükségünk van valamilyen mércére, amellyel a bonyolultságot mérni tudjuk. A XX. századi matematika egyik fontos eredménye az, hogy a programozás a legjobb ilyen mérték. Ahogy a kilogramm szabványa egy platinadarab, a programozás a matematikai bonyolultság mércéje. Ennek megfelelõen egy számot „egyszerûbbnek” nevezünk, ha egy rövidebb programmal kiszámítható.

A XX. század tudományának másik fontos eredménye az a felismerés, hogy a világegyetem legbonyolultabb jelenségének – az életnek – az alapja egy speciális alakban írt program, amely a DNS-be íródik és fehérjék segítségével van végrehajtva. Az emberi genommal kapcsolatos legújabb hírek szerint sikerült leírnunk az ember létrehozásának programját, bár még hosszú idõ fog eltelni, amíg megtudjuk, hogyan mûködik ez a program és mit is jelent valójában. Egy ideje azonban már tudjuk, hogy ez meglepõen rövid program, elfér egy hagyományos CD-ROM-on.

A sajtóban a genomot gyakran „tervrajznak” is nevezik. Ez igen hasznos metafora, de rendkívül pontatlan. A tervrajzok nagyon rossz hatásfokú ábrázolások. Egy kisméretû autó teljes tervrajza ráférhet egy CD-re, de egy élõlény ilyen típusú leírása nem férne rá a világ összes CD-jére sem. Képzeljük csak el, hogy a látóideg sok százmilliónyi kapcsolatának – amely szemünket összeköti az agy látóközpontjával – tervrajza mekkora méretû lenne! Ezzel szemben a látóideg létrehozásának programja sokkal egyszerûbb lehet, mivel csak azt kellene tartalmaznia: „növessz egy ilyen és ilyen kapcsolatot, azután ismételd meg sok százmilliószor.”

És mi van az aggyal? Tényleg olyan, mint a számítógép? Lehet, hogy igen, lehet, hogy nem, egy dolog azonban biztos: a mi DNS-ünkben tárolt információ alapján egy számítás építi fel, egy CD kapacitása töredékének felhasználásával!


Természet Világa, 132. évfolyam, 6. szám, 2001. június
http://www.chemonet.hu/TermVil/
http://www.kfki.hu/chemonet/TermVil/


Vissza a tartalomjegyzékhez