Grace Hopper, a programozó ellentengernagyi

Programozó-női-princípium #3

2017. január 22. - Indie Crawford

Női programozó princípium sorozatom trilógiává magasztosul a következőkben, hiszen Grace Hopper ellentengernagy, vagy ahogy emlegetni szokták, Amazing Grace* természetesen nem maradhat ki egy ilyen szériából.

programozo_noi_principium_grace_hopper.jpg

Hősnőnk a századforduló utáni New Yorkban, Grace Brewster Murray néven látta meg a napvilágot, matematika és fizika szakon szerezett BSc-t 1928-ban, '30-ban pedig a Yale-en kezdte meg a Mester fokozatú tanulmányokat majd '34-ben matematikából PhD-zett is. Egy évvel előtte férjhez ment Vincent Foster Hopper matematika professzorhoz, akitől 15 évvel később elvált, a Hopper nevet azonban nem adta.

Informatikai karrierje a haditengerészetnél bontakozott ki, melynek tartalékosi kötelékbe 1943-ban lépett be. A munkássága összefonódik a számítástechnika hőskorát megnyitó Mark I nevezetű számítógéppel. Ahogy Ada Lovelace-t a Babbage által megálmodott Analytical Engine társaságában idéznénk lelki szemeink elé, úgy Hopper minden bizonyal a Howard H. Aiken alkotta Mark I mellett foglalna helyet a programozás képzeletbeli pantheonjában. A Mark I-et egyébként éppen olyan feladatokra is használták, mint a több mint 100 évvel előtte megálmodott elődjét szerették volna, például matematikai táblázatokat készítettek vele. Ennek a műszernek már magyar vonatkozása is akad – az első programok egyikét maga von Neumann, eredeti nevén Neumann János, a modern számítástechnika magyar-zsidó származású kulcsfigurája istensége futtatta a gépen: az atombomba megtervezéshez volt szüksége némi számítókapacitásra...

Mark I számítógép
A fiúk a klubból...

Szóval Hopper az emblematikus Mark I számítógépen látott hozzá a programozói hivatás megismeréséhez újraalkotásához. A gép alkotója, Howard H. Aiken csapatában dolgozott a Harvard Egyetem laborjában egészen '49-ig amikor is továbbra is a Haditengerészet munkatársa maradva ugyan, de civil állást is vállalt. Az UNIVEC I nevezetű számítógépet fejlesztő céghez került, ahol is 1952-ben publikálta azon korábbi ötletét, mellyel örökre beírta magát a programozás történetébe. Ma fordítóprogramnak, vagy egyszerűen csak fordítónak hívjuk az eszközt, melynek egyik legelső, Grace Hopper által megalkotott példánya az elegáns A-0 nevet kapta.

noi_programozo_grace_hopper.jpg

Hogy mi is a fordító? Egyszerűen fogalmazva, egy olyan program, amely lehetővé teszi, hogy ne pusztán egyesek és nullák sorozatából, illetve a legelemibb utasításokat jelképező szavak bonyolult felépítményéből állhasson a komputerprogramok kódja, hanem helyette az emberi nyelvhez és gondolkodáshoz sokkal közelebb maradva írhassunk programot. A fordító hivatott e magasabb szintű programkódot a gép által közvetlenül értelmezhető legalacsonyabb szintre átkonvertálni, azaz gépi kóddá alakítani. Egyszóval a fordítóprogram koncepciójának a születése egyúttal a modern értelemben vett programnyelvek lehetőségét is magával hozta. Az alacsony szintű kódolás bonyolult, fárasztó és a hiba lehetőségét magában hordozó aktusa helyett megnyílt az út a magasabb szintű programnyelvek előtt, a különböző nyelvek máig tartó pszichodelikusan sokszínű evolúcióját indítva be ezzel.

Programnyelvek fejlődése, 40-es, 50-es évek: Gépi kód, Assembly, Short Code, Autocode
A programnyelvek evolúciója – illusztráció: Land of Lisp

Nem elhanyagolható nyereség az sem, hogy míg a gépi kód utasításkészlete rendszerről-rendszerre változik, addig a magasabb szinten írt programunk minden rendszeren változtatás nélkül futtatható lesz addig, míg az adott nyelv fordítóprogramja rendelkezésre áll az adott architektúrára. Ez az '50-es évek masszív célszámítógépeinek idején még nem bírt olyan nagy jelentőséggel, de a '60-as évek végével kibontakozó, máig tartó új korszak elképzelhetetlen lenne univerzális / hordozható / platformfüggetlen szoftverek nélkül.

