Od kiedy tylko ludzie zaczęli programować komputery, zawsze programowali je wspólnie. Niemalże od samego początku robili to także nieoficjalnie, dla przyjemności, by tworzyć dzieła literackie i artystyczne, gry i nowinki techniczne, które wyznaczały nowe kierunki w myśleniu o komputerach. We wrześniu 2010 roku, podczas pierwszego seminarium ELMCIP w Bergen, mówiłem o społeczności związanej z fikcją interaktywną, do której należą nie tylko programiści/autorzy, ale także osoby skupione głównie na programowaniu; żarliwi recenzenci i krytycy; ludzie organizujący zawody, spotkania i zdarzenia „w realu”, czuwający nad internetowymi zasobami danej wspólnoty; gracze; oraz różnego rodzaju entuzjaści. W tym omówieniu, przygotowanym na ostatnią konferencję ELMCIP w Edynburgu, poruszam temat pod wieloma względami szerszy, ale w pewnym sensie również zawężony. Szerszy, ponieważ nie ograniczam się jedynie do mówienia o fikcji interaktywnej, czy nawet literaturze elektronicznej, ale rozważam kreatywne zastosowanie komputerów w ogóle. Zawężony, ponieważ interesuje mnie jeden rodzaj uczestników rzeczonej społeczności i konkretny sposób kreatywnego wykorzystywania komputera – w roli programisty.
W dalszej części pracy zaprezentuję skany, zdjęcia i filmy, by przedstawić współpracę programistów w dziedzinie kreatywnego wykorzystywania komputerów. W punkcie czwartym (poniżej), odwołując się do konkretnych przykładów, będę próbował wykazać również, że programowaniem może zająć się każdy, kto kto umie korzystać z komputera. W całym artykule przedstawiam krótkie omówienie trzech sposobów kreatywnego wykorzystania komputerów.
Mam zasadniczo cztery główne założenia dotyczące programowania:
Założenia te są ze sobą wewnętrznie powiązane, będę więc starał się dowieść ich słuszności, przyglądając się konkretnym sposobom programowania, które funkcjonowały w różnych momentach w przeszłości. Nie będzie to ani całościowa wizja historii, ani archeologia, ani w pełni odtworzona genealogia. Zamiast tego, przedstawię po prostu kilka obrazów ilustrujących pracę programistów na przestrzeni lat, w rożnych kontekstach. Mówiąc wprost: rozważam właściwie nie to, jak programiści pracowali, ale to, jak się bawili. A zatem sposób, w jaki angażowali się w kreatywne wykorzystywanie komputera.
Od samego początku stosowania komputerów elektronicznych dla celów ogólnych, kiedy to przy programowaniu ENIAC pracowały kobiety zwane „koderkami” [ang. coders], można znaleźć wiele przykładów społecznego aspektu programowania. Niezależnie, czy mówimy o wynalezieniu nowego komputera Data General , czy o wczesnych próbach ustanowienia i uruchomienia Internetu, wyraźnie widać, że praca z komputerami nie była wyłączona z rzeczywistości społecznej, a programowanie, chociaż może sprawiać wrażenie wiedzy tajemnej, nie było działalnością abstrakcyjną ani hermetyczną. Jak wskazuje wielu autorów, społeczny aspekt programowania nie ogranicza się jedynie do kreatywnych, nieoficjalnych zastosowań komputerów. Zespoły programistów pracują wspólnie nad projektami naukowymi, aplikacjami wojskowymi i systemami biznesowymi. Jednak to właśnie ów kreatywny i nieoficjalny sposób wykorzystywania komputerów zdaje się w najbardziej bezpośredni sposób łączyć z rozwojem literatury elektronicznej.
W 1958 roku Badawczemu Laboratorium Elektroniki MIT został podarowany (a właściwie pożyczony) eksperymentalny komputer z częściowo usuniętą pamięcią. Był to Tranzystorowy Eksperymentalny Komputer Zero [Transistorized Experimental Computer Zero], zwany TX-0 (wymawiany jako „Tiks-oł”). Wielu studentów, którzy się na nim wychowali, by w przyszłości zostać pierwszymi hakerami, znało się z pracy w innej społeczności związanej z technologią – TMRC („Timerku”), czyli Tech Model Railroad Club, który dysponował imponującym modelem kolejki elektrycznej z rozbudowanym system torów.
TX-0 był jednym z pierwszych systemów, w których programiści mogli interaktywnie pisać programy dla przyjemności, angażując się w rekreacyjne używanie komputera. Zaczęły rozwijać się gry i proto-gry, a wśród nich m.in. tic-tac-toe i Mysz w labiryncie [Mouse in the Maze]. Ten drugi, gropodobny program pozwalał użytkownikowi wykorzystywać pióro świetlne, by umieścić w labiryncie mysz i będący jej celem ser. Program miał również tryb, w którym mysz zamiast sera spożywała martini, co sprawiało, że podróżowanie po labiryncie stawało się dla niej coraz trudniejsze. W 1961 roku Wydział Inżynierii Elektrycznej MIT otrzymał nowy komputer o większej mocy – pierwszy minikomputer stworzony przez Digital Equipment Corporation. Ko,puter PDP-1 stał się nowym centrum zainteresowania hakerów. Zostały na nim wynalezione programy generujące wzory/kody [Pattern-generating programs] i Expensive Typewriter – prawdopodobnie pierwszy na świecie edytor tekstu. Najbardziej znanym programem napisanym przez hakerów na PDP-1 jest z pewnością Spacewar . Po raz pierwszy pojawił się on w głowach Stiva „Slug” Russela, Martina „Shag” Graetza i Wayna Wiitanena. Wszyscy oni mieszkali na Higham Street w Cambridge, Massachusetts, w rezydencji, która zasłynęła jako Hingham Institute Space Warfare Study Group. Gra została rozbudowana przez Dana Edwardsa oraz Petera Samsona i zyskała szeroką sławę dzięki recenzji w magazynie „Rolling Stone” .
Nieco ponad dekadę później zabawa w systemie na MIT, wciąż pozwalała programistom pisać kody dla przyjemności . Jednym z istotnych osiągnięć lat 70. był Maze, który Georg Thompson, Dave Leibling i inni w 1974 roku przekształcili w zaawansowaną grę wieloosobową. Maze, prekursor gry Maze war, a zarazem pierwsza gra FPP (first-person shooter), działał na Imlacu PDS-1. Platforma ta była używana głównie jako terminal w Grupie Modelowania Dynamicznego [Dynamic Modelling Group]. Lebiling i trójka jego znajomych począwszy od 1977 roku zaczęli tworzyć słynną interaktywną fikcję Zork. Ludzie, którzy rozwinęli Zorka i, nieco później, założyli odnoszącą sukcesy firmę Infocom, poza luźnym związkiem z MIT, niewiele mieli ze sobą wspólnego. Jedni należeli do Grupy Modelowania Dynamicznego, drudzy zaś udzielali się w Studenckiej Komisji Wykładowej – organizacji, która w ramach MIT zajmowała się aranżowaniem projekcji filmowych.
Główną zaletą wielu komputerów domowych produkowanych pod koniec lat 70. i na początku 80. była możliwość zaprogramowania ich w sposób umożliwiający wykorzystanie posiadanej przez nie ogólnej mocy w indywidualny sposób. Komputery domowe w reklamach często były przeciwstawiane systemom gier video. Takie zestawienie miało w domyśle przypominać potencjalnemu klientowi, że na komputerze można grać w gry wideo, zaś w dosłownym komunikacie podkreślać, że komputer można wykorzystać do celów edukacyjnych i biznesowych; i że można go zaprogramować tak, by robił znacznie więcej [niż konsola do gier]. Ten aspekt został silnie wyeksponowany w wielu telewizyjnych reklamach Commodora, które porównywały VIC-20 z systemami gier. W jednej z nich William Shatner mówił: „W przeciwieństwie do gier [na konsolę] [Commodore] ma prawdziwą klawiaturę komputerową” (Commodore Computer Club 2010). Świadomość, że komputery można programować, a zwłaszcza to, że można je programować w BASIC’u, była jedynie spóźnionym echem rozważań o ich rozwoju i o marketingu. Reklama Commodora 64 (https://www.youtube.com/watch?v=D_f3uIzEIxo) emitowana w Australii w 1985 roku dowodzi, że BASIC był główną zaletą rynkową tego produktu. Spot ukazuje najpierw kobietę w bikini, zjeżdżającą na zjeżdżalni wodnej („♪ W świecie frajdy i fantazji ♪”), następnie, po cięciu, pojawia się uśmiechnięta kobieta używająca Commodora 64 w sklepie firmowym, („♪ i wciąż nowych horyzontów ♪”), po kolejnym cięciu, ukazuje się ekran zapełniony BASIC’iem i chłopiec programujący w tym języku („♪ …i technologii komputerowych… Commodore i Ty! ♪”). Reklama ta wyraźnie sugeruje, że wykorzystanie komputera domowego do programowania było czymś oczywistym, istotnym i przyjemnym.
Jedna z pierwszych drukowanych reklam Apple II, która obok innych publikacji pojawiła się w „Scientific American”, głosiła z dumą: „To pierwszy komputer osobisty, wyposażony we wbudowaną, szybką wersję BASIC’a – języka programowania podobnego do angielskiego. Oznacza to, że możesz zacząć korzystać ze swojego Apple II już pierwszego wieczora – napisać własne komendy i patrzeć, jak zostają one wprowadzone w życie, nawet jeżeli wcześniej nie miałeś żadnego doświadczenia z komputerami”. Pisanie w BASIC’u i jego modyfikowanie przychodziło użytkownikom komputerów domowych z łatwością, a fakt, że producenci, w reklamach pojawiających się w masowych mediach nakłaniali do takich działań, sprawiał, że użytkownicy chętnie zajmowali się programowaniem zaraz po zakupieniu maszyny. Niekoniecznie trzeba przeszukiwać YouTube, żeby znaleźć dowody na to, że pod koniec lat 70. i na początku lat 80. zwykli użytkownicy byli zachęcani do programowania w BASICU. Standardowe instrukcje obsługi dla użytkowników dołączane do tych komputerów zawierały rozdziały dotyczące BASIC’a albo porady, jak krok po kroku programować w BASIC’u. Programiści mieli okazję do współpracy, gdy spotykali się w szkołach, na spotkaniach grup użytkowników i w sklepach firmowych (które często pozwalały dzieciom spędzać czas na programowaniu komputerów).
Skupisko kreatywnych praktyk określane mianem demosceny znajduje się w Europie Północnej. Członkowie demosceny (scenowcy) tworzą wizualne i muzyczne prace komputerowe różnego rodzaju, w przeważającej większości pozbawione charakteru interaktywnego. „Dema” lub krótsze od nich „intra” – ich sztandarowe dzieła – to małe pliki uruchamiające wideoklipy składane w czasie rzeczywistym. Scenowcy spotykają się, żeby razem programować, a swoje prace prezentują na imprezach. Niektóre mają charakter masowy, na przykład Summer Assembly, odbywające się w hali Hartwall Arena w Helsinkach, na które zjeżdżają tysiące ludzi.
Demoscena powstała na zbiegu przemysłu gier komputerowych oraz impulsu do wzmocnienia prawnych ograniczeń kopiowania za pomocą rozwiązań technologicznych. Niektóre napędy dysków mikrokomputerów używane w pewnych konkretnych trybach mogły czytać dane nieznacznie lepiej, niż je zapisywały. Producenci gier komputerowych we współpracy z ich pierwszymi wydawcami wykorzystali to, wprowadzając tak zwane „zabezpieczenie przed kopiowaniem” w grach wydawanych na dyskietkach. Aby umożliwić kopiowanie i dzielenie się, programiści modyfikowali zawartość dyskietek i usuwali zabezpieczenie – crackowali (od ang. crack – łamać) gry.
Następnym krokiem osób usuwających zabezpieczenia przed kopiowaniem było przejście od crackowania oprogramowania do jego ulepszania. Programy można było porządkować i kompresować, co ułatwiało kopiowanie. (Tradycja ta przetrwała i ma się dobrze w wielu kręgach, nawet w literaturze elektronicznej. Jim Andrews w swoim odczycie w ramach Modern Language Association opowiadał, że kiedy jedną z jego prac tłumaczono na język fiński, otrzymał od Marko Niemi nie tylko tłumaczenie, ale także uporządkowaną i zdebugowaną (oczyszczoną z błędów) wersję swojego programu.) Jeśli na dysku było trochę wolnego miejsca – od początku lub w wyniku kompresji – istniała możliwość dodania pewnego rodzaju ekranu powitalnego [splash screenu] z wyrazami uznania dla osób, które złamały oprogramowanie oraz docinkami skierowanymi do wrogów crackerów. Oczywiście ci, którzy crackowali i rozpowszechniali oprogramowanie, chętnie korzystali z takiej możliwości i w ten sposób narodziła się pierwsza produkcja – „intro”, a razem z nią, nawet jeśli crackerzy nie zdawali sobie z tego sprawy, demoscena.
Taki piracki ekran zwany „intrem” gry musiał się zmieścić na mało pojemnej dyskietce, dlatego początkowo przyjmował postać nieruchomego obrazu albo prostej animacji. Współczesne intra i dłuższe dema, jak na przykład produkcje muzyczne generowane przy pomocy układów scalonych [chip-tunes] oraz dzieła graficzne, pokazywane także na demo-imprezach, istnieją same dla siebie, nie zapowiadają gier ani nie prezentują niczego poza estetycznymi walorami przetwarzania komputerowego. Początkowo opierały się na jednym triku lub na serii trików luźno ze sobą połączonych – muzyką czy konkretnym stylem graficznym. W naszej epoce, w której wysoko ceni się design, dema stały się bardziej jednolite i często mają motyw przewodni, podejmują jeden określony temat lub przestawiają konkretną sytuację i budują narrację. Pozostają ściśle związane z platformami, albo tymi „starej daty”, jak Commodore 64 czy Amiga, albo z nowymi komputerami z najnowszymi wersjami systemu Windows.
Demoscena ma swoje własne wartości. Dema mogą być mroczne i industrialne, często też przedstawiają utopijne światy, których miasta rytmicznie tętnią szalonym życiem. Dema pokazuje się na imprezach innym wtajemniczonym – w zasadzie bez wyjątku programistom – którzy poddają je pod głosowanie. Dema te mają własne tradycje i obowiązkowe części, na przykład podziękowania dla innych grup scenowców. Programuje się je właśnie w grupach, a niekiedy w większych zespołach podczas imprez. Podczas gdy dema w żadnym razie nie należą do głównego nurtu – nie są produkcjami czysto informatycznymi, nie są zaliczane do sztuki ani traktowane jak memy internetowe – z całą pewnością to jeden z najbogatszych typów praktyk wykorzystujących w niestandardowy sposób technologię komputerową.
<4>hCztery główne założenia raz jeszczePozwólcie mi teraz ponownie rozpatrzyć cztery główne założenia w świetle trzech powyższych punktów.
Punkt warty powtórzenia, a jednocześnie najmniej kontrowersyjny spośród czterech założeń. Czy istnieją bowiem jakiekolwiek ludzkie zachowania pozbawione aspektu społecznego, całkowicie oderwane od społeczeństwa i kultury, w której się odbywają? Chciałbym tutaj podkreślić znaczenie społecznego i kulturowego wymiaru programowania. Choć z pewnością nikt tej tezie nie zaprzeczy, na jej potwierdzenie można przywołać zróżnicowanie praktyk związanych z programowaniem, wynikające ze zróżnicowania kontekstów oraz powiązania tych praktyk z rozmaitymi wymiarami kultury i rozmaitymi społecznościami.
Istnieje przekonanie, przez niektórych wyrażane publicznie, że potencjał komputera można w pełni wykorzystać bez programowania, bez pomocy programisty. Jeśli za cel stawiamy sobie stworzenie standardowego dokumentu komputerowego (pokazu slajdów, arkusza kalkulacyjnego, dokumentu tekstowego, poziomu w LittleBigPlanet, itp.), wtedy z pewnością programowanie nie jest potrzebne. Jednak przecież kartki z życzeniami, choćby najlepiej zaprojektowane, nie zastąpią umiejętności pisania i zdolności autoekspresji. Analogicznie, aby w pełni wykorzystać możliwości komputera przeznaczonego do ogólnego użytku, niezastąpiony jest jakiś uniwersalny język programowania. Aby pisać w takim języku, konieczna jest znajomość programowania. Dokonania programistów-amatorów, programistów piszących na komputerach domowych i demoscenowców nie byłyby możliwe tylko z użyciem interfejsu typu „wskaż i kliknij”.
Wyżej wykazałem powiązania między programowaniem a różnego rodzaju społecznościami, od entuzjastów modelarstwa kolejowego do miłośników kina. Społeczności programistów były też – w czasach programowania na komputerach domowych – ściśle związane z konkretnymi platformami komputerów domowych. Związki z różnorakimi, także współczesnymi platformami obserwuje się również obecnie, choćby na przykładzie demosceny. Bez wątpienia programowanie nie jest tylko hobby uprawianym dla czystej przyjemności, w oderwaniu od jego związków z mediami czy z używanymi platformami komputerowymi.
Idea ta narodziła się prawdopodobnie wraz z populistycznym językiem Dartmouth BASIC, a upowszechniła we wczesnych latach 80., kiedy komputery domowe reklamowano jako urządzenia, które każdy jest w stanie samodzielnie zaprogramować. Gdy popularność zdobyło oprogramowanie ukierunkowane na realizację konkretnych celów, a standardowe systemy (do zadań „biurowych”) zyskiwały coraz to nowe funkcjonalności, popularne programowanie zostało zepchnięte na boczny tor. Niemniej, systemy takie jak Processing czy, do pewnego stopnia, HTML i JavaScript pozwalają zobaczyć kody innych użytkowników, a na ich podstawie uczyć się i próbować własnych sił w programowaniu. W tej dyskusji nie podjąłem nawet tematu współczesnego ruchu na rzecz wolnego oprogramowania i tego, w jaki sposób z jego doświadczeń może skorzystać literatura elektroniczna oraz wolna kultura. Ani tego, co literatura elektroniczna ze swoim użyciem innowacyjnych interfejsów, starannym tłumaczeniem języka i funkcji oraz związkami z twórczością literacką i artystyczną z ambicjami krytycznymi, może wnieść do innych rodzajów praktyk związanych z programowaniem. To, i jeszcze więcej, stanowi ważną część rozpoczętej tutaj dyskusji, choć omówienie tych tematów muszę zostawić na przyszłość.
Od początku przetwarzania komputerowego programowanie było działalnością o charakterze społecznym, podejmowaną niekiedy dla zabawy albo dla celów twórczych. Programowanie może być dla niektórych – jak było dla mnie – drogą do literatury elektronicznej. Zacząłem programować interaktywne generatory poezji i prozy niemal równocześnie z rozpoczęciem przygody z pisaniem programów. Dla innych literatura elektroniczna może być drogą do programowania. Poszerzanie wiedzy o programowaniu może wzbogacić praktyki literatury elektronicznej niektórych autorów, ale może także doprowadzić do zwiększenia zakresu, w jakim korzystamy z komputera, zwracając przetwarzanie komputerowe na cele praktyczne oraz na działalność o charakterze kulturalnym, i to nie tylko literacką. Choć umiejętność programowania nie pod każdym względem przypomina umiejętność czytania i pisania, do jednego z podobieństw należy zaliczyć sposób, w jaki przyczynia się ona do indywidualnego i społecznego rozwoju ludzi. Może poszerzyć zakres użyć komputera, ukazując nowe możliwości i kierunki. Aby w pełni wykorzystać kulturowy potencjał tego urządzenia, wszyscy musimy pisać programy.
[1] Zapis występienia podczas konferencji ELO 2012 Remediating the Social w Edynburgu, 1-3. 11. 2012, Electronic Literature Organization. Tekst oryginalny pochodzi z książki Remediating the Social, red. Simon Biggs, Bergen -Edynburg 2013. [URL, pdf]
[2] Nick Montfrot,Wspólne programowanie dla przyjemności
[3]Nick Montfrot i inni Taroko Gorge [URL]