Retro: Gopher
Kapitoly článků
Naposledy to bylo retro čistě softwarové a vlastně to ani tak moc retro nebylo, byli jsme v roce 2000, ve skoro moderní době. To první dnes nenapravím, hardware si nechám na někdy příště, ale to druhé bych změnit chtěl - alespoň v úvodu se budeme pohybovat na počátku 90. let, kdy vznikl protokol Gopher, o němž dnešní článek bude. Nedávno oslavil třicáté narozeniny.
Když se podíváte na Wikipedii, dozvíte se, že Gopher je komunikační protokol navržený k distribuci, vyhledávání a získávání dokumentů v sítích založených na protokolu IP. Stručné definice mívají tu výhodu, že si z nich vytvoříte nějaký úvodní pohled na věc, ale zároveň i zásadní nevýhodu naprosté vágnosti. Podobných protokolů jsou dnes tisíce a i v roce 1991 jich existovalo nenulové množství, proč tedy vznikl Gopher?
Nejdříve si povězme, jak vypadal Internet v roce 1991. V onom čase dnešní jasně dominantní služba - tedy WWW - existovala v jednom exempláři v CERNU (veřejnosti v nejužším možném smyslu toho slova byla předvedena v srpnu '91) a nejvíce se používal e-mail, telnet, Usenet a FTP. K distribuci souborů sloužil hlavně poslední uvedený, pro běžné uživatele, kteří se tou dobou začali více a více objevovat, měl však k jednoduchosti daleko. Když se například takový uživatel Macintoshe připojil na FTP server běžící na Unixu, musel se najednou orientovat v adresářové struktuře zcela odlišného systému, v níž nebylo prakticky nic společného s tím, co vídal denně na svém disku. Proti modemovým BBS 80. let, které měly většinou příjemné uživatelské rozhranní (samozřejmě odpovídající době), jasný krok zpět.
Na Minessotské univerzitě se rozhodli s tím něco udělat a někdy kolem poloviny roku 1991 přišli s Gopherem. Cílem bylo jednotné a snadno pochopitelné uživatelské rozhraní pro přístup k souborům, založené na co možná nejjednodušším protokolu. Jak ale zajistit, aby toto rozhraní bylo snadno pochopitelné univerzálně? Pro unixové administrátory, kteří nevystrčili celý život nos ze shellu? Pro majitele Apple II, kteří svůj čas trávili v BASICu? Pro uživatele IBM PC a kompatibilních, zvyklých na svého Norton Commandera? Pro jablečňáky, amigisty a ataristy klikající už řadu let na vše myší? Který koncept by mohli mít všichni společný? Menu!
Menu, tedy prostý seznam položek z nichž si máte nějakou vybrat, najdete prakticky na všech počítačích, které se vůbec obtěžují s uživatelem nějak v reálném čase interagovat. Najdete ho ale i mimo svět počítačů - menu je i seznam kanálů na televizi a koneckonců i jídelní lístek v restauraci, podle nějž se mu tak říká. Klient nového protokolu uživateli kreslí prosté textové menu, kde je jeden řádek roven jedné položce. Protokol, kterým se toto menu šíří je čistě textový a navíc opravdu tak jednoduchý, že s jeho zpracováním nemají problém i v době uvedení již zastaralé procesory jako třeba MOS 6502. Za název byl vzat maskot univerzity a místního fotbalového týmu - hlodavec čeledi Geomyidae, anlicky označovaný jako gopher (česky pytlonoš).
Dle RFC 1436 (březen 1993) je struktura jednoho řádku protokolu Gopher následující:
Xpopis cesta server port
Jednotlivé položky jsou oddělny tabulátoty a řádek je zakončen pomocí CRLF. Malé ukázkové menu tak vypadá třeba takto:
0About (read this first!) /about.txt i-logout.cz 70
0Changelog (read this as well!) /changelog.txt i-logout.cz 70
1In Czech / V cestine /cz i-logout.cz 70
1Bongusta! phlog aggregator /bongusta/ i-logout.cz 70
1Exit to random phlog: cdmnky's phlog /users/cdmnky/phlog sdf.org 70
1DistroWatch News in Gopherspace /gdw/ i-logout.cz 70
7Search the Gopher with Floodgap's Veronica-2 /v2/vs gopher.floodgap.com 70
7Search Gopherpedia /lookup gopherpedia.com 70
8Plaintext maps mapscii.me 23
První znak na každém řádku říká, jakého typu je položka v menu. Seznam existujících typů je poplatný době vzniku, nicméně specificikace připouští použití nových, v ní neuvedených typů a je jen a jen na klientské aplikaci, zda si s nimi bude umět poradit. To je i případ posledních dvou řádků následujícího stručného (a neúplného) přehledu, které vznikly spontánně a přesto se dnes jedná o jedny z nejpoužívanějších.
0 Textový soubor
1 Gopherové menu
3 Chybová odpověď serveru
4 BinHex soubor (binární soubor pro Mac)
5 Binární soubor pro DOS
6 Soubor ve formátu uuencode
7 Fulltextové vyhledávání
8 Telnet
9 Nespecifikovaný binární soubor
g GIF
I Nespecifikovaný obrázek
h Odkaz na WWW/HTML
i Informační text
Jak vidno z toho velmi stručného nástinu, gopherové menu může volně kombinovat položky souborové i protokolové, lokální i vzdálené, uživatel ale vždy vidí pro něj srozumitelný název, to ostatní nemusí řešit.
(Gopherové menu vyrenderované Netscape Navigatorem.)
V prvních zhruba dvou letech existence spolu služby WWW a Gopher soupeřily víceméně vyrovnaně. Z počátku měl lepší nástup Gopher, převážně proto, že bylo už od prvních verzí obou protokolů mnohem jednodušší strojově zpracovat plaintextové menu, než hiearchický tagovací dokumentový jazyk. Služba tak byla dostupná pro větší počet uživatelů, protože apriori nevyřazovala ze hry majitele starších počítačů. Pak ale odstartoval raketový nástup webu a Gopher pomalu upadl v zapomnění. Důvody byly převážně dva:
- Web, zcela objektivně vzato, nabízel lepší uživatelský zážitek. Přechody mezi dokumenty a jejich částmi byly možné přímo z nich, což je sice obecná vlastnost hypertextu, ale lidé se s ní seznámili v drtivé většině případů právě až na webu. Unifikované menu, tedy to nejzajímavější na Gopheru, začalo být časem chápáno jako fádní a nezajímavé, protože na webu může každá stránka vypadat úplně jinak a přesto se ovládá stejně - klikáním na odkazy. Staré počítače tak jako tak časem dosloužily, případně se dal web použít jako dobrá výmluva pro nákup nových, takže ani argument v podobě menší náročnosti nakonec neobstál. A pak už to šlo postupem sněhové koule - víc uživatelů znamenalo víc webů, to znamenalo víc uživatelů a to znamenalo…
- V roce 1993, v době rozhodujících bitev války, se Minessotská univerzita rozhodla zpoplatnit svoji implementaci gopherového serveru. Dlouho se nevědělo, zda to časem nepřijde i u klienta nebo dokonce samotného protokolu, takže začaly vznikat různé alternativní implementace. Jedním z alternativních gopherových klientů byl i NCSA Mosaic, jinak primárně webový prohlížeč. Když pak takový běžný uživatel viděl v jednom okně nejdříve gopherové menu a následně webovou stránku, dlouho nevybíral.
Už v roce 1994 celkový traffic na webu předběhl ten na Gopheru a následující rok byl posledním, kdy se konala oficiální akce GopherCon přímo na mateřské univerzitě.
Následně už to bylo spíše rychlé, než pomalé umírání, do některých částí světa se Gopher nestihl ani pořádně rozšířit a už bylo po něm. Například u nás se s výjimkou gopherového serveru Poslanecké sněmovny Parlamentu ČR prakticky omezil pouze na univerzitní a vědecké prostředí.