Potrzeba wspomagania za pomocą urządzeń technicznych uciążliwych rachunków pojawiła się jeszcze w starożytności. Ludzie w większości nie lubili obliczeń arytmetycznych, ale skoro były one konieczne (np. w handlu), to starano się je ułatwić.

Prehistoria, czyli różne liczydła

Prawdopodobnie najstarszą „maszyną matematyczną" było chińskie liczydło nazywane abakus lub suan-pan. Liczenie za pomocą tego urządzenia polegało na wkładaniu i przekładaniu kamyków w rowkach specjalnie przygotowanej tabliczki – kamiennej lub drewnianej. Historycznie potwierdzono używanie tej „maszyny" w Chinach już w XXV wieku przed naszą erą. Ponad 4 tysiące lat temu! Odmiana japońska tego liczydła, o nazwie soroban, bywa używana do dzisiaj, bo wprawny rachmistrz liczy na sorobanie szybciej niż na elektronicznym kalkulatorze!

Podobne urządzenie wykorzystywano w starożytnej Grecji i w Rzymie, gdzie nosiło ono nazwę mensa pythagoreana (stół pitagorejski) i było wiązane z osobą wybitnego matematyka, Pitagorasa, urodzonego ok. 572 r. p.n.e. Jednak bardziej prawdopodobne jest wzorowanie tego urządzenia wspomagającego liczenie na wzorach dalekowschodnich, które za sprawą różnych podróżników i kupców mogły zostać przywiezione do Europy.

Bezpośrednimi „potomkami" opisanych urządzeń były liczydła z wieloma rzędami koralików przesuwanych na poziomych drutach. Takie urządzenia liczące były w użyciu jeszcze w połowie XX wieku i rzeczywiście wspomagały proste obliczenia (zwłaszcza w sklepach), ale dzisiaj oczywiście mają już wyłącznie historyczne znaczenie.

Użyteczny logarytm

Na opisanych wyżej liczydłach można było wygodnie wykonywać dodawanie i odejmowanie, natomiast dwa trudniejsze działania arytmetyczne, mnożenie i dzielenie, za pomocą liczydeł potrafili wykonywać wyłącznie bardzo wprawni rachmistrze. Dlatego doniosłym osiągnięciem ułatwiającym rachunki było wynalezienie logarytmu. Ta funkcja matematyczna (odwrotna do funkcji wykładniczej) została odkryta i opisana w 1614 r. przez Johna Napiera (łac. Ioannes Neper). Stosując logarytmy, można zastąpić pracochłonne mnożenie i dzielenie prostym i łatwym dodawaniem i odejmowaniem. Służyły do tego tablice podające gotowe wartości logarytmów dla różnych wartości liczb logarytmowanych (sam używałem takich tablic na mojej maturze!), ale używanie logarytmów stało się łatwiejsze, gdy zastosowano specjalne urządzenia: najpierw wynalezione w 1617 r. tzw. pałeczki Napiera, a potem skonstruowany w 1633 r. przez Williama Oughtreda suwak logarytmiczny. Suwak był tak skuteczny i wygodny, że jeszcze w drugiej połowie XX wieku stanowił niezbędne wyposażenie inżyniera. Ja sam podczas studiów na wydziale elektrycznym AGH nie rozstawałem się z suwakiem i potrafiłem na nim bardzo szybko liczyć.

„Komputery" na korbę

Opisane wyżej liczydła czy suwaki trudno traktować jako urządzenia zapowiadające erę komputerów, ale już w drugiej połowie XVII wieku powstały maszyny wykonujące obliczenia na drodze czysto mechanicznej. Zmyślne układy kół zębatych, stanowiące jądro każdej z takich maszyn, trzeba było wprawiać w ruch, kręcąc korbą, dlatego arytmometry te (używane jeszcze w latach 70. XX wieku!) popularnie nazywano „kręciołkami". Pierwszą maszyną tego typu była Pascalina – maszyna licząca, zbudowana ok. 1645 r. przez francuskiego filozofa, fizyka i matematyka Blaise'a Pascala. Maszynę tę młody Pascal zbudował dla swojego ojca, który był poborcą podatkowym i musiał podliczać długie kolumny liczb. Pascalina wykonywała tylko dodawanie i odejmowanie, ale i tak znalazła wielu chętnych nabywców i do 1652 r. wybudowano i sprzedano 50 egzemplarzy.

Coraz doskonalsze mechaniczne maszyny liczące budowali kolejni konstruktorzy: Niemcy Wilhelm Schickard i Gottfried Wilhelm Leibniz oraz Francuz Charles Xavier Thomas de Colmar, a także Polak Abraham Jakub Stern. Mechaniczne arytmometry wykonywały wszystkie cztery działania arytmetyczne, a niektóre także wyciągały pierwiastki. Dopracowane technicznie i opatentowane w 1874 r. przez Willgodta Odhnera „kręciołki" służyły potem przez ponad sto lat (!) księgowym i geodetom na całym świecie. Były produkowane i sprzedawane w tysiącach egzemplarzy!

Jednak nie były to jeszcze komputery, bo nie można było ich programować. Można powiedzieć, że program dla tych maszyn był poza ich mechanizmem (w umyśle rachmistrza), natomiast maszyna wykonywała tylko wszystkie potrzebne obliczenia.

Pierwszy programowalny komputer

Maszyną, która otworzyła drogę do działania opartego na programie, była „maszyna analityczna" Charlesa Babbage'a. Ten utalentowany mechanik i wizjoner swoją pierwszą maszynę matematyczną zbudował w 1832 r. Był to rozbudowany kalkulator złożony z dwóch tysięcy (!) precyzyjnie wykonanych części, który poprawnie działał, ale nie był jeszcze programowalny. Próba budowy bardziej rozbudowanego kalkulatora, nazwanego Pierwszą Maszyną Różnicową, jednak się nie powiodła. Prace porzucono po wykonaniu 12 tys. elementów składowych (z planowanych 25 tys.) i po wydaniu ogromnej sumy prawie 17,5 tys. funtów z dotacji rządu Wielkiej Brytanii. Zaciążyło to na kolejnych projektach Babbage'a, na które rząd nie chciał już przyznawać dotacji. Tymczasem właśnie kolejny projekt był wynalazkiem prawdziwie epokowym, bo „maszyna analityczna" – jak ją nazwał Babbage – miała zaprojektowany oddzielny mechaniczny procesor i oddzielną – także mechaniczną! – pamięć. Babbage nazywał te części „młyn" i „skład". Ta maszyna była programowalna, czyli była komputerem.

Program miał być do niej wprowadzany za pomocą kart dziurkowanych. Maszyna miała odczytywać polecenia z owych kart i – wykonując je – realizować założony algorytm obliczeń. Warto w tym miejscu dodać, że na pomysł użycia kart dziurkowanych jako nośnika informacji wpadł wcześniej (w 1805 r.) Joseph Marie Jacquard, który sterował za ich pomocą pracą krosna tkającego wielobarwne tkaniny. Babbage wykorzystał ten pomysł do „tkania" programów obliczeniowych, co było naprawdę genialną ideą.

Drukowanie wyników

Inną rewolucyjną ideą Babbage'a było wbudowanie do tworzonej maszyny obliczeniowej drukarki, która miała automatycznie drukować wyniki obliczeń. Wszystkie wcześniejsze maszyny liczące pokazywały wynik w postaci cyfr widocznych w małych okienkach umieszczonych nad obracającymi się kołami, na których owe cyfry były wygrawerowane. Pokazane wyniki były ręcznie przepisywane i umieszczane w stosownych, ręcznie drukowanych dokumentach. Skutki były opłakane, o czym Babbage sam się przekonał, kontrolując w 1822 r. (wraz z astronomem Johnem Herschelem) dane dotyczące tablic astronomicznych. Babbage wykrył w nich 3700 błędów! Po przygotowaniu erraty książki pojawiły się kolejne błędy. Było oczywiste, że tylko maszyna automatycznie prowadząca obliczenia i mechanicznie drukująca ich wyniki może zagwarantować rozsądny poziom wiarygodności danych liczbowych. Taką właśnie maszynę Babbage usiłował zbudować.

Niestety, maszyny zbudować się nie udało. Po części zawinił brak funduszy, bo w 1842 r. rząd brytyjski wycofał poparcie dla projektów Babbage'a. Przyczyną była opinia wydana przez astronoma królewskiego George'a Biddela Airy'ego, który określił maszynę Babbage'a jako „bezwartościową". Po części miał tu wpływ niski poziom mechaniki precyzyjnej w XIX wieku.

W 1991 r., z okazji zbliżającej się 200. rocznicy urodzin Charlesa Babbage'a pracownicy Science Museum w Londynie: Doron Swade, Allan G. Bromley i Michael Wright, a także inżynierowie Barrie Holloway i Reg Crick uruchomili ogromną (ponad trzy tony metalu!) maszynerię – złożoną z ponad 4000 elementów i zbudowaną dokładnie według zachowanych rysunków konstrukcyjnych Charlesa Babbage'a. Maszyna ta obecnie wystawiana jest w muzeum i działa – ale mimo użycia najnowszych technologii mechaniki precyzyjnej dostępnych obecnie maszyna wielokrotnie się zacinała na skutek trudnych do usunięcia usterek technicznych. Do ich lokalizacji i eliminacji używano nowoczesnych technik, łącznie z symulacją komputerową. Dopiero 29 listopada 1991 r. maszyna zaczęła poprawnie działać. Po 150 latach od momentu stworzenia koncepcji mechanicznego komputera wykonał on pierwsze obliczenia!

Maszyna działała poprawnie, czego dowiodło obliczenie za jej pomocą tablicy stu siódmych potęg kolejnych liczb naturalnych. Podczas testów „komputer" Babbage'a dostarczał poprawnych wyników o dokładności 31 cyfr znaczących, których sprawdzanie nawet za pomocą zwykłych elektronicznych komputerów sprawiało trochę kłopotów, bo współczesne komputery liczą typowo z mniejszą dokładnością. Jednak prawdziwym problemem podczas testów był napęd maszyny Babbage'a: dla uzyskania jednego wyniku należało wykonać ponad 27 tysięcy obrotów korbą napędzającą mechanizm!

Genialny umysł i wredny charakter

Na koniec tego artykułu gwoli prawdy historycznej trzeba też dodać, że niepowodzenie budowy pierwszego programowalnego komputera – obok wspomnianych już trudności finansowych i technicznych – miało jeszcze jedną przyczynę.

Babbage miał trudny charakter i zrażał do siebie współpracowników. Przypuszczalnie więc ostateczny upadek projektu był wynikiem kłótni Babbage'a z głównym inżynierem budującym maszynę, Josephem Clementem. Kłótni o jakąś drobną kwotę związaną z przenosinami warsztatów. Tak oto drugorzędne drobiazgi oraz trudne ludzkie charaktery potrafią czasem stanąć na przeszkodzie rozwojowi cywilizacji!

Autor jest profesorem AGH w Krakowie