04.03 Pojmy pro myšlení procesů
Operační logika
Termín operační logika má řadu příbuzných pojmů v terminologii užívané jinými teoretiky médií. Wardrip-Fruin jej vymezuje především vůči pojmům užívaným v herních studiích, která věnují zvláštní pozornost provozním aspektům systémů, spojujícím jednotlivé části, které mohou být kombinovány a přizpůsobeny pro vytvoření zážitku ze hry.51
Operační logiku vymezuje vůči dvěma pojmům Iana Bogosta, „tropy“ procedurální rétoriky a „operační jednotky“. Upozorňuje, že Bogostův termín „trop“ procedurální rétoriky52 se na rozdíl od „operační logiky“ vztahuje jen ke způsobu strukturování zážitku recipienta. Termín „operační jednotka“ je zase obecnější, neboť se může vztáhnout k „jakémukoli médiu – poetickému, literárnímu, filmovému, výpočetnímu“,53 které může být skrze tento termín nahlíženo jako „konfigurační systém, uspořádání oddělených, vzájemně propojených jednotek expresivního významu“,54 avšak termín „operační logika“ se vztahuje pouze k softwarovým dílům, tedy výhradně ke kulturní produkci využívající výpočetní zařízení. Současně je Bogostův termín „operační jednotka“ obecnější, než „operační logika“. Operační jednotky jsou podle Bogosta specifické mody tvorby významů, preferující oddělené, nespojené akce před deterministickými postupnými akcemi. Tento pojem tedy již specifikuje určitý okruh „operačních logik“, ke kterým poukazuje.55
Z oblasti herních studií je také trojice pojmů MDA: Mechanika, Dynamika, Estetika.56 Pojem „operační logika“ má z těchto tří nejblíže k termínu „mechanika“. Herní mechanika je však zkoumána v těsném vztahu k zážitku uživatele. „Mechaniky jsou různé akce, chování a kontrolní mechanismy poskytnuté hráči během hry.“57 Zatímco skrze pojem operační logika je softwarové dílo nahlíženo ve své komplexnosti.
Algoritmus
Příbuzným pojmem k operační logice je také základní termín vztahující se k práci programovaných médií: algoritmus. Algoritmus je v našem kontextu označení pro způsoby, jakými jsou spravovány procesy a data ve výpočetních zařízeních. Je to pro nás sjednocující pojem procházející napříč různými problémy, kterými se zabývají počítačoví vědci. Obecně označuje vykonavatelem jednoznačně interpretovatelný sled příkazů, vedoucích ke splnění určitých úkolů nebo k uskutečnění postupů vedoucích k řešení problémů. Programovací jazyky, v nichž jsou algoritmy zapisovány, umožňují popisovat počítačové procesy a současně řídit jejich provedení.
Sám o sobě je algoritmus abstraktní entita, kterou můžeme myslet nezávisle na programovacích jazycích, ve kterých je zapsán, i na strojích, v jejichž architektuře tyto zápisy působí. Ve své hmotné podobě se vyskytuje v knihovnách počítačových programů, působí v softwaru užívaném pro zobrazení webových stránek ve vyhledávači, nebo se třeba uplatňuje při třídění záznamů v tabulkách.
Pojem algoritmus sdílí s pojmem operační logika relativní nezávislost své definice na konkrétním provedení. Wardrip-Fruinem navrhovaný termín operační logika však nepodléhá přísným nárokům kladeným na povahu programovaných procesů v rámci počítačové vědy, které jsou vepsány také do základní definice algoritmů. Autor například nevyžaduje, aby byl programovaný proces jednoznačný a konečný, neboť zahrnuje také lidské znalosti, které nemusí být podrobně implementovány do výpočetního zařízení. Navíc, zatímco hledisko počítačové vědy je omezené na efektivitu a nalezení výsledku činnosti algoritmu, operační logika softwarového díla má být nahlížena především z hlediska kritické teorie a z estetického hlediska.
Algoritmus jako výraz matematického myšlení (zobrazit text)
Základní definice algoritmu evokuje lineární uspořádání sledu příkazů, které má systém postupně realizovat. Avšak ve skutečnosti jsou lineární pouze algoritmy velmi jednoduchých počítačových programů, struktura delších programů je mnohem komplexnější. Algoritmy jsou tvořeny vzájemně propojenými fragmenty, opakujícími se smyčkami, křížovými odkazy a „skoky“ zpět a zase vpřed mezi jednotlivými částmi programu. Algoritmy mají tedy spíše podobu seznamů matematických zápisů, rovnic a definic.
Flusser připomíná, že algoritmy, stejně jako výpočetní zařízení jako taková, naplňují logiku matematické reprezentace, která nahradila lineární reprezentaci literární tvorby. Proto charakterizuje počítačový věk jako věk „krize linearity“.58 Algoritmy jsou pro něj nástroje revolty čísel proti písmenům. Jsou výrazem numerického myšlení, které v protikladu ke svému názvu neprovádí výčet, ale rozděluje na bodové prvky a následně tyto prvky kupí na sebe.59 Připomíná, že algoritmus není vyčíslená okolnost, ale nejdříve rozbitá a následně znovu spojená okolnost (circumstance).
Povahu proměny z literárního a historického myšlení v matematické a analytické myšlení Flusser ilustruje na práci digitálního fotoaparátu. Jakéhosi jednoduchého počítače, který zachytí informaci, spočítá ji v bitech, uloží ji v paměti, a následně ji počítá takovým způsobem, že může být z paměti média kdykoli vyvolána jako obraz.60 Tento nový způsob reprezentace, založený na práci v modu „bod-interval-kód“ přináší nový způsob syntetické imaginace, který Flusser nazývá programovaná imaginace.61
Pict to speech #1 Vilem Flusser
http://www.youtube.com/watch?v=Kj13y_DVIMM
Pragmatika algoritmů (zobrazit text)
Počítačové programy tvořené komplexními seznamy formálních pokynů působí pod povrchem výpočetních zařízení. Komunikují tedy primárně se strojovými systémy a až následně se účinky jejich působení projevují v podobě mediálního díla na úrovni výstupů neboli povrchu softwarového díla. Aarseth proto přirovnává počítačové programy (algoritmy) k apostrofám, řečnickým figurám založeným na oslovení neživého nebo abstraktního objektu.62 V případě počítačových programů však získává apostrofa novou dimenzi. Nejde totiž jen o rétorický obrat, ale o symbolickou aktivitu vyvolávající skutečnou reakci osloveného.63
Hello world! (zobrazit text)
Charakteristika počítačového programu jako apostrofy je anekdoticky vyjádřená v krátkém počítačovém programu „Hello, world!“, který na obrazovce počítače (nebo jiného zařízení) píše pozdrav světu.
„Hello world“ je běžně užívanou případovou studií, prostřednictvím které programátor zkoumá vztah mezi programem a textovým výstupem na obrazovce. Existují dokonce obsáhlé sbírky programů „Hello, World!“, které slouží k porovnávání jednotlivých programovacích jazyků.64 Používá se proto při výuce programování v různých programovacích jazycích. Je totiž dostatečně jednoduchá, aby na ní mohla být názorně vysvětlena syntaxe, struktura kódu a základní principy fungování programu. Bývá proto často také prvním programem, který studenti programování sami napíší.
Fráze „Hello, world“ se zřejmě poprvé objevila v učebnici programování v roce 1972. Brian Kernighan ji použil v knize Tutorial Introduction to the Language B.65 Avšak všeobecné rozšíření užívání fráze „Hello, world“ při prvním seznámí s novým programem bylo inspirováno až použitím této věty pro srozumitelné vysvětlení fungování programovacího jazyka C v knize The C Programming Language66 (1978), opět od Briana Kernighana a Denise Ritchieho. Kniha je pro svoji popularitu mezi programátory nazývána „Bible jazyka C“. Familiárně je k ní odkazováno jako ke K&R a k popisovanému jazyku jako ke K&R C. Autoři v ní místo složitého teoretického vysvětlování syntaxe jazyka uvedli prostě zdrojový kód krátkého programu, který vypadal takto:67
Hello world! v programu C
main() {
printf("hello, world");
}
Programovací jazyky, jako kombinace matematických značek a upravené angličtiny, symbolizují stírání hranic mezi lidskou a strojovou promluvou. Skrytá identita mluvčího pozdravu „Hello, world“ rovněž naznačuje, že programování je dialogem vedeným napříč logikou výpočetních zařízení a logikou přirozených jazyků. Smysl těchto rozhovorů je potom výsledkem kontextové analýzy kódovaných akcí, jež nabývají smysl až v momentu, kdy jsou podrobeny interpretaci v širším kontextu událostí zahrnujícím také jejich účinky.
Schopnost počítačových programů jednat, a dokonce zasahovat do hmotného světa, zdůrazňuje také Andrew Goffey.68 Upozorňuje, že zatímco počítačoví vědci uvažují o algoritmech jako o čistě formálních stvořeních rozumu, neboť s využitím matematického zápisu je můžeme artikulovat stejným způsobem jako jiné matematické entity, ve skutečnosti mají specifický vztah k hmotné realitě. Magický aspekt programování kódů, které mají tendenci se zhmotnit, zdůraznil rovněž Cramer ve svém přehledu kulturní historie komputace.69
Tento vztah byl v konceptuální rovině opět nastolen v rané fázi počítačové vědy, a to v úvahách založených na předpokladu, že ze zápisů formálních postupů (algoritmů) mohou být vyvozovány závěry o procesech odehrávajících se v hmotných entitát. Jak Goffey připomíná, tato hypotéza založená na zmatení pojmů matematiky algoritmů a fyziky skutečných procesů vedla až k představám o vesmíru jako obrovském počítači.70 Uvažování o algoritmech ve vztahu k hmotnému světu však nemusí nutně vést k takto velkolepým konstrukcím a přesto může být efektivní.
Algoritmy existují jako zápisy pomocí programovacích jazyků, tedy jako artefakty vykazující jistou syntax. Především jsou to však přesně řízené soubory kroků, které mají směřovat ke splnění nějakého úkolu. „Algoritmy něco dělají a jejich syntax má podobu struktury příkazů, která to umožňuje.“71 Definice algoritmu tak poukazuje k pragmatické dimenzi užití programovacích jazyků.
Počítačová věda skrze intenzivní formalizaci rozpracovala především sémantiku a syntax programovacích jazyků, zatímco pragmatický aspekt programování zůstával opomíjen. Goffey připomíná, že sama tato skutečnost může být předmětem kritiky ze strany humanitních věd, neboť je typickým příkladem tendence k odtržení teoretických konceptů od praktické zkušenosti. Jinými slovy, čistě formální definice algoritmu jako abstraktního stroje je nedostatečná, neboť nezohledňuje trajektorii jeho působení spojující procesy odehrávající se uvnitř stroje s vnějšími procesy na straně vstupů i výstupů. Na druhé straně se však ptá: „Co je algoritmus, pokud ne konceptuální vyjádření instrumentální racionality v reálném stroji?“72 Odmítá však zjednodušující chápání abstrakce jako redukcionismu vedoucího k dehumanizaci vědění a raději se zaměřuje na zpochybnění představy, že algoritmus je uzavřený systém. Obrací naši pozornost k pragmatické dimenzi jeho fungování a požaduje, aby algoritmy byly promýšleny jako součást širšího souboru procesů.
„Algoritmy jednají, ale činí tak jako součást špatně definované (ill-defined) sítě akcí působících na jiné akce, jako část souboru vztahů moci a vědění, v němž se nezáměrné důsledky, jako třeba vedlejší efekty chování programů, mohou stát nesmírně důležitými.“73
Algoritmus jako výpověď (zobrazit text)
Goffey navrhuje, aby propast mezi algoritmem, definovaným jako abstraktní matematická entita, a účinky jeho spuštění, kterou můžeme chápat také jako propast mezi teorií a praxí programování, byla překlenuta pojmem Michela Foucaulta „výpověď“, který zavádí v knize Archeologii vědění.74
Výpověď ve Foucaultově pojetí není redukovatelná na syntaktické nebo sémantické rysy jazyka, ale poukazuje k jeho historické existenci a ke způsobu, jakým se tato historická existence dovršuje v konkrétním jednání. Promluva je tedy jakási diagonální linie mířící mimo funkci existence jazyka, je excesem vůči jeho syntaktickým a sémantickým vlastnostem.75
Goffey proto navrhuje, aby v rámci softwarových studií byl Foucaultův pojem přeložen do prostředí programovacích jazyků a využit při analýze procesů, které se uskutečňují v rámci softwaru a směřují k vnějšku. Nahlíží na algoritmy jako na výpovědi realizované v rámci strojového diskurzu, čímž problematizuje myšlení v dichotomiích abstraktní / aplikovaný, teorie / praxe, počítačová věda a softwarové inženýrství. Pojem výpověď aplikovaný na algoritmus totiž umožňuje promýšlet práci počítačových programů (algoritmů) jako symbolické jednání realizované „napříč strojovým diskurzem“,76 které působí současně na tento diskurz, počítače i na lidi.
Tato perspektiva ukazuje, že problémem algoritmů není jejich přílišná formalizace, tedy abstrakce, ale naopak skutečnost, že nejsou dostatečně abstraktní. Hybridní povaha algoritmu a jeho existence napříč teorií a praxí, strojovým a lidským uspořádáním jej předurčuje k tomu stát se ústředním tématem diskurzu softwarových studií.
Programovat – pracovat – vypovídat (zobrazit text)
Pragmatické hledisko preferované představiteli softwarových studií při analýze algoritmů odhalilo performativní povahu procesů odehrávajících se v počítačích. Můžeme hovořit o kolapsu dichotomie zápis / jednání, k němuž v programovaných médiích dochází. O tom, že programátor s pomocí programovacích jazyků něco dělá.
V přirozeném jazyce mají kódované akce realizované prostřednictvím programovacích jazyků a vyjádřené na obrazovkách počítačů třeba v podobě přirozeného jazyka svůj vzor v promluvách nazývaných, s odkazem na terminologii Johna Austina, řečové akty.77 Blízký vztah mezi performativním charakterem algoritmů a promluvou, jako performativním způsobem existence přirozeného jazyka, je ústředním motivem knihy Speaking Code78 od Geoffa Coxe, která vyšla v ediční řadě Softwarová studia vydavatelství MIT Press. Cox v ní nemluví o algoritmech, ale o kódu programovacích jazyků. Tímto se chce vyhnout rozlišování mezi daty a procesy (algoritmy).
Performance kódu nejsou podle Coxe redukovatelné pouze na jejich čistou funkcionalitu. Spíše je můžeme přirovnat k nestabilnímu vztahu promluvy k jazyku. Stejně jako jazyk můžeme kód poznávat pouze skrze kontext, ve kterém je distribuován, a prostřednictvím sítě operací, ve kterých působí, tedy skrze performance kódu či promluvy kódu.
Základní argument knihy Speaking Code směřuje ke zpochybnění dichotomie kritického psaní v rámci humanitních oborů (publikování studií o nových médiích) na straně jedné a tradicí programování a vyvíjení softwarů na straně druhé. Cox odkazuje na teorii Louise Althussera, aby připomněl, že jakákoli společenská změna se odehrává především skrze jazyk, v symbolické rovině, tedy v poli, které v případě dnešních programovaných médií sdílejí programátoři i akademici. Zdůrazňuje přitom estetické a politické implikace zavádění softwarových studií, které se programově snaží dichotomii teorie vs. praxe nových médií překonávat.
Cox vychází z předpokladu, že komunikace mezi lidmi (programátory) a stroji (programovanými zařízeními) stírá rozdíly mezi promluvou, prací a programováním (kódováním) ve prospěch nové formy, která v sobě odráží povahu nových komunikačních systémů. K této nové hybridní formě poukazují kódová umělecká díla, codeworks,79 v nichž nelze oddělit programovací jazyk a přirozený jazyk, tedy jejich funkční, expresivní a estetickou kvalitu. Zdůrazňuje především význam expresivní a performativní stránky programování, které klade do protikladu k jasně definovanému účelu komerčně produkovaných programů. Obdobně můžeme říci, že kritické psaní o historii a šedé zóně aktivit odehrávajících se na pozadí obrazovky počítače, rozpracovávané v rámci softwarových studií, je protiváhou například tiskových zpráv doprovázejících uvedení nových komerčních softwarových aplikací na trh.
51 Ibidem, s. 17.
52 BOGOST, Ian. Persuasive Games. The expressive power of videogames. Cambridge, Mass.: MIT Press, 2007.
53 BOGOST, Ian. Unit Operations: An approach to videogame criticism. Cambridge, Mass.: MIT Press, 2006, s. ix.
54 Ibidem.
55 Ibidem.
56 HUNICKE, Robin – LEBLANC, Robin – ZUBEK, Robert. MDA: A format approach to game design and game research. In Proceedings of the challenges in game AI workshop, ninetheenth national conference on artificial intelligence. 2004.
57 Ibidem.
58 FLUSSER, Vilém. Krise der Linearität, op. cit.
59 Ibidem.
60 Ibidem, s. 7 rukopisu.
61 Ibidem, s. 8 rukopisu.
62 AARSETH, Espen J. Cybertext: Perspectives on Ergodic Literature, op. cit., s. 11.
63 CRAMER, Florian. Words Made Flash, op. cit., s. 11.
64 Seznam zápisů „Hello world“ v různých programovacích jazycích je dostupný z: <http://www.scriptol.com/programming/hello-world.php> [cit. 30. 10. 2013].
65 KERNIGHAN, Brian. Tutorial Introduction to the Language B. 1972. Dostupné z: <ftp://cm.bell-labs.com/who/dmr/btut.html> [cit. 30. 10. 2013].
66 KERNIGHAN, Brian – RITCHIE, Denis, M. The C Programming Language. Prentice-Hall, 1978. V českém překladu vyšla pod názvem Programovací jazyk, C. Computer Press, 2006.
67 Viz KERNIGHAN, Brian: Programming in C – A Tutorial. Dostupné z: <http://cm.bell-labs.com/cm/cs/who/dmr/ctut.pdf> [cit. 30. 10. 2013].
68 GOFFEY, Andrew. Algorithm. In FULLER, Matthew (ed.) Software Studies / a lexicon, op. cit., s. 15–20.
69 CRAMER, Florian. Words Made Flesh, op. cit.
70 GOFFEY, Andrew. Algorithm, s. 16. Odkazuje na knihu: WOLFRAM, Steven. A New Kind of Science. Champaign, LI. Folfram Media, 2002. Dostupné také z: <http://www.wolframscience.com/nksonline/toc.html> [cit. 30. 10. 2013].
71 GOFFEY, Andrew. Algorithm, op. cit., s. 16.
72 Ibidem, s. 19.
73 Ibidem.
74 FOUCAULT, Michel. Archeologie vědění. Praha: Herrmann & synové, 2002.
75 GOFFEY, Andrew. Algorithm, op. cit., s. 18.
76 Ibidem, s. 17.
77 AUSTIN, John L. Jak udělat něco slovy, op. cit.
78 COX, Geoff. Speaking Code: Coding as Aesthetic and Political Expression, op. cit.
79 Autorem termínu codework je Alan Sondheim. Jeho explikace kódového díla je dostupná zde: <http://www.litline.org/ABR/issues/Volume22/Issue6/sondheim.pdf> [cit. 30. 10. 2013].