Programnyelvek fejlődése, 60-as, 70-es évek: Fortran, Cobol, Simula, Lisp
Illusztráció: Land of Lisp

A szoftverfejlesztés túlnyomó hányada ma is ilyen magasabb szintű programnyelveken zajlik, melyeket sok esetben a fordítóprogram alakít gépi kóddá aztán. A magasabb szintű nyelvek között léteznek még interpretáltak is, melyeket nem a fordítóprogram alakít közvetlen kóddá, hanem az úgynevezett értelmező közbeiktatásával, futás közben folyamatosan történik a magasabb szint alacsonyabbnak való megfeleltetése, de az elv lényegében itt is ugyan az.

Programnyelvek fejlődése, 2000-es évek: C++, C#, Ruby, Python
Illusztráció: Land of Lisp

De ne szaladjunk ennyire előre! Tehát az 50-es években többek közt Hopper munkásságának köszönhetően bekövetkező paradigmaváltás forradalmi változásokat jelentett az informatika tudományában. Az ekkor megjelent új nyelveket harmadik generációs nyelveknek hívjuk, a gépi kód első és a még mindig gép-központú, platformhoz kötött assembly nyelvek második generációja után.

Az újítás drámaiságát szemléltetendő, megpróbálhatjuk elképzelni, hogy egy turistának próbáljuk elmagyarázni, hogyan juthat el teszem azt Szentendréről a Budai várba anélkül, hogy közös nyelvet beszélnénk vele. Az őrült gesztikulálás, számok és rajzok papírra vetése, és a zavart vigyorok ellenére sem biztos, hogy egykönnyen célba érne ez az illető. Most képzeljük el ugyan ezt a feladatot a Google fordítójának a közbeiktatásával. Ha a turizmus nem is, de a számítógépes ipar nagy részben a fordítóprogram koncepciójának köszönheti mai ábrázatát. Persze a forradalmi gondolat  pláne egy nő szájából az 50-es években – hogy magyar angol nyelven kommunikáljunk a gépekkel, sokak számára nevetségesnek tűnt, de a megjelenő első új nyelvek hamar elhallgattatták a kételkedőket.

A programozás női princípuma

Az egyik ilyen nyelv pedig természetesen éppen Grace Hopper tervei alapján készült el, COBOL-nak hívták, és a Battlestar Galactica fiktív bolygójának a nevével ellentétben egy betűszót takar, mely a COmmon Business-Oriented Language kifejezésből képződik. Ennek lefordításával inkább nem kísérleteznék, de némi magyarázatot azért adok. Hopper az elsők között ismerte föl, hogy az a fajta szokatlan elvonatkoztatás és nagy mennyiségű számolgatás, amely az alacsony szintű nyelvekkel való munkát jellemzi, sokakat elidegenít a számítástechnikától. Persze nem hobbi-programozókra vagy független játékfejlesztőkre kell gondolni a szobányi számítógépek korában, de az ipari és üzleti szférák számára óriási potenciált rejtet magában a informatikai fejlődés. A gond csak az volt, hogy nem állt rendelkezésre az a médium, melynek segítségével a vállalkozások nagyobb befektetés nélkül el tudták volna végezni számításigényes feladataikat. Hopperék előtt a gépezetben rejlő szellem sokak számára elérhetetlen volt.

Ennek a helyzetnek az orvoslására jött létre tehát a COBOL, valamint egy másik népszerű harmadik generációs nyelv, a FORTRAN.

Grace Hopper programozást tanít
Korabeli programozó tanfolyam...

Persze a gyorsabb, megbízhatóbb és élvezetesebb munkát biztosító eszköz végül szinte teljes mértékben le is uralta az egész terepet, és míg a FORTRAN az üzleti szférában tarolt, Grace Hopper a COBOL szabványosításán és a haditengerészetnél való elterjesztésén dolgozott. A '70-es években tovább folytatta a haditengerészet informatikai hátterének modernizálását, valamint a rendszerek tesztelésére alkalmas szabványok kifejlesztésén dolgozott. Ez a munkája szintén nagy hatást gyakorolt a programozási nyelvek egyre színesedő palettájára, az általa javasoltak egységes mederbe parancsolták a megszülető újabb és újabb nyelvek hömpölygő árját.

