Ada Lovelace - dlaczego uważana jest za pierwszą programistkę?

Wiele osób uważa ją za pierwszą programistkę na świecie, ale pojawiają się także głosy poddające w wątpliwość jej dokonania. Ada Lovelace, bo o niej tu mowa, 165 lat po swojej śmierci nadal wzbudza kontrowersje i rozpala umysły badaczy. Kim była w rzeczywistości ta angielska matematyczka i poetka? Czy naprawdę napisała pierwszy algorytm na „komputer”, który nigdy nie powstał?


Na cześć Ady Lovelace nazwano język programowania (Ada) w 1980 roku, a jej podobizna spogląda na nas z hologramów, którymi Microsoft potwierdza autentyczność własnych produktów. Postać Ady pojawiała się w literaturze (powieść science-fiction Maszyna różnicowa Bruce’a Sterlinga i Williama Gibbona, sztuka teatralna Arkadia Toma Stopparda) i w grze komputerowej LittleBigPlanet. Na temat tej kobiety napisano niezliczone ilości artykułów, jej postaci poświęcono obszerne fragmenty wielu książek. Czy to wszystko pomogło nam poznać tak naprawdę tę kontrowersyjną postać? Czy rzeczywiście możemy nazwać ją programistką?


Ada Lovelace – hrabina, poetka, matematyczka


Ada Lovelace, a właściwie Augusta Ada King (hrabina Lovelace) urodziła się 10 grudnia 1815 roku w Londynie. Jej ojcem był słynny poeta George Byron (znany również jako Lord Byron), a matka to Annabella Milbanke, która miesiąc po urodzeniu dziecka zabrała małą Adę i opuściła lorda, mając dość jego dziwactw i szaleństw. Nasza bohaterka spędziła dzieciństwo poza Londynem, przenosząc się wraz z matką z miejsca na miejsce. Annabella zadbała, aby jej córka otrzymała gruntowne wykształcenie, co w XIX-wiecznej Anglii nie było wcale takie częste, jeśli chodzi o kobiety. Dorastająca Ada była zafascynowana poezją i postacią swojego ojca (kazała się pochować po śmierci obok niego). Jej matka nie była z tego zadowolona i próbowała zainteresować córkę matematyką oraz logiką. Ada rzeczywiście pokochała szybko wszystko, co wiązało się z liczbami, ale próbowała łączyć matematykę z poezją, podchodziła do nauk ścisłych w sposób niebanalny. Jej nauczycielami byli m.in. William Frend, Mary Somerville, Augustus de Morgan – jeden z najwybitniejszych logików XIX wieku i William King, za którego wyszła, stając się wkrótce hrabiną Lovelace. To pozwoliło jej powrócić do Londynu, gdzie wówczas koncentrowało się życie naukowe Anglii.


Rok 1833 okazał się przełomowy w życiu Ady Lovelace. Poznała wtedy Charlesa Babbage’a i to właśnie sprawiło, że przeszła do historii, rozpalając po latach umysły badaczy. Młoda Ada obejrzała prototyp maszyny różnicowej Babbage’a, a właściwie tylko jej część, którą udało się skonstruować. Maszyna szybko zafascynowała matematyczkę, ale wkrótce potem Babbage przedstawił pomysł urządzenia, które sprawiło, że dziś często nazywa się tego matematyka „ojcem komputerów”.


Maszyna analityczna Babbage'a, czyli niespełnione marzenie


Charles Babbage był bez wątpienia człowiekiem wybitnym, był wizjonerem, który wyprzedził swoją epokę. Urodził się 26 grudnia 1791 w Walworth, a zmarł 80 lat później w Londynie. Był człowiekiem wielu talentów. Zajmował się astronomią, mechaniką, a przede wszystkim matematyką. Był autorem tablic logarytmicznych, wykładał na Uniwersytecie w Cambridge. Zorganizował wiele towarzystw i organizacji naukowych w Anglii, ale nade wszystko był konstruktorem. Jego pierwszym dużym wynalazkiem była maszyna różnicowa, którą właśnie obejrzała Ada Lovelace. Ta maszyna miała redukować skomplikowane obliczenia do zwykłego dodawania. Babbage otrzymał nawet ogromną dotację na to urządzenie od brytyjskiego premiera, ale po 12 latach pracy udało się skonstruować tylko fragment maszyny różnicowej. Kompletne urządzenie zbudowało dopiero Muzeum Nauki w Londynie w latach 1989-1991. Sama koncepcja wystarczyła jednak, by zafascynować Adę Lovelace wynalazkami Babbage’a.


Wkrótce nobliwy profesor Cambridge przedstawił pierwszy projekt maszyny analitycznej. Babbage chciał stworzyć maszynę, która wykona każde możliwe obliczenie. Jej konstrukcja miała być mechaniczna, a całość miał napędzać silnik parowy. Dane wprowadzane były za pomocą kart perforowanych (pomysł zapożyczony od Josepha Jacquarda, programującego w ten sposób swoje krosna tkackie). Babbage opracował koncepcję konstrukcji, która zakładała rozdzielenie pamięci (storage) od jednostki obliczeniowej (mill), co przypomina konstrukcję współczesnych komputerów.


Niestety maszyna analityczna nigdy tak naprawdę nie powstała i nie wyszła w całości poza fazę koncepcyjną. Później próbowano jeszcze kilkakrotnie ją zbudować. W 1910 roku syn Babbage’a skonstruował zaledwie część mechanizmu, w 2011 roku grupa wynalazców w Wielkiej Brytanii ogłosiła zamiar zbudowania kompletnej maszyny analitycznej, ale potem informacje na ten temat przestały się pojawiać.


Chociaż pomysł Charlesa Babbage’a nie został urzeczywistniony, ogromnie zafascynował Adę Lovelace, która w swoich zapiskach snuła rozważania na temat możliwości takiej maszyny i zastanawiała się, jak można ją wykorzystać.

W tym czasie genialny konstruktor wciąż próbował zdobyć fundusze na zbudowanie maszyny analitycznej. W końcu w 1840 roku pojechał do Turynu na zjazd matematyków i inżynierów.


Algorytm i kontrowersje


Na wykładzie Babbage’a w Turynie znalazł się wojskowy inżynier Luigi Menabrea, który napisał o maszynie analitycznej artykuł po francusku w 1840 roku. Ada Lovelace zajęła się przetłumaczeniem tego tekstu na język angielski. Przy okazji korygowała błędy i uzupełniała informacje, ponieważ nikt, poza Babbage’em i nią samą nie znał tak dobrze koncepcji maszyny analitycznej. W rezultacie tłumaczenie okazało się trzy razy dłuższe od oryginalnego artykułu. To tam Ada napisała, że maszyna miała nie tylko liczyć, ale również wykonywać wszelkie procesy, które zmienią wzajemne relacje pomiędzy co najmniej dwoma rzeczami. Maszyna miała zwracać wyniki numeryczne i symboliczne. Właśnie w tym artykule Ada opisała algorytm do obliczenia liczb Bernoulliego, dzięki czemu zyskała po latach miano pierwszej programistki na świecie. Lovelace opisała sekwencje operacji i to, jak powinno się je zakodować w maszynie. Przedstawiła algorytm rekurencyjny (rezultat jednego zadania to punkt wyjścia dla kolejnego). Do wygenerowania jednej liczby potrzeba było 75 kart perforowanych, a reszta procesu była iteracyjna. Lovelace pisała o kartach operacyjnych (ustawiają części maszyny tak, aby wykonywać zadeklarowane działania, wyznaczają kolejność operacji) i o kartach zmiennych (określają kolumny maszyny, które wskazują wyniki).

[The Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine...Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent

Lovelace, Ada; Menabrea, Luigi (1842). "Sketch of the Analytical Engine invented by Charles Babbage Esq.". Scientific Memoirs. Richard Taylor: 694.


Powyższy dokument zapewnił Adzie Lovelace miejsce w historii matematyki, a przede wszystkim w historii komputerów i programowania. Brytyjska matematyczka została okrzyknięta osoba wybitną i zyskała miano pierwszej programistki na świecie. Kilku dociekliwych badaczy miało jednak wątpliwości co do tego tytułu. Przykładem jest australijski specjalista od historii informatyki, Allan Bromley, który w książce Computing before Computer zakwestionował autorstwo algorytmu przypisywane Adzie Lovelace. Australijczyk zbadał zapiski Charlesa Babbage’a i stwierdził, że algorytm został napisany kilka lat wcześniej przez brytyjskiego matematyka. Bromley jest zdania, że nie ma dowodów, iż Lovelace napisała program dla maszyny analitycznej, a z jej listów do Babbage’a wynika, że nawet nie potrafiłaby tego zrobić. Podobnego zdania był brytyjski historyk, Martin Campbell-Kelly, dowodząc, że to sam Babbage podsunął Adzie pomysł z wykorzystaniem przykładu liczb Bernoulliego i pokazał formułę algorytmu. Ten pogląd popierał także Dr Bruce Collier w biografii Babbage’a The Little Engines That Could've: The Calculating Machines of Charles Babbage. Nikt nie przedstawił jednoznacznego, przekonującego dowodu na poparcie tych tez.


Spuścizna Ady


Ada Lovelace zmarła w biedzie i chorobie 27 listopada 1852, mając zaledwie 36 lat. Ostatnie lata jej życia to coraz większe uzależnienie od hazardu (sądziła, że umiejętności matematyczne pomogą jej w wygrywaniu), rosnące długi, a także rozwijający się rak macicy. Została pochowana w kościele św. Marii Magdaleny w Hucknall, obok Lorda Byrona. Do dzisiaj przetrwała jej legenda. Dla wielu kobiet jest symbolem, że kobieta może być także świetnym programistą. Przeciwnicy Ady Lovelace protestują, przeciwko przyznawaniu jej autorstwa algorytmu, ale opierają się tylko na domysłach. Bez względu na to, nie można zaprzeczyć, że hrabina Lovelace była wybitną osobą, która w swoich zapiskach zostawiła koncepcje mające jeszcze sto lat później wpływ na to, w jaki sposób powstał pierwszy komputer.