Pierwowzór sprzętu
Nowoczesne układy scalone projektuje się przy pomocy potężnych stacji roboczych i kosztownych programów do symulacji. Na taki luksus nie mogła sobie pozwolić raczkująca firma Amiga. Zamiast tego zbudowano ręcznie olbrzymie repliki obwodów krzemowych na podobnych do plastra miodu płytkach połączeniowych (zwanych także testowymi, czy stykowymi – przyp. tłum.).
Płytki takie po dziś dzień służą hobbystom pragnącym szybko złożyć i przetestować proste układy. Działają one w dość prosty sposób: na sporej siatce wykonanej z plastiku rozłożone są miniaturowe metalowe gniazdka. Krótkie, pionowe rzędy owych gniazdek są ze sobą zespolone w niższej warstwie płytki, dzięki czemu można do nich przyłączyć wiele wtyczek. Krótkie odcinki drutu przycina się i przygina w ten sposób, aby ich odizolowane końce w całości mieściły się w otworach płytki. Do ich rozstawu pasują również nóżki prostych układów logicznych (służących na przykład do dodawania, czy porównywania ze sobą dwóch niewielkich liczb w systemie dwójkowym).
Nikt wcześniej nie projektował komputera w ten sposób. Większość z nich (jak na przykład IBM PC, czy Apple ][) nie posiadała układów specjalizowanych, a jedynie prostą płytę główną, określającą połączenia między procesorem, kośćmi pamięci, magistralą wejścia/wyjścia i wyświetlaczem. Takie płyty można było zaprojektować na papierze i nanieść na płytę drukowaną w postaci nadruku, a następnie zapełnić gotowymi już układami. Niektóre komputery zostały wykonane ręcznie przez pojedynczego człowieka (jak to było w przypadku Steve’a Wozniaka i komputera Apple ][).
W przypadku Amigi było zupełnie inaczej. Najbliższe jej były (pod względem filozofii projektowania) ówczesne minikomputery – DEC PDP-11, VAX, czy Data General Eagle – maszyny wielkości lodówki. Do ich projektów i prototypów grupa uzdolnionych inżynierów wykorzystała gigantyczne płytki testowe. Każdy z tych komputerów był inny i każdy musiał zostać zaprojektowany „od zera”. Choć, by oddać sprawiedliwość konstruktorom minikomputerów, musieli oni również zaprojektować sam procesor – zadanie trudne samo w sobie! Wspomniane minikomputery sprzedawano za setki tysięcy dolarów, dzięki czemu można było zapłacić wynagrodzenia budującym je inżynierom. Zespół Amigi musiał zrobić to samo co oni, jednak na potrzeby komputera, którego cena nie przekraczała ostatecznie dwóch tysięcy dolarów.
Komputer posiadał trzy układy specjalizowane. Na każdy z nich potrzebne było osiem płytek wielkości około 1 m na 50 cm, ułożonych promieniście w kształcie walca w taki sposób, że wszystkie druty z uziemieniem biegły przez środek. Na każdej płytce znajdowało się około trzystu układów logicznych MSI (w sumie około 7200) oraz koszmarna ilość kabli łączących. Stworzenie tego labiryntu i wyszukiwanie w nim usterek było zadaniem arcytrudnym i nierzadko stresującym. Druty można było poruszyć, luzując połączenia. Nieuważny ruch śrubokrętem mógł wypiąć dziesiątki kabli, niwecząc wysiłek wielu dni, a urywek przeciętego drutu mógł wpaść niepostrzeżenie w sam środek gmatwaniny i spowodować losowe, niewyjaśnione błędy.
Jay jednak nie pozwalał na to, by nim, czy jego współpracownikami zawładnął stres. W biurach Amigi panował spokojny i zrelaksowany nastrój. Póki tylko wykonywano założone prace, ani Jay, ani Dave Morse nie przejmowali się tym, w co pracownicy się ubierali, czy jak się zachowywali. Miner przynosił do pracy swojego ukochanego psa, imieniem Mitchy, który miał swoje miejsce przy biurku i własny identyfikator.
Jay włączał swojego psa również w proces projektowania. Czasami przy tworzeniu złożonego obwodu logicznego stajemy przed pytaniem, w którą stronę powinien iść układ. Wyboru można dokonać na podstawie odczucia estetycznego, czy intuicji, ale trudno odpędzić od siebie myśl, że nie należy zdawać się na ślepy los. W takich przypadkach Jay spoglądał na Mitchy’ego, decydując, na podstawie jego zachowania, co należy zrobić.
Układy specjalizowane komputera z wolna zaczęły nabierać kształtu. W połączeniu z procesorem Motorola 68000 odwzorowywały dokładnie, choć wolniej niż produkt ostateczny, działanie komputera. Ale ten, choćby nie wiadomo jak zaawansowany, bez oprogramowania jest zaledwie wielkim, bezużytecznym stosem układów elektronicznych.
Stawianie poprzeczki systemowi operacyjnemu
Wszystkie komputery, od pierwszych elektronicznych kalkulatorów poczynając, wymagają jakiegoś „głównego programu kontrolnego”, zajmującego się prostymi zadaniami w stylu uruchamiania programów, zarządzania środowiskiem użytkownika, kontaktem z urządzeniami peryferyjnymi (na przykład dyskiem twardym, czy stacją dyskietek) oraz kontrolą wyświetlania obrazu. Taki program nazywany jest systemem operacyjnym. U większości współczesnych Amidze komputerów jest on bardzo prosty i może wykonywać tylko jedną rzecz na raz.
Jay znał się na architekturze sprzętowej, więc nie wniósł wiele do działki systemu Amigi. Wiedział jednak, że chciałby, aby jego komputer był bardziej zaawansowany niż typowy sprzęt tamtych czasów działający pod kontrolą tak prymitywnych systemów jak AppleDOS i MS-DOS. Wynajęty jako główny programista Bob Pariseau nie miał powiązań z mikrokomputerami. Pracował wcześniej w firmie Tandem, produkującej masywne komputery, które wykorzystywano (i do dziś wykorzystuje się) w bankowości.
Bob przyzwyczajony był do maszyn o wielkiej mocy, potrafiących radzić sobie jednocześnie z wieloma zadaniami i transakcjami. Nie widział powodu, dla którego mikrokomputery nie miałyby robić tego samego. W tamtych latach żaden komputer osobisty nie radził sobie z wielozadaniowością. Uważano powszechnie, że niewielka pojemność pamięci i niskie taktowanie procesora ówczesnych konstrukcji uniemożliwia multitasking. Bob podjął jednak wyzwanie i wynajął osoby, które podzielały jego wizję.
Czterech pracowników, których przyjął jako pierwszych, stało się później żywymi legendami na poletku tworzenia oprogramowania. Byli to: RJ Mical, Carl Sassenrath, Dale Luck i Dave Needle. Rozmowa kwalifikacyjna z Carlem trwała najkrócej. Bob zapytał, jak wyobraża sobie swoją wymarzoną pracę, a Sassenrath odpowiedział: „Projektowanie wielozadaniowego systemu operacyjnego”, na co został natychmiast przyjęty.
Carl Sassenrath pracował wcześniej w firmie Hewlett-Packard, gdzie zajmował się kolejną odsłoną wielozadaniowego systemu operacyjnego dla wydziału serwerów. Oto co powiedział:
„W HP podobało mi się to, że tam naprawdę wierzyli w innowacyjność. Mogłem sobie kupować do woli książki i publikacje… Udało mi się więc przeanalizować wszystko, co kiedykolwiek napisano o systemach operacyjnych. Utrzymywałem również kontakty z pracownikami Xerox PARC, a także z uniwersytetami Berkeley, MIT i Stanford, aby mieć pojęcie nad czym pracują.”
„W latach 1981-82 poznałem systemy CP/M oraz MS-DOS i stwierdziłem, że zostały kiepsko zaprojektowane. Zacząłem więc zastanawiać się jak zrobiłbym to ja, jeszcze zanim trafiłem do Amigi.”
System operacyjny Amigi miał zatem być z założenia wielozadaniowy, a tego typu projekt, oparty na części pomysłów Carla, akademiccy badacze systemów operacyjnych nazwali później mikrokernelem. Carl wynalazł go zanim ktokolwiek nadał mu nazwę. Kernel (jądro systemu) miał być mały, szybki i zdolny do wykonywania wielu zadań jednocześnie. Cechy te miały później przeniknąć do pozostałych systemów.
Decyzja o napisaniu wielozadaniowego kernela miała znaczący wpływ na zachowanie się komputera, a efekty widać po dziś dzień. Ponieważ dominujące na rynku komputery PC nie osiągnęły wielozadaniowości przed rokiem 1995 (z ukazaniem się Windows 95), a Macintosh – przed 2001 (dzięki OS X), na tych platformach wychowało się, nie mając o niej pojęcia i nie rozumiejąc efektów wielozadaniowości, całe pokolenie programistów. Z kolei w przypadku Amigi posiadającej tę cechę od początku, nastawienie użytkowników i deweloperów było inne: użytkownik nigdy nie powinien czekać na komputer. W rezultacie programy stworzone dla Amigi dają użytkownikowi odmienne wrażenie – jakby reagowały żywiej niż te, które napisano na inne platformy.
Dodanie GUI
W tym czasie podjęto jeszcze jedną brzemienną w skutkach decyzję dotyczącą projektu komputera: aby był on wyposażony w graficzny interfejs użytkownika. Większość maszyn z tamtego okresu kontrolowało się za pomocą linii poleceń – aby uruchomić program, użytkownik musiał wpisać jego nazwę. Aby przeprowadzić operację przeniesienia plików, czy inne typowe zadania, należało wprowadzić cały ciąg komend.
Pomysł graficznego interfejsu użytkownika nie był nowy. Większość jego możliwości zaprezentował w roku 1968 Douglas Engelbart. Miało to miejsce podczas prezentacji pierwszej myszy komputerowej. Z kolei naukowcy z Xerox PARC stworzyli jego działające modele w połowie lat siedemdziesiątych. W początkach lat osiemdziesiątych wydawało się, że wszyscy chcą załapać się na pomysł GUI, choć problematycznym stało się rozwijanie go na prymitywnych wówczas komputerach. W 1981 roku Xerox zaprezentował komputer Star, jednak kosztował on 17000 dolarów, a sprzedawał się kiepsko, służąc głównie jako inspiracja dla innych firm. Wersja firmy Apple, komputer Lisa, pojawiła się w roku 1983. Komputer kosztował 10000 dolarów i sprzedawał się równie kiepsko. Najwyraźniej rynek komputerów osobistych był wrażliwy na ceny, nawet gdy chodziło o sprzęt z zaawansowanymi możliwościami.
Firma Apple rozwiązała tę kwestię tworząc „odchudzoną” wersję komputera. Duży ekran zastąpiono monochromatycznym, dziewięciocalowym monitorkiem, a zamiast dwóch stacji dyskietek nowy sprzęt posiadał jedną. Maszyna nie posiadała również żadnych układów specjalizowanych, mogących przyspieszyć obróbkę grafiki i dźwięku. Z podstawowego modelu usunięto tyle rozwiązań sprzętowych, ile się dało, włączając w to pamięć – system operacyjny musiał zostać specjalnie przepisany, aby zmieścił się w zaledwie 128 kilobajtach pamięci RAM. W tej okrojonej wersji, nie potrafił on nawet przełączać się pomiędzy zapauzowanymi zadaniami – można było uruchomić na raz tylko jeden program.
To właśnie był Macintosh – przedstawiony światu w dramatyczny sposób przez Steve’a Jobsa w styczniu 1984 roku. Wielu ludzi tego nie pamięta, ale komputer ten początkowo wcale nie odniósł sukcesu – w pierwszym roku sprzedawał się jeszcze nieźle, ale w 1985 sprzedaż znacznie spadła. Okazało się, że taka wersja komputera nie nadaje się zbytnio do użytku. Wbudowany procesor tekstu ograniczał długość dokumentu do zaledwie ośmiu stron, a pojedynczy napęd FDD w połączeniu z mizerną objętością pamięci sprawiał, że tworzenie kopii zapasowej wymagało serii uciążliwych zmian dyskietek.
Grupa tworząca system operacyjny dla Amigi myślała zupełnie inaczej. Skoro sprzętowcy nie szli na kompromis, aby ograniczając możliwości komputera obniżyć jego koszty, czemu programiści mieliby to robić?
Jednym z trudniejszych etapów pisania graficznego interfejsu użytkownika jest projektowanie niskopoziomowe – tworzenie API, czyli interfejsu programowania aplikacji (Application Programming Interface), z którego będą później korzystać programiści, aby tworzyć nowe okna, menu i inne obiekty w systemie. API należy napisać poprawnie już za pierwszym razem, ponieważ gdy już się rozpowszechni, każda jego zmiana spowoduje kłopoty z działaniem już napisanych programów. Błędy i nietrafione rozwiązania oryginalnego API będą prześladować programistów całymi latami.
RJ Mical, programista który wymyślił grę „Zen Meditation”, wziął to zadanie na siebie. Według Jay’a Minera zamknął się on w biurze na trzy tygodnie, wychodząc tylko po to, by zapytać Carla Sassenratha o porty sygnałowe. API będące wynikiem jego pracy nosiło nazwę Intuition, co jest jak najbardziej adekwatną nazwą. Programiści uwielbiali je, bo było uporządkowane i łatwe do opanowania. Dla porównania, API systemu Windows zwane Win16 (później zaś – Win32), napisał cały zespół programistów, a powstały w ten sposób galimatias znienawidziło wielu twórców oprogramowania.
Praca przez 90 godzin w tygodniu
RJ Mical wspomina jak wyglądały tamte zapracowane dni:
„Pracowaliśmy z olbrzymią pasją – najmilej wspominam to, jak bardzo dbaliśmy o każdy szczegół. Musieliśmy sobie coś udowodnić… Prawdziwą miłość do projektu. Tworzyliśmy pewnego rodzaju rodzinę.”
Podobnie jak w przypadku początków firmy Atari, ludzie nie oceniali siebie nawzajem na podstawie wyglądu, czy dziwacznego zachowania, lecz po tym, jak radzili sobie ze swoimi zadaniami. Dale Luck, jeden z programistów systemu, wyglądem przypominał hipisa, a co poniektórzy mężczyźni przychodzili do pracy ubrani w fioletowe rajstopy i różowe bambosze. „Nie zwracałem uwagi na wygląd, ważna była dobrze wykonana robota” – brzmiała filozofia Minera. Zespół stanowił teraz rodzinę, ale rodzinę szczęśliwą, zjednoczoną ochotą zbudowania maszyny tak dobrej, jak się tylko da.
Czemu wszyscy ci ludzie zechcieli pracować tak ciężko i spędzić wiele (czasem zarwanych) nocy tylko po to, aby stworzyć komputer? Takie, a nawet większe oddanie pracowników branży technologicznej stanowi normę, od kiedy dolina krzemowa zyskała swoją nazwę. Mieszczące się w niej przedsiębiorstwa często pozbawiają swoich pracowników należnej nagrody za wyrabianie setek nadgodzin w każdym miesiącu. Menedżerowie z innych branż muszą przyglądać się ze zdziwieniem i zachodzić w głowę, dlaczego nie potrafią zmotywować swoich pracowników do takiego wysiłku.
Odpowiedź częściowo leży w ekstremalnych, niemal autystycznych poziomach koncentracji, które osiągają inżynierowie sprzętu i oprogramowania, pracujący z maksymalną wydajnością. Gdy pracownik „wchodzi w trans” często przyziemne obowiązki, takie jak posiłek, sen, czy higiena osobista odsuwane są na drugi plan. Myślę jednak, że to tylko część wyjaśnienia. Pracownicy małych firm komputerowych mają pozycję, o której inni inżynierowie nawet nie mogą pomarzyć. Podejmują doniosłe decyzje, o daleko sięgających dla całego przemysłu efektach. Nierzadko również wcielają w życie technikę, czy pomysł, które w znaczącym stopniu zmieniają sposób, w jaki ludzie współdziałają z komputerami. Działa to na zwykłego pracownika jak narkotyk – sprawia, że wykonywana praca nas fascynuje, a to z kolei daje siłę, by osiągać więcej i pracować szybciej niż zakładaliśmy. Trzytygodniowy maraton RJ Micala przy tworzeniu Intuition to jeden z przykładów takiego zachowania. Historia Amigi zna jednak wiele innych.
Pracownicy firmy Amiga Inc. bardzo tej energii i pasji potrzebowali. Szybko zbliżał się bowiem nieprzekraczalny termin. Targi Consumer Electronics Show (w skrócie CES) odbywały się w styczniu 1984 roku.
Styczniowe CES i wykupienie Amigi
Od czasu swojej premiery w roku 1967 targi CES znacznie się rozwinęły. Pierwsza impreza z tego cyklu odbyła się w Nowym Jorku, przyciągając dwustu wystawców i 17,5 tysiąca zwiedzających. Pośród produktów, jakie zadebiutowały na CES, znajdziemy między innymi magnetowid (1970), kamkorder (kamera z funkcją odtwarzania filmu – rok 1981), czy odtwarzacz płyt kompaktowych (również 1981). Targi CES były również domem świeżo powstałego przemysłu gier wideo, który doczekał się swojej własnej wystawy (E3) dopiero w roku 1995.
Firmie nie zostało wiele pieniędzy na opłacenie przesyłki prototypu na targi. Zrozumiała wydaje się również nerwowość inżynierów w kwestii przesyłania tak delikatnego urządzenia za pomocą firmy kurierskiej. Rozwiązaniem okazało się wykupienie przez RJ Micala i Dale’a Lucka dodatkowego miejsca w samolocie, pomiędzy ich fotelami i opatulenie młodziutkiej Amigi poduszkami dla dodatkowej amortyzacji. Zgodnie z regulacjami linii lotniczych, dodatkowy „pasażer” musiał mieć bilet imienny. Lorraine przybrała więc pseudonim „Joe Pillow” (z ang. pillow – poduszka), a inżynierowie narysowali na przedniej poduszce uśmiechniętą twarz, a nawet zawiązali jej krawat. Niestety, próba wyłudzenia dodatkowego posiłku dla pana Pillowa spełzła na niczym – obsługa odmówiła karmienia i tak już wypchanego pasażera.
Styczniowa edycja targów CES w 1984 roku była dla inżynierów z Amigi zarazem ekscytującym jak i wyczerpującym przeżyciem. Firma wynajęła niewielkie stoisko w zachodniej hali, w obrębie którego znajdowała się zamknięta przestrzeń, mająca służyć do prezentacji „tajnej broni” – komputera Lorraine. Do sanktuarium wchodziło się przez strzeżone drzwi, a w środku można było nareszcie zobaczyć masywne układy wykonane na płytkach stykowych, znajdujące się pośrodku niewielkiego, osłoniętego wokół zasłonką, stołu. Co bardziej sceptyczni klienci po zakończeniu prezentacji często zaglądali pod zasłonkę, szukając tam „prawdziwego komputera”.
Jako, że system operacyjny i inne programy były jeszcze dalekie od ukończenia, RJ Mical i Dale Luck pracowali całą noc, aby stworzyć oprogramowanie demonstrujące nieprawdopodobne możliwości układów. Pierwsze demo, jakie udało im się stworzyć, nosiło nazwę Boing. Przedstawiało pokaźną, obracającą się kulę w biało-czerwoną kratkę, odbijającą się i rzucającą cień na siatkę, znajdującą się w tle. Podczas każdego odbicia od krawędzi ekranu, dało się słyszeć odgrywany w stereo dźwięk uderzenia. Zsamplował go Bob Pariseau, uderzając o drzwi garażu jednym ze słynnych piankowych kijów bejsbolowych. Boing Ball miał stać się później prawdziwą ikoną i symbolem Amigi.
Styczniowe CES były dla zespołu Amigi wielkim sukcesem. Firma zademonstrowała jeszcze aktualne prototypy układów wykonanych już w technologii krzemowej na czerwcowym CES w Chicago, ale fundusze kurczyły się w zastraszającym tempie. Dyrektor generalny, Dave Morse, zaprezentował komputer licznym firmom, wliczając w to Sony, Hewlett-Packard, Philips, Apple i Silicon Graphics, ale zainteresowanie wykazało jedynie Atari, pożyczając walczącej o przetrwanie firmie 500 tysięcy dolarów, co ustalono w trakcie toczących się w bólach negocjacji wykupu. Zgodnie z treścią umowy, Amiga musiała oddać rzeczoną kwotę do końca czerwca. W przeciwnym wypadku, Atari stawało się posiadaczem wszystkich należących do firmy technologii. „To było głupie z naszej strony zgadzać się na takie warunki, ale nie mieliśmy wyboru” – mówił Jay Miner, który już drugi raz zastawił pod hipotekę własny dom, aby utrzymać firmę.
Na całe szczęście (lub nieszczęście, w zależności od Waszych wyobrażeń historii alternatywnych) dla Amigi, w ostatniej minucie zgłosiła się firma Commodore, posiadająca własny plan wykupu. Użyczyła ona Amidze owych brakujących 500 tysięcy, aby spłacić Atari i, po krótkim namyśle czy za cztery miliony dolarów nie zakupić praw do używania układów specjalizowanych, ostatecznie wykupiła całą firmę za 24 miliony dolarów. Amiga została ocalona, ale teraz stanowiła własność Commodore.