61 éves korában titkos küldetésre hívták vissza a szolgálatba, és ez után még sok évvel a nyugdíjkorhatár fölött is ott maradhatott, feljebb és feljebb menetelve a ranglétrán egész az ellentengernagyi posztig, valamint megkapta a legmagasabb fokozatú nem harctéri kitüntetést is. Ő volt a legidősebb aktív katona a tengerészetnél 79 éves nyugdíjazása idején, sőt az Amerikai Egyesült Államok Haditengerészetének a történetében is csak 4 személy akad, akik ennél idősebb korukban is még szolgálatban álltak. „Amazing” Grace Hopper 1992-ben, 85 évesen eltávozott az élők sorából, de a tudományok történetébe kitörölhetetlenül beírta nevét.

Grace Hopper, ellentengernagy

A bejegyzés trackback címe:

http://indiecrawford.blog.hu/api/trackback/id/tr3312137227

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben.

szazharminchet 2017.01.23. 15:26:11

Csak egy apróság: nem a FORTRAN tarolt az üzleti szférában, hanem éppen a COBOL. Mint a neve is mondja, "business oriented", elsősorban a pénzügyi/banki adatfeldolgozásban használták. A FORTRAN ("formula translator") pedig elsősorban a tudományis/műszaki számítások gépre vitelében terjedt el (és még ma is használják). A FORTRAN megalkotója eredetileg az IBM-nél John Backus.

Indie Crawford · http://indiecrawford.blog.hu 2017.01.23. 16:58:26

@szazharminchet: Köszi a helyesbítést kedves szazharminhet, ez esetben félreérthettem kissé a dolgot, elnézést kérek, utánaolvasok kicsit alaposabban és javítom!

Köszi az észrevételt!

Jakab.gipsz 2017.01.23. 20:47:17

Egy aprócska szőrszál hasogatás, Neumann János eredeti neve Margitai Neumann János, amit későbbiekben von Neumann-ra módosított, azaz a magyarsághoz asszimilálódott hite hagyott, ezért nincs olyan jó sajtója, mint pl, Einsteinek hol ott torony magasan áll felette mint matematikus és talán mint ember is, a magyarságához pedig következetesen ragaszkodott.

Indie Crawford · http://indiecrawford.blog.hu 2017.01.24. 12:11:48

@Jakab.gipsz:

Nem egészen értem ugyan, a szőrszálhasogatás mivoltát, de köszi a hozzászólást!

Úgy olvasom a wikin, hogy apja Miksa, csak Neumann születése után kapott nemesi címet, így eredeti-eredeti neve mégis csak sima Neumann. :)

Természetesen a család, ahogy a zsidóság túlnyomó többsége addigra már teljes értékű magyar identitással bírt, a zsidó-magyar származással éppen erre szerettem volna utalni.

(Továbbá a vallást, a származást, valamint az identitást én külön lapokon kezelném, én Neumann-t ateista, zsidó-magyar származású, zsidó-magyar polgári identitású személyként írnám le, apellálva rá, hogy ezzel senkit sem sértek, sértenék meg a családból. Persze a valóság nyilván összetettebb ennél, ezek a kategóriák vélhetően szűkösek a valódi személyiség számára)

Einstein-nek azért jobb a 'sajtója', mert nem ragaszkodott a származásához, ellentétben Neumannal? Ez nekem elég összeesküvés-elméletesen / sovinisztán hangzik, alapvetően szerintem mindkettőjüknek nagyszerű a 'sajtója', mert mindketten elévülhetetlent alkottak...

I_Isti 2017.01.27. 14:57:17

@Indie Crawford: Ez az 'ateista' Neumannról megállapítva nem egészen 100%-os, ugyanis
1) családjával együtt katolizált ugyan, de nem volt vallásos
2) viszont a halálos ágyán hívatott papot, sőt, kétszer is.
(A protestáns usa-ban egy jezsuita pátert tudtak keríteni, ugyanis olyan államtitkokat tudott, hogy a halálos ágyát is ezredesek(!) őrizték, még csak nem is alacsonyabb rangú tisztek, és nagyon féltek attól, hogy agóniájában államtitkokat oszt meg illetéktelennel, ezért akárkit nem engedtek hozzá, katolikus neveltetése miatt pedig katolikus papot küldtek hozzá.)

Egyébként meg a világ egyik legokosabb embere volt (öt éves korában például kilenc számjegyű számokat tudott fejben osztani) -, és önmagában az a tény, hogy a világ egyik legokosabb embere a halálos ágyán _mégis_ papot hívat magához azt mutatja, hogy minimum érdemes gondolkodni az "Isten meg minden" kérdésen, sőt, legjobb, ha az ember nem csak a halálos ágyán kezdi meg az ilyen irányú elmélkedést...