Programátoři z pekel zde za šat a stravu programují čipová pseuda. Nyní s favicon!

Technologie v propadlišti dějin 9: Gopher

Na Internetu není těžké ocitnout se na historickém smetišti. Jeden den jste nejpoužívanější protokol pro sdílení informací, další den po vás neštěkne pes.

Na přelomu osmdesátých a devadesátých let nebyl Internet rozhodně tak uživatelsky přívětivým místem, jakým je dnes. Jednotlivé služby byly oddělené – něco jste mohli najít na telnetových BBS, něco bylo uloženo na FTP serverech, ovšem bez jakékoliv přímé provázanosti.

Tu si ale chytří lidé na University of Minessota uvědomili, že by bylo dobré volně poházené dokumenty nějak provázat. Vznikl proto hierarchický systém textových menu, zpřístupňující tehdy běžné typy souborů jako je plaintext, obrázky GIF, zvukové záznamy ve formátu WAV a další, přičemž nebylo zcela zapomenuto i na případné jiné, v té době ještě nepoužívané fomáty.

Gopher Firefox

Jak to funguje?
Na portu 70 běží gopherový server a na něm si při prvním přístupu vyžádá gopherový klient nejvyšší gopherové menu (root level menu) v podobě gophermap souboru. Gophermap je textový soubor, v němž ale mají některé řádky speciální význam a klient by s nimi měl podle toho naložit a použít je pro sestavení zmíněného hierarchického menu. V zásadě platí, že pokud řádek začíná některým z vybraných znaků a zároveň je v něm někde tabulátor, pak se jedná právě o takovýto řádek. Několik příkladů za všechny (plná specifikace viz. RFC 1436):

0   Položka odkazuje na soubor (plaintext)
1   Položka odkazuje na adresář
5   Položka odkazuje na spustitelný binární soubor systému MS-DOS
8   Položka odkazuje na textové telnetové spojení
G   Položka odkazuje na GIF obrázek

„V zásadě“ jsem napsal proto, že kromě těchto vybraných znaků existují ještě znaky další, které zpracovává server a umožňuje tak generovat gopherové soubory do jisté míry dynamicky. Všechny ostatní řádky se pak zobrazí přesně tak, jak jsou v souboru zadány, tedy na rozdíl od HTML se nevynechávají duplicitní mezery a ani se neignorují řádkové zalomení.

Gopher Amiga

Gopher versus WWW
Jak asi patrno z toho, že si tento článek čtete pomocí webového prohlížeče, je jasné kdo historický souboj těchto konkurentů, vzniknuvších zhruba ve stejné době, vyhrál. V roce 1993 vedení University of Minessota rozhodlo, že zpoplatní svůj gopherový server. Vypukla obava, že se časem poplatky mohou rozšířit na celý protokol a proto se gopherové servery začaly masivně přesouvat na web.
Pomineme-li toto hledisko, které lze označit jako špatné manažerské rozhodnutí, má Gopher proti WWW z technického hlediska své klady a zápory. Pozitivem je prakticky nulový nárůst přenášených dat oproti původní informaci. Informace šířená prostřednictvím WWW je popsána jazykem HTML, který (hlavně v dnešní době) snadno způsobí mnohonásobný nárůst dat oproti holé informaci. Jednoduchost protokolu pak zapříčinila to, že klientské programy vznikaly jako houby po dešti, existují pro Windows 3.x, Amiga OS, Commodore 64, Apple II a další.
Nevýhodou pak je, že se na rozdíl od WWW primárně nejedná přímo o protokol určený k prezentaci informací, jen o protokol umožňující distribuci souborů s informacemi. Veškeré texty (mimo položky menu) tedy zobrazuje jako plaintext (případné znakové sady národních abeced pak uživatel musí zkoušet tak dlouho, až se trefí) a není žádná možnost, jak do nich přímo zakomponovat jakékoliv multimediální prvky.

Gopher Lynx

Gopher dnes
Stejně jako obdobné počítačově pravěké technologie, ani Gopher nikdy neumřel zcela. Dnes existuje řádově několik set aktivních gopherových serverů udržovaných nadšenci. Jedním z nich je například i Cameron Kaiser, který je autorem jednoho z moderních gopherových serverů pro unixové systémy a také autorem pluginů do Firefoxu, Chrome nebo prohlížeče v Androidích telefonech, díky nimž je možné si Gopher číst i v prostředí moderního software, který již tento protokol zapomněl. Také přepsal fulltextový vyhledávací engine Veronica, který byl v první polovině devadesátých let na Gopheru tím, čím je nám dnes Google na webu.
Svůj Gopher jsem si na adrese gopher://i-logout.cz založil i já a snažím se na něm mimo jiné vést gopherlog, tedy gopherovou obdobu webového blogu.

HGopher for Windows

Proč o Gopheru vlastně píšu?

Je to pozérství v nejčistší formě. Ukázkovější příklad bych ani nevymyslel. Snad jen kdyby si měl gopher blog jako jediný na světě a sám sis ho četl. A pak bys o tom napsal na http blogísek.

Martin Lér, 2011

Možná je to pozérství, ale tahle technologie se mi prostě líbí. Myslím, že klient by slušel například i ZX Spectru, které by díky SIFu a jeho emulaci sériového terminálu přes TCP/IP nemělo mít se zpracováním gopherových menu žádný problém.

Co vy? Znáte Gopher? Používali jste ho, když byl svět ještě mladý?