CZYTANIE I POPRAWIANIE

Jego młodszym bra tem jest PASCAL. PL/1 to rozlazły język, który usi­łuje sprostać wszystkim potrzebom każdego programi­sty (naukowca, inżyniera lub biznesmena); starając się podobać każdemu — nie podoba się nikomu. LISP i APL są zwartymi i pięknymi językami, popularnymi wśród tych (jak specjaliści od sztucznej inteligencji), którzy chcą podkreślić wynikanie programowania z lo­giki symbolicznej. W podobnych słowach humaniści zwykli mówić o ję­zykach naturalnych jako nośnikach ekspresji — o cięż­kiej, filozoficznej naturze języka niemieckiego, o de­likatności języka francuskiego, jasności łaciny itp. Po­czucie stylu rzeczywiście ujawnia się zarówno w wy­borze języka, jak i w pisaniu samego programu. Pro­gramiści komputerowi, jak matematycy, podkreślają w swojej pracy elegancję. Niektóre programy sporzą­dzane są po prostu do wykonywania określonych za­dań, inne — zostają doszlifowane nie tylko w celu uzyskania większej efektywności, ale także Większej jasności w ich czytaniu oraz łatwości przy poprawia­niu.

KOMPUTEROWE JĘZYKI OGÓLNEGO ZASTOSOWANIA

Oba udosko­naliły swą składnię, by móc zaspokajać szersze potrze­by. Inne, bardziej egzotyczne grupy językowe mają. odmienne zasady składniowe. Wszystkie języki ogólne­go zastosowania mają w przybliżeniu tę samą moc, czyli — co można zrobić w jednym, można także zro­bić w innych, ponieważ u podstaw ich wszystkich leżą te same zasady budowy maszyn Turinga. Jednakże każdy język ma swój koloryt, odzwierciedlający filozo­fię, w której został zaprojektowany. FORTRAN (obec­nie ma ponad dwadzieścia lat: zadziwiająca długo­wieczność jak na komputerowy software) pozostaje najbliższy lingua franca; jest językiem powszechnym, prostym, jasnym, niezbyt subtelnym — jest to język inżynierii. ALGOL jest eleganckim językiem europej­skim, używanym przez specjalistów, gdy opisują algo­rytmy w periodykach naukowych.

GRUPA PROGRAMISTÓW

Grupa programistów niezadowolonych z jakiegoś drobnego aspektu tego języka może postulować jego reformę w komputerowym centrum. Postulowana zmiana zostaje przedstawiona kierownictwu centrum i gdy decyzja zostaje podjęta, programiści otrzymują zadanie prze­robienia programu, który kontroluje FORTRAN.Poważniejsze reformy mogą powstawać przy adap­tacji języka do nowej serii komputerów. Przy panują­cej anarchii instytucjonalnej każdy język komputero- wy, gdy rozpowszechnia się w świecie, tworzy dialek­ty. Dosyć szybko pojawia się wiele konkurencyjnych wersji, niecałkowicie kompatybilnych, choć będących rozpoznawalną odmianą tego samego języka. Języki komputerowe, podobnie jak naturalne, moż­na grupować w rodziny. Indoeuropejskim dziadkiem języka elektronicznego jest FORTRAN, od niego po­chodzą: PL/1 oraz język biznesu COBOL.

SWOBODNA MODYFIKACJA

Zmia­na, w szczególności wymowy, dla większości mówią­cych nie jest świadoma, a przeto jest demokratyczna w najlepszym i najgorszym sensie — jest nieskoordy­nowanym procesem, w którym zmiana zbiorcza jest sumą milionów jednostkowych wypowiedzi. Reforma językowa dokonywana przez gremia naukowe jest zwykle z góry skazana na klęskę, choć współczesny ję­zyk hebrajski może tu być wyjątkiem. Języki komputerowe zmieniają się właśnie w taki autokratyczny sposób — przez dekret kierownictwa. Programista nie może, jak chce, całkowicie swobodnie, modyfikować FORTRANu, ponieważ każde odstępstwo od sztywnej składni spowodowałoby zawodność pro­gramu. Zmiana nie jest nigdy spontaniczna.

WYRAŻENIE NASZYCH MYŚLI

Aby wyrazić nasze myśli w języku naturalnym, nie przy­pisujemy każdej z nich jednego tylko, i to jednoznacz­nego symbolu, oczekując, że nasi słuchacze zapamięta­ją go do końca naszej rozmowy, ale nadajemy im róż­ne formy słowne. W porównaniu z językiem naturalnym, użyteczność FORTRANu jest dużo bardziej ograniczona. Nie jest zdolny do wyrażania emocji ani nawet wielu racjonal­nych intuicji, przekazuje jedynie wąski zakres zdefi­niowanych logicznie problemów. Języki programowa­nia nie rozwijały się w taki sam swobodny sposób jak języki naturalne. Angielski zmienia się nieustan­nie. Gdy pewne słowa wychodzą z użycia, inne stają się modne, zmienia się gramatyka, a wymowa różni się, tak w środowiskach społecznych, regionach, jak i w czasie. Większość tych zmian jest żywiołowa i na­wet kłopotliwa dla literackiego establishmentu.

WYTRWALI PROGRAMIŚCI

Oko może przebiec wiersz kilka razy, by wydobyć jego znacze­nie, lub przeskoczyć dziesięć linijek, by sprawdzić de­finicję lub użycie symbolu. Dla większości z nas mó­wioną wersja rozkazu FORTRANu ginie z chwilą jej wypowiedzenia. Nawet dwóch wytrawnych programi­stów musi zasiąść z zapisaną wersją programu, jeśli chcą go razem przedyskutować. To samo odnosi się do matematyków i ich równań. Jesteśmy zdumieni, gdy czytamy o niewidomych matematykach, jak Euler, którzy jakoś mogli wizualizować swoje dowody bez po­mocy papieru. Języki naturalne funkcjonują odmien­nie: są w pełni zrozumiałe w mowie, ponieważ język mówiony poprzedził pismo o tysiąclecia. W odróżnie­niu od dobrego programowania komputerowego, język naturalny jest w znacznym stopniu redundantny.

JĘZYKI PROGRAMOWANIA

Językami programowania nikt nie mówi, i to jest kolejna ogromna różnica. Nie są one tak zaprogramo­wane, by móc je rozumieć w słownej komunikacji, gdyż współczesne komputery kiepsko sobie jeszcze ra­dzą z rozumieniem fal dźwiękowych. Nawet gdyby możliwe było mówienie do komputera, co jest wy- obrażalne {i realizowane — tłum.], niewielu progra­mistów chciałoby prowadzić dialog w FORTRANie. W tym względzie obraz przedstawiany w literaturze science fiction jest ścisły. Kiedy ludzie przemawiają do swoich robotów i mózgów elektronowych, używają języka w rodzaju uproszczonego angielskiego, ^ często opuszczając rodzajniki i inne mniej ważne słowa, co wiąże się z preferowaniem przez komputery redukcji języka do jego logicznego szkieletu. Mówienie FORT- RANem byłoby równie trudne jak mówienie algebrą, ponieważ relacje, które ten kod ustala, są ułożone w przestrzeni i analizowane metodą wzrokową.

JĘZYK KOMPUTEROWY

Mówienie o „języku” komputerowym jest metaforą, chociaż owo metaforyczne nacechowanie zaciera się wskutek jej nadużywania. Nawet ci, którzy nigdy me zetknęli się z komputerem, słyszeli o FORTRANie, COBOLu albo PASCALu i wiedzą, iż każdy z nich jest zawiłym językiem, którym mówi się do maszyny. FORTRAN (nazwa jest skrótem Formuła Translator), PASCAL i inne nie są językami żywymi. Zdają sobie z tego sprawę sami programiści, rozróżniając języki sztuczne, lub języki programowania, oraz języki, na­turalne, jak na przykład angielski. Określenie „sztucz­ne” mówi nam nieco o stanowisku programisty. An­gielski jest także tworem sztucznym, ale tworzonym przez wieki, nie w sposób świadomy i racjonalny, jak tworzy się język programowania.

TRADYCJA I KORZENIE

A jednak mają i one własną tradycję; ich korzenie fi­lozoficzne sięgają wieku siedemnastego, niektóre są du­żo starsze, wywodzą się co najmniej od Arystotelesa. Gdy specjalista komputerowy tworzy swoje kody, bie­rze tym samym udział w debacie, która toczy się z ożywieniem od tysięcy lat. Czy język powinien ewo- kować, czy denotować? Czy wchodzi on w magiczny, tajemniczy związek z myślami i przeżyciami, które opisuje, czy też jest przede wszystkim instrumentem ujawniania rzeczywistej struktury świata? Czy język jest zasadniczo poetycki, czy logiczny? Jeśli najpierw rozważymy sam język komputerowy, a następnie tra­dycję, której jest częścią, nie zdziwi nas, po której stronie opowie się w tej debacie komputer. Poeci, fi­lozofowie oraz programiści komputerowi mogą zgodzić się, iż język jest drogą do wiedzy. Ale nie zgadzają się co do natury języka ani co do rodzaju wiedzy, do której prowadzi.

NA POZIOMIE PRAKTYCZNYM

Zarówno marksiści ze swą industrialną eschatologią, jak i kapitalizm ze swym nieskończonym wzrostem ekonomicznym wyra­żają wiarę w kierunek historii. A czyż my nie wraca­my do starożytnego poglądu, w myśl którego cyklicz­ny rozwój i upadek społeczeństw wydaje się bardziej rozsądny, a nawet bardziej naturalny niż wszelkie obietnice nieskończonego postępu ludzkości? Komputer traktuje język tak samo jak traktuje logikę, przestrzeń i czas, osobliwie łącząc praktycyzm z ab­strakcją filozoficzną. Na poziomie praktycznym języki komputerowe są kodami, których celem jest odzwier­ciedlenie struktury logicznej problemu. Są one odda­lone, jak to tylko możliwe, od emocjonalnego, wielo­znacznego i wokalizowanego języka życia codziennego.

error: Content is protected !!