„Maszyna analityczna" Charlesa Babbage'a była pierwszym systemem technicznym, który można było programować. Obecnie zawód programisty jest popularny, gdyż urządzeń, które trzeba programować, jest bardzo wiele – od komputerów różnej wielkości, przeznaczonych do różnych zastosowań, poprzez telefony komórkowe, na sterownikach różnych urządzeń technicznych (obrabiarek sterowanych numerycznie, robotów, pojazdów automatycznych itp.) kończąc. Ktoś jednak musiał być tym pierwszym programistą świata – i była to kobieta! Augusta Ada hrabina Lovelace.

Zafascynowana matematyką córka poety

Była to bardzo ciekawa kobieta, najpierw przytoczę więc kilka informacji na jej temat. Była córką angielskiego poety doby romantyzmu, George'a Byrona. Od dzieciństwa zdradzała różne nieprzeciętne talenty, w tym także do poezji, co przerażało jej matkę, Annabellę Milbanke. Przerażało, ponieważ lord Byron, wybitny i powszechnie podziwiany bard romantyzmu, był bardzo złym mężem i ojcem, za co matka Ady winiła właśnie jego graniczące z obłędem zafascynowanie poezją.

Korzystając z faktu, że Ada miała zdolności matematyczne, matka nakazała jej intensywną naukę matematyki, sądząc, że to odwróci myśli dziecka od fascynacji poezją. Nauczycielami Ady byli wybitni uczeni, m.in. Mary Somerville, pierwsza kobieta wybrana do Royal Astronomical Society, oraz Augustus De Morgan, logik, którego prawa (przywoływane do dzisiaj z jego nazwiskiem), są jednym z fundamentów logiki matematycznej.

Pod wpływem tej nauki młoda Ada stała się gorliwą entuzjastką matematyki i z zainteresowaniem śledziła prace Charlesa Babbage'a, który właśnie wtedy (w 1838 r.) projektował swą pierwszą programowalną maszynę matematyczną.

Pisanie programu dla nieistniejącego komputera

W poprzednim artykule tego cyklu pisałem, że programowalny komputer Charlesa Babbage'a nigdy nie powstał. Nie przeszkadzało to jednak Babbage'owi w wygłaszaniu na jego temat wykładów w całej Europie. Jeden z takich wykładów, wygłoszony w 1840 r. na Uniwersytecie Turyńskim, został spisany przez Luigiego Menabreę, późniejszego premiera Włoch, także zafascynowanego mechanizacją obliczeń. O przetłumaczenie tekstu Menabrei na język angielski poproszono Adę Lovelace.

Zrobiła to tak gruntownie, że do oryginalnego tekstu Menabrei dodała swoje komentarze o łącznej objętości trzykrotnie większej niż oryginalny tekst! W jednej z tych dodanych od siebie notatek zapisała program, który, sterując maszyną Babbage'a, mógł obliczać tzw. liczby Bernoulliego. Był to pierwszy program komputerowy, jaki kiedykolwiek napisano!

Dzisiaj programowaniem zajmują się całe zespoły ekspertów, a napisanych przez nich programów używają potem miliony ludzi na całym świecie. Ale gdy Ada Lovelace napisała swój program, nikt się tym nie zainteresował! Bez echa przeszły też jej pełne poezji słowa, które zamieściła w publikacji określanej jako „Notes", które warto tu przytoczyć: „Ta maszyna może tkać wzory algebraiczne, tak jak krosno Jacquarda tka kwiaty i liście, a rachunek symboliczny może służyć do komponowania muzyki na tej maszynie".

Czyż nie były to prorocze słowa? Krosnami Jacquarda sterowano za pomocą kart perforowanych – i te same karty służyły potem jako źródło danych i nośniki programów w pierwszych komputerach. Dziś komputery stosuje się m.in. do komponowania muzyki – dzięki wykorzystaniu rachunku symbolicznego.

Ada przedstawiła więc poprawną prognozę rozwoju maszyn liczących. Nie były one jednak efektem racjonalnego oszacowania możliwości tego prakomputera, tylko poetycką wizją przyszłości informatyki. Poetycką, bo Augusta Ada Lovelace była przecież córką poety, lorda Byrona!

Zasługi Ady zostały uhonorowane 140 lat później, gdy 10 grudnia 1980 r. Ministerstwo Obrony Stanów Zjednoczonych ogłosiło specyfikację nowego języka programowania, ważnego, bo preferowanego w programach pisanych na zamówienie amerykańskiej armii. Ogłoszono, że językowi temu nadano nazwę Ada, właśnie na cześć hrabiny Lovelace. Data poinformowania o tym nie była przypadkowa: 10 grudnia 1815 r. przyszła na świat ta niezwykła kobieta, która na trwałe zapisała się w historii informatyki – pozornie tak bardzo zdominowanej przez mężczyzn...

Pierwsze działające komputery

Od pionierskich, ale nieuwieńczonych sukcesem, prac Babbage'a i Ady Lovelace musiało upłynąć ponad 100 lat, by świat ujrzał pierwszy działający komputer. Za taki można uznać maszynę Mark I zbudowaną w 1944 r. przez zespół Howarda Aikena na Uniwersytecie Harvarda.

Wprawdzie w czasie wojny powstawały maszyny matematyczne, wykorzystywane głównie do łamania szyfrów, ale były to urządzenia specjalizowane i tajne, dlatego do rozwoju światowej informatyki raczej się nie przyczyniły. Dla porządku wspomnę tu o nich, ale tego wątku nie będę rozwijał. W Anglii (w Bletchley Park) w 1943 r. powstała cała seria maszyn o nazwie Colossus – do łamania niemieckich szyfrów wojskowych. Przy ich budowie uczestniczył wybitny twórca informatyki Alan Turing. Z kolei w Niemczech całą serię komputerów (o nazwach: Z1, Z2, Z3 i Z4) zbudował w latach 1939–1945 Konrad Zuse. Jego dorobek poszedł jednak w zapomnienie po klęsce Niemiec w II wojnie światowej. I chociaż Zuse prowadził jeszcze działalność konstruktora maszyn liczących także po wojnie (stworzone przez niego przedsiębiorstwo Zuse KG budowało kolejne maszyny aż do komputera Z23 w 1969 r.), to w oficjalnych annałach historii informatyki nie jest on odnotowywany.

W tej sytuacji uważa się powszechnie, że pierwszym komputerem był wspomniany wyżej Mark I. To ogromna maszyna: długa na 17 metrów, na 2 metry wysoka i na metr szeroka. Mark I zawierał 3000 przekaźników (mechanicznych przełączników), 750 000 lamp elektronowych i 800 kilometrów przewodów. Pracował w systemie dziesiętnym (a nie dwójkowo jak dzisiejsze komputery!) z dokładnością do 23 cyfr znaczących. Wykonywał do trzech dodawań w ciągu sekundy, potrzebował 6 sekund, aby wykonać mnożenie, oraz 12 sekund na obliczenie dzielenia. Słowo „komputer" jeszcze wtedy nie istniało, maszyna ta otrzymała więc nazwę IBM Automatic Sequence Controlled Calculator. Warto podkreślić, że eksploatowano ją z dobrymi efektami przez ponad dziesięć lat!

Mark I, a potem jego udoskonalona wersja o nazwie Mark II, były maszynami elektromechanicznymi, bo głównymi elementami obliczeniowymi były w nich działające mechanicznie przekaźniki. Miało to zabawną konsekwencję. Otóż 9 września 1947 r. o godz. 15.25 komputer zaczął się dziwnie zachowywać. Popełniał błędy w obliczeniach, nie słuchał komend. Zaczęto szukać przyczyny i o godz. 15.45 znaleziono ją: do wnętrza maszyny dostała się ćma i została zatrzaśnięta przez przyciąganą magnetycznie zworę w jednym z przekaźników. Od tej pory wszelkie przyczyny błędnego działania komputerów (najczęściej będące wynikiem błędnie napisanych programów) nazywa się bug, czyli „pluskwa", a czynność przywracania prawidłowego działania komputera lub programu nazwa się debugging, czyli „odpluskwianie".

Do akcji wkracza elektronika

Elektromechaniczne komputery były stosunkowo powolne, dość wcześnie więc powstało przekonanie, że komputer powinien zawierać wyłącznie elektroniczne obwody. Jednym z pierwszych w pełni elektronicznych komputerów był ENIAC (Electronic Numerical Integrator And Computer). Zawierał on ponad 18 tysięcy lamp elektronowych i wykonywał obliczenia według sztywnego programu (nie przewidziano w nim instrukcji warunkowych), posługując się arytmetyką dziesiętną. Zbudowali go w 1945 r. John Presper Eckert i John William Mauchly na Uniwersytecie Pensylwanii w USA. To także była ogromna maszyna. Ustawione w prostokącie 12 na 6 metrów, w kształcie litery U, 42 pomalowane na czarno szafy z blachy stalowej miały po 3 metry wysokości, 60 centymetrów szerokości i 30 centymetrów głębokości.

ENIAC służył głównie do celów wojskowych, ale Mauchly i Eckert opatentowali konstrukcję ENIAC jako pierwszy elektroniczny komputer. Zainteresowali patentem firmę Remington Rand i zaczęli (od 1949 r.) produkować komputery ogólnego przeznaczenia (nie tylko do zastosowań wojskowych). Te pierwsze na świecie komputery na sprzedaż znane były pod nazwą UNIVAC I (UNIVersal Automatic Computer). Na przypomnienie zasługuje fakt, że komputer UNIVAC odgadł wynik wyborów prezydenckich w USA w 1952 r. Jeszcze zanim zamknięto lokale wyborcze, komputer umieszczony w amerykańskim biurze spisowym (U.S. Census Bureau) wskazał, że wybranym prezydentem będzie Dwight David Eisenhower.

Niestety, w 1973 r. Mauchly i Eckert stracili patent, ponieważ sąd uznał, że w rzeczywistości pierwszym elektronicznym komputerem była maszyna licząca ABC zbudowana w 1939 r. z wykorzystaniem 270 lamp elektronowych. Twórcami maszyny ABC byli John V. Atanasoff – twórca idei – i Clifford Berry – konstruktor. Wprawdzie ABC nie był programowalny, formalnie więc nie był komputerem, ale werdykt sądu był nieodwołalny i komputer UNIVAC przestał być produkowany.

Autor jest profesorem AGH w Krakowie