Jest listopadowy dzień 1948 roku. Leon Łukaszewicz, absolwent i do niedawna asystent matematyki na Politechnice Gdańskiej, zgłasza się do profesora Kazimierza Kuratowskiego, znakomitego matematyka, któremu niedawno powierzono zorganizowanie w Warszawie Państwowego Instytutu Matematycznego. Idzie tam za radą swego szefa, prof.Janusza Groszkowskiego, dyrektora Państwowego Instytutu Telekomunikacyjnego, pozostając przy tym pod wrażeniem świeżej lektury amerykańskiego czasopisma "Electronics" z opisem pierwszej elektronicznej maszyny liczącej ENIAC. Przyjęty do powstającej właśnie Grupy Aparatów Matematycznych, wkrótce przyciągnie tam kilku swoich gdańskich kolegów.
Ta pierwsza rozmowa okazuje się decydująca nie tylko dla losów młodego matematyka, ale i dla przyszłości polskiej informatyki. Po latach tak będzie ją wspominać: "Opowiedział mi (profesor Kuratowski), że w czasie swej ostatniej podróży do Stanów Zjednoczonych dowiedział się o wielkich korzyściach, jakie dla zastosowań matematyki mogą przynieść maszyny liczące. W Stanach więc planuje się budowę co najmniej kilkunastu takich maszyn, wobec czego chociaż jedna taka maszyna powinna być zbudowana w Polsce".
Taki był wówczas, i nie mógł być inny, horyzont wyobraźni.
I jeszcze jedna data, tym razem bardziej dokładna. 23 grudnia 1948 roku w pokoju seminarium matematycznego w Instytucie Fizyki "spotkało się sześć osób: prof.Kazimierz Kuratowski, prof.Andrzej Mostowski, dr Henryk Greniewski i trzech inżynierów - Krystyn Bochenek, Leon Łukaszewicz oraz piszący te słowa", tj. Romuald W. Marczyński, który po latach opisał to zebranie. Celem było "omówienie możliwości budowy i podjęcie decyzji budowy wtedy tak zwanych aparatów matematycznych". Można przyjąć, że ta właśnie data otwiera historię polskiej informatyki. Jej kolebką był Państwowy Instytut Matematyczny, a w jej początkach zapisało się kilka znakomitych nazwisk.
Wymieniany tu już parokrotnie profesor Kuratowski był pierwszym i długoletnim dyrektorem. Funkcję wicedyrektora do spraw zastosowań pełnił początkowo prof.Hugo Steinhaus, związany zresztą od pierwszych lat powojennych ze środowiskiem wrocławskim, później - prof.Stanisław Turski. Pracami Grupy Aparatów Matematycznych żywo interesowali się także profesorowie Stanisław Mazur, Wacław Sierpiński, Oskar Lange. Każdy z nich ma, jak wiadomo, trwałe miejsce nie tylko w polskiej nauce.
Kierownikiem Grupy został dr Henryk Greniewski, logik i statystyk, usunięty z Komisji Planowania z przyczyn politycznych, w ramach tzw. zaostrzania się walki klasowej, jak brzmiało hasło ówczesnej propagandy partyjnej. Najbliższy rok wypełniły jeszcze rozważania i dyskusje nad tym, w jaki sposób zabrać się do zadania, które było, trzeźwo myśląc, zgoła nierealne. Ale mimo wszystko pod koniec 1950 roku zaczęto tworzyć laboratorium, a w roku 1952 rozpoczęła się realizacja pierwszego projektu. Była nim rtęciowa pa-mięć ultradźwiękowa, jeden z najważniejszych układów stosowanych wówczas w komputerach.
"Lata początkowe Grupy Aparatów Matematycznych cechowała odwaga i niezrażony niczym optymizm. Cóż bowiem chcieliśmy wówczas osiągnąć i co mieliśmy do dyspozycji? Wiadome jedynie było, że w Stanach Zjednoczonych zbudowano niedawno bardzo szybką maszynę matematyczną - zawierająca prawie 18 000 lamp elektronowych i będącą szczytowym produktem amerykańskiej techniki i technologii. Zamierzalismy osiągnąć coś podobnego, ale po prawdzie nie mieliśmy po temu żadnych środków - ani zaplecza, ani sprzętu, ani technologii, ani wreszcie żadnego doświadczenia, a jedynym chyba atutem był talent i niespożyte siły młodości kilku obiecujących entuzjastów" - pisał profesor Groszkowski z okazji 30-lecia Instytutu Maszyn Matematycznych. - "Należy się więc uznanie i podziw dla ówczesnego dyrektora Instytutu Matematycznego - prof.dr Kazimierza Kuratowskiego, że podjął się w Instytucie ryzyka takiego przedsięwzięcia i otoczył grupę młodych pionierów troskliwą opieką i sprzyjającą atmosferą pracy. Podjęcie tego ryzyka miało dać w przyszłości dobroczynne skutki dla rozwoju naszej informatyki".
Początki były jednak wyjątkowo trudne. Przez pierwsze półtora roku GAM nie miał nawet własnego lokalu, dopiero jesienią 1950 roku otrzymał trzy pokoje w odbudowywanym gmachu dawnego Warszawskiego Towarzystwa Naukowego przy ul.Śniadeckich 8. Jeden z nich był miejscem wspólnych spotkań, drugi służył za magazyn części i elemetów, trzeci, największy, mieścił laboratorium. A właściwie trzy laboratoria, bowiem bardzo szybko uformowały się trzy odrębne zespoły. Tak więc - jak wspominał po latach prof.Łukaszewicz - „w jednym kącie tego pokoju kolega Bochenek budował swój Analizator Równań Algebraicznych Liniowych ARAL; w drugim ja budowałem swój Analizator Równań Różniczkowych, ARR; a w dwóch pozostałych kątach kolega Marczyński budował swoją Elektroniczną Maszynę Automatycznie Liczącą, EMAL”. Miały upłynąć dalsze trzy lata, zanim pionierom polskiej informatyki zapewniono w miarę przyzwoite warunki lokalowe.
Najszybciej, do roku 1953, uporał się z podjętym zadaniem zespół konstruktorów analogowej maszyny ARR o „imponujących” rozmiarach i mającej w swoim wnętrzu 400 lamp elektronowych. Rozwiązywała ona układy równań różniczkowych z dokładnością do kilku promili, a „rozwiązania można było obserwować jednocześnie na wielu ekranach. Parametry tych równań zmieniało się łatwo przez zwykłe pokręcanie gałkami, a efekt tych zmian był natychmiast widoczny”- wspominał po latach prof.Łukaszewicz. Była to pierwsza w kraju systematycznie eksploatowana maszyna licząca, przy czym takimi możliwościami nie dysponowały jeszcze wtedy maszyny cyfrowe, zresztą w Polsce jeszcze nieistniejące.
Ale już jednocześnie trwały pod bezpośrednim nadzorem Zygmunta Sawickiego prace nad wspomnianym EMAL-em, w zamyśle pierwszą polską maszyną cyfrową. Na tle ówczesnego poziomu techniki i technologii komputerowej była ona stosunkowo dobrze zaprojektowana, trudności pojawiły się w fazie realizacji. „Zastosowano statyczną technikę lampową, nie uwzględniając rozrzutów parametrów początkowych dostępnych podzespołów elektronicznych ani też ich niestabilności w czasie i pod obciążeniem (zmiany temperatury). W efekcie mozolnie uruchomione przez piszącego te słowa (Jerzego Fietta) zespoły maszyny po dwu - trzech dniach przestawały funkcjonować (...) Ciągłe dobieranie wartości podzespołów byle tylko ożywić oporną materię było przy złożoności całego zestawu (ponad tysiąc lamp) przedsięwzięciem beznadziejnym”.
Tych trudności doświadczyli zresztą również konstruktorzy ARR-a, a ich przyczyną była niska w owym czasie jakość elementów i podzespołów produkcji krajowej, zwłaszcza lamp, łączówek, oporników. Ratowano się wykorzystywaniem komponentów poniemieckich, przywożonych z Dolnego Śląska, ale zakres ich zastosowań był dość ograniczony. Możliwości importowe otworzyły się dopiero później, ale też były niewielkie. Co do przyrządów pomiarowych, przynajmniej niektóre z nich, np. oscyloskopy, konstruowano we własnej pracowni.
Trudności okazały się w końcu nie do pokonania i EMAL-a nie udało się w pełni uruchomić. W zespole zdania były podzielone, jedni opowiadali się za zaniechaniem dal-szych prac, inni chcieli za wszelką cenę kontynuować wysiłki. Ostatecznie jednak pod koniec 1955 roku dyrekcja Instytutu Maszyn Matematycznych zadecydowała o zakończeniu przedsięwzięcia. Jednocześnie odrębne dotąd zespoły analogowy i cyfrowy połączono pod kierownictwem Leona Łukaszewicza dla realizacji jednego wspólnego zadania. Tym razem cel został osiągnięty i w ciągu dwóch lat w Zakładzie Aparatów Matematycznych (dawnym GAM) zaprojektowano, wykonano i uruchomiono - jesienią 1958 roku - maszynę cyfrową XYZ. To był już znaczący sukces, dowodzący, że budowa maszyn cyfrowych jest w Polsce możliwa, w każdym razie w warunkach laboratoryjnych. Z pewnością był to moment zwrotny w historii polskiej informatyki.
Mimo niepowodzenia projektu EMAL ów pionierski okres nie był zatem czasem straconym. Zebrane doświadczenia ułatwiły wykonanie kolejnego zadania. Pracujący w jednym zespole elektronicy i matematycy nauczyli się w praktyce projektowania maszyn cyfrowych, nauczyli się też doceniać stronę technologiczną przedsięwzięcia, jaką jest tolerancja i stabilność elementów czy rozrzuty parametrów. Należy też zauważyć, że układy elektroniczne maszyny XYZ nie składały się już, jak w EMAL-u, z diod próżniowych, lecz oparte były na diodach półprzewodnikowych.
„Pierwotnie rozważana była koncepcja realizacji maszyny równoległej (zbliżonej strukturalnie do emc IBM 701) o nazwie roboczej ABC, że to niby zaczynamy wszystko od początku... Jednakże nacisk zespołu, zajmującego się poprzednio realizacją techniczną i uruchamianiem EMAL-a, który zebrał cięgi przez niedocenienie trudności realizacyjnych, spowodował, że zwyciężyła ostatecznie koncepcja prostej maszyny szeregowej, którą jako swego rodzaju przeciwieństwo ABC - nazwano XYZ” - w okolicznościowym wspomnieniu napisał Jerzy Fiett.
Miejscem narodzin XYZ stał się, nomen omen, Mądralin, gdzie w domu pracy twórczej PAN opracowano w ciągu dwóch tygodni architekturę logiczną. W kilkuosobowym zespole, obok kierownika Leona Łukaszewicza, byli m.in. Antoni Mazurkiewicz, Zdzisław Pawlak, Jerzy Fiett, Zygmunt Sawicki, który też pokierował całością budowy komputera.Wkrótce do zespołu dołączyli inni, wśród nich Jerzy Dańda, powstał projekt i z kolei model maszyny, a następnie w ciągu pół roku skompletowano cały zestaw. Tak więc od chwili podjęcia decyzji o kształcie emc XYZ do momentu jej pełnego uruchomienia upłynął zaledwie rok. Gdy z kilkumiesięcznego stażu w Paryżu przyjechał kierownik zespołu, „był zaskoczony poważnym zaawansowaniem prac realizacyjnych i stwierdził po powrocie wyraźnie zawiedziony: wy tu już kończycie, a ja miałem tyle świetnych pomysłów!”. Ale właściwe zakończenie prac nastąpiło, oczywiście, dopiero po wyposażeniu maszyny w oprogramowanie, nad czym pracowali Antoni Mazurkiewicz, Jan Borowiec, Krzysztof Moszyński, Jerzy Swianiewicz, Andrzej Wiśniewski.
Zdając sobie sprawę ze skromnych środków i niewielkiego doświadczenia praktycznego, ujawniał później z całą szczerością Leon Łukaszewicz, „gdzie tylko się dało, korzystaliśmy z rozwiązań zagranicznych. Architektura XYZ była uproszczeniem i tak już prostej architektury IBM 701; zakładaliśmy, że taka firma jak IBM w wyborze swym nie może się mylić. Konstrukcja zaś komórek elementarnych XYZ była zapożyczona od maszyny radzieckiej BESM 6”.
Ale zapożyczali również z rozwiązań krajowych: EMAL służył początkowo jako wzór dla szybkiej pamięci. Była to pamięć akustyczna zbudowana na rurach rtęciowych. Ponieważ jednak nie odznaczała się niezbędną niezawodnością, zastąpiono ją pamięcią opartą na drutach niklowych. A ponadto, jako pamięć pomocniczą, zewnętrzną wprowadzono pa-mięć bębnową.
„I wreszcie pewnego dnia XYZ ruszył. Trzy stojaki z panelami wypełnionymi lampami, pulpit operatora i reproducer kart dziurkowanych wypełniały dość spore, specjal-nie zaadaptowane pomieszczenie. Na pulpicie widać było kilka rzędów kluczy i dwa okrągłe oscyloskopy. Na jednym z nich można było obserwować zawartość wybranej „rury” pamięci (32 słowa, czyli 64 bajty), oczywiście w postaci binarnej, zakodowanej przez jaśniejsze i ciemniejsze kropki, na drugim zawartość rejestrów akumulatora i mnożnika w postaci klasycznych ciągów impulsów - tak pierwsze dni pierwszego polskiego komputera opisywał Antoni Mazurkiewicz. - Oglądaliśmy z przejęciem wzrastanie zawartości liczników (wówczas dla nas zawrotnie szybkie, zmienność dopiero szóstego bitu od końca dawała się zauważyć! XYZ liczył bowiem z niebagatelną w tym czasie szybkością ok.1000 operacji arytmetycznych na sekundę). Na drugim oscyloskopie można było zobaczyć na własne oczy, jak powstaje wynik dodania, mnożenia, a nawet podzielenia dwóch słów binarnych. W tym czasie charakterystyczny był w Zakładzie Aparatów Matematycznych widok programisty siedzącego przy pulpicie XYZ, wpatrującego się w owe oscyloskopy i naciskającego jeden klucz, bardzo ważny i najczęściej używany, powodujący wykonanie pojedynczego kolejnego rozkazu programu (z angielska „single shot”).
Tak właśnie uruchamiało się programy: wykonywało się mianowicie kolejno instrukcję po instrukcji i obserwowało się na oscyloskopie efekty ich działania. Pamięć XYZ (zbudowana na liniach opóźniających skonstruowanych z rur stalowych wypełnionych rtęcią, w których rozchodziły się fale akustyczne opóźniające bieg impulsów) składała się z 1024 słów 18-bitowych; proszę sobie wyobrazić, jak wielki wysiłek musiał być włożony w optymalizację przestrzenną programowi rządzącego nimi systemu operacyjnego, aby móc policzyć jakieś rzeczywiste zadanie! Najwięcej kłopotów było z wyprowadzaniem wyników. Początkowo jedynym medium wyjściowym były karty perforowane. Urządzenie wyjściowe dziurkujące karty było wielkości biurka, niezmiernie ciężkie, masywne i hałasujące tak, że wyprowadzanie wyników było słychać w całym gmachu przy Śniadeckich 8. Co więcej, nie było na miejscu urządzenia tabulującego zawartość kart, trzeba było jeździć z kartami do Głównego Urzędu Statystycznego, aby dowiedzieć się, co maszyna naniosła na karty wyjściowe. Dopiero zainstalowanie wejścia i wyjścia na taśmie papierowej i zainstalowanie dalekopisów uczyniło sytuację znacznie wygodniejszą”.
O oprogramowaniu dla XYZ pomyślano zawczasu, gdy sama maszyna była dopiero w fazie budowy. Dzięki rozpoczęciu tych prac równolegle do prac konstrukcyjnych udało się wykonać całość zadania w tak krótkim terminie - zaledwie dwóch lat. A początki były, jak wszystko w owych latach, niemal harcerską przygodą.
Pisał o niej Antoni Mazurkiewicz: „Programować zaczęliśmy abstrakcyjnie, bez maszyny i bez jakichkolwiek doświadczeń. Początkowo jedynie Andrzej Wakulicz i Adam Em-pacher wiedzieli, co to jest elektroniczna maszyna cyfrowa i na czym polega jej programo-wanie, potem matematycy pracujący przy maszynach analogowych (Józef Winkowski, Tomasz Pietrzykowski i autor tego tekstu) dołączyli do wtajemniczonych. Żaden z nas nie widział wówczas działającej maszyny cyfrowej , wiedzę o oprogramowaniu czerpaliśmy z nielicznych publikacji zagranicznych; pamiętam, że jedną z nich była książka Wilkesa z Wielkiej Brytanii. Było to jedyne źródło naszej wiedzy o kodach, adresach, pseudorozkazach, tworzeniu pętli i rozgałęzień... Gdy tylko budowana maszyna cyfrowa XYZ zaczęła nabierać realności, gdy ustalono jej repertuar rozkazów i stały się znane jej podstawowe cechy, przystąpiono do tworzenia prawdziwego, realnego oprogramowania”.
XYZ był modelem użytkowym dla całej rodziny maszyn, które powstawały w następnych latach jako kolejne wersje ZAM-ów, nazywanych tak od skrótu nazwy Zakładu Aparatów Matematycznych. O charakterze ich oprogramowania zadecydował wybór zasadniczej koncepcji, wzorowanej na maszynach IBM serii 700. W odróżnieniu od współczesnej architektury „znakowej”, oparte one były na organizacji „siłowowej”. Jest to zresztą najistotniejsza różnica, jaka zachodzi między architekturą tamtych komputerów i najbardziej popularnych produkowanych obecnie. Przede wszystkim jednak wynikało to zapewne z ówczesnej przewagi przetwarzania numerycznego nad przetwarzaniem tekstowym, które dominuje w informatyce współczesnej.
„Niewielka objętość pamięci i niezbyt wielka szybkość XYZ wywarły widoczny wpływ na metodologię programowania tej maszyny. Dążono do jak najmniejszej objętości programu; jeśli przy tym udawało się powiększyć jego szybkość, sukces był pełny. Złoty okres przeżywało programowanie trickowe: istniało nawet w folklorze programowym pojęcie katalogu chwytów programistycznych na każdą okazję. Technika programowania wynikała też ze skąpych możliwości dokonywania zmian w programach; na ogół programy były zbudowane z „epicykli”: wyskoków do sekwencji brakujących początkowo instrukcji. Każdy program, można by rzec, był dziełem sztuki: nieważny był stopień jego komplikacji, nieczytelność, trudność dokonywania zmian: istotne, czy był on objętościowo niewielki, a w miarę możliwości szybki. Rzecz jasna, opiekę nad tak napisanym programem mógł sprawować wyłącznie jego autor” - wspominał cytowany już A.Mazurkiewicz.
I dalej: „Nawyki programistów wyrobione w tym „heroicznym” okresie programowania zemściły się później przy programowaniu maszyn serii ZAM 21, ZAM 41 i pokrewnych, maszyn większych, o bogatszych możliwościach, gdy należało pielęgnować duże programy. W czasach XYZ trudno było mówić o jakiejś metodologii programowania czy programowaniu systematycznym. A jednak... Programiści, chcąc usystematyzować i ułatwić sobie proces programowania, przyjmowali pewne zasady, które w istocie stanowiły zaczątek programowania modularnego i strukturalnego”.
Najpierw powstał język SAS (system adresów symbolicznych), ale przełomu w metodologii dokonał dopiero wprowadzony w roku 1960 na maszynie XYZ język SAKO (system automatycznego kodowania). Nazywany był „polskim Fortranem”, jednakże w stosunku do swego amerykańskiego pierwowzoru stanowił udoskonalony i w istocie nowy i oryginalny język programowania. Umożliwiał budowanie programów z części standardowych i zwracał uwagę programistów na ogólną strukturę programów, globalne gospodarowanie pamięcią, przekazywanie informacji wyodrębnionymi partiami. Doświadczeni programiści początkowo byli dość nieufni wobec nowego języka, zawierzając programowaniu trickowemu, ale wkrótce okazało się, że dzięki SAKO nawet nowicjusze potrafią uruchomić swoje programy znacznie szybciej od nich. Okazało się, że wydłużenie czasu działania programu ma mniejsze znaczenie niż całkowity czas uzyskania odpowiedzi i czas potrzebny na zmiany w programie, często nie do uniknięcia.
Uruchomienie XYZ, rozpropagowane przez media, wzbudziło duże zainteresowanie i liczne zgłoszenia klientów, chcących za jej pomocą znaleźć rozwiązanie rozmaitych problemów, teoretycznych i praktycznych. Wkrótce też został utworzony Zakład Doświadczalny, gdzie obok podstawowego zadania, jakim było budowanie nowych maszyn, przyjmowano również zlecenia usługowe. Zajmowała się tym wydzielona jednostka - Biuro Obliczeń i Programów (BOP), pierwszy w kraju usługowy ośrodek elektronicznej techniki obliczeniowej, niejako poprzedzający powstanie w roku 1965 sieci ZETO.
Rodzina ZAM-ów , dla której punktem wyjścia był XYZ, zaczęła się rozwijać na przełomie lat 50. i 60. Przewidywano dłuższą serię tych maszyn, mieszczących się w klasie średniej, jak ZAM 2, ZAM 21 czy przeznaczony do przetwarzania danych ZAM 41. W późniejszych latach przygotowywano także konstrukcję minikomputera ZAM 51. Gdy Zakład Aparatów Matematycznych przekształcił się w roku 1962 w Instytut Maszyn Matematycznych PAN pod kierownictwem Leona Łukaszewicza, prace nad kolejnymi modelami były kontynuowane, ale były to prototypy laboratoryjne wykonywane w najlepszym razie w kilku czy kilkunastu egzemplarzach. Żadnego z nich nie udało się wprowadzić do produkcji przemysłowej.
Tak jak XYZ, również EMAL miał swoją kontynuację - w postaci modelu EMAL 2, nad którym w latach 1957-1958 pracował zespół Romualda Marczyńskiego, najpierw na Politechnice Warszawskiej, a później w Instytucie Badań Jądrowych PAN. Ta maszyna stała się zalążkiem Centrum Obliczeniowego PAN, z którego powstał istniejący do dzisiaj Instytut Podstaw Informatyki PAN.