Dla kogoś, kto dopiero zaczyna przygodę z tym dziwnym rzemiosłem, BASIC wydawał się pozytywnie taumaturgiczny. To było rzucanie zaklęć: wypowiedziałeś słowa, które ożywiły żelazo i krzem i zmusiły je do działania. (Jak to ujęła inżynier oprogramowania Erin Spiceland, kodowanie to „mówienie kamieniom, co mają myśleć”). Jeśli tak jak ja marynowałeś się w Tolkienie i innych kwiecistych powieściach fantasy, pomysł, że codzienność miał głęboki romans, język może wpływać na rzeczywistość. Mów, przyjacielu, i wejdź.
BASIC zachęcał także do majsterkowania. Co niezwykłe jak na tamte czasy, był to język „interpretowany”. W przypadku wielu poprzednich języków kod napisano, ale zanim można było go uruchomić, trzeba było go „skompilować” w mały pakiet jedynek i zer. To była sprawa, która się zatrzymała: napisz, skompiluj, a następnie uruchom. Natomiast w BASIC-u maszyna zareagowała natychmiast. Napisałeś kilka linijek, wcisnąłeś URUCHOM i bum – maszyna to zinterpretowała, od razu i na miejscu.
Dzięki temu kodowanie stało się rozmową z maszyną. Programowanie było jak myślenie na głos. Na przykład pracowałbym nad chatbotem, więc wprowadziłbym kilka linii do parsera, a następnie nacisnął URUCHOM, aby zobaczyć, jak to działa. Dodałbym jeszcze kilka linii, obserwował, co zadziałało, a co nie, a następnie uruchomił ponownie. Ten taniec w przód i w tył z maszyną sprawił, że cały proces kodowania był mniej skomplikowany. To mniej przypominało robienie Bardzo ważnego projektu, a bardziej po prostu robić zamieszanie. Wiele najpopularniejszych języków świata (takich jak JavaScript i Python) jest obecnie tłumaczonych na bieżąco. Ale BASIC był jednym z pierwszych.
BASIC stworzył także pierwszą na świecie masową kulturę open source. Ludzie swobodnie dzielili się kodem: gdyby znajomy napisał fajną grę w blackjacka, wszyscy zrobilibyśmy kopię — ręcznie, niczym skrybowie w średniowiecznych klasztorach — i sami ją uruchomilibyśmy. Co miesiąc magazyn Compute drukował ryzy języka BASIC wysyłane pocztą przez hobbystów. Spędziłem jedno popołudnie, skrupulatnie wpisując setki linijek „Gry w życie” Conwaya, którą znalazłem w jakimś numerze, a potem zahipnotyzowany obserwowałem, jak na ekranie rozkwita sztuczny organizm.
W świecie programistów istnieje takie powiedzenie, że kod jest pisany przede wszystkim po to, aby inni programiści mogli go przeczytać, a dopiero później po to, aby maszyna mogła działać. Projekt BASIC udowodnił to na dużą skalę.
Ale jako praktyczny język? Do tworzenia oprogramowania, które można wysłać?
BASIC nie zawsze był świetny.
Grafika na przykład poszła lodowato. Próbowałem stworzyć strzelankę kosmiczną, ale była ona niegrywalnie powolna. Między innymi dlatego tak wielu twórców gier w języku BASIC skupiło się zamiast tego na przygodach tekstowych: przynajmniej słowa były renderowane szybko. Kambryjska eksplozja tekstowych robotów lochowych pod koniec lat 70. i 80. była częściowo skutkiem wbudowanych ograniczeń BASIC-a.
BASIC miał też kilka naprawdę nieprzemyślanych elementów. Niesławnie zawierało ono mroczne polecenie GOTO (czytane jako „idź do”). Dzięki temu możesz napisać kod, który będzie polegał na grze w klasy: jeśli program dotrze do linii 120, możesz na przykład powiedzieć komputerowi, aby nagle PRZEJDŁ do linii 25.
Dla początkującego programisty był to łatwy sposób pisania! Ale sprzyjało to złożonej strukturze „spaghetti”, w której logika była ograniczona i zygzakowata w każdym miejscu. Gdybym napisał długi program – składający się z setek lub tysięcy linii – i użył kilkudziesięciu instrukcji GOTO, mój kod stałby się labiryntem tajemnic, nieprzeniknionym nawet dla mnie. Informatyk Edsger Dijkstra tak nienawidził tego stylu, że napisał cały esej, w którym go krytykował: „Przejdź do oświadczenia uważanego za szkodliwe”. Każdy, kto nauczyłby się programować w języku BASIC, zostałby, jak później napisał, „okaleczony psychicznie bez nadziei na regenerację”.
Dijkstra zachowywał się hiperbolicznie. Ale nie do końca się mylił: po okresie świetności popularność języka BASIC gwałtownie spadła. Pojawiły się nowsze języki, które zachęcały do czystszego, bardziej nowoczesnego stylu pisania i działały szybciej. BASIC nadal żyje w dzisiejszych czasach — sam został zmodernizowany, z (w większości) wyrzuceniem GOTO — w świecie Microsoft Visual Basic, którego wielu pracowników biurowych niebędących programistami używało do łączenia aplikacji do użytku wewnętrznego. Jednak obecnie tylko 4 procent profesjonalnych programistów przyznaje się do używania języka BASIC. Ja, kiedy w 2010 roku ponownie zacząłem programować – po 25 latach przerwy – zamiast tego zwróciłem się w stronę nowszych języków, takich jak Python i JavaScript.
Jednak od czasu do czasu poluję na emulator Commodore PET. Wpiszę ten program, który napisałem po raz pierwszy ponad 40 lat temu, i nacisnę URUCHOM.
Nadal czuję magię.