U nás patrně nejpopulárnější souborovou databází v 90. letech byl PC FAND. I přes své stáří se PC FAND masivně používá díky aplikaci pro jednoduché učetnitcví a daňovou evidenci ÚČTO (dnes ve verzi 2018) společnosti Tichý & Ježek (Tomáš Tichý je jedním ze spoluautorů PC FANDu). Dodnes bývalí uživatelé s nostalgií a slzou v oku vzpomínají na PC FAND, s povzdychem, že podobná aplikace dnes není k dispozi. I pro mne je PC FAND zajímavou databází. Je jednou z mála databází, o kterých můžeme konstatovat, že se rozšířily a úspěšně používaly, která vznikla v ČR.
Přes svou relativní popularitu je k PC FANDu velice málo informací – na internetu o něm nenajdete skoro nic. Naštěstí jsem mohl v Novém Boru navštívit autora PC FANDu, Gerta Klötzera, a pohovořit s ním o historii PC FANDu.
Uživatel na prvním místě
Vznik PC FANDu (název vznikl z prvních písmen podporovaných datových typů: fixpoint, alfanumeric, numeric, datum) jistou mírou zapříčinila nechvalně proslulá tajná policie Stasi, jelikož neumožnila Gertu Klötzeru (rodáku z Drážďan) pracovat v Berlínské akademii věd. I díky tomu pracoval několik let jako programátor v loděnicích v Rostock-Warnemünde na tehdy moderním počítači CDC3300. I přes moderní vybavení vývoj trval příliš dlouho a nedokázal efektivně reagovat na požadavky.
Řešením by byl produkt, který by mohli používat uživatelé bez pomoci programátorů – odtud je už jen krůček k úvahám o deklarativním vývoji. Začátkem 70. let se jednalo o revoluční koncept a je to i jeden z konceptů motivací pro SQL z konce 70. let.
Po přestěhování do ČSSR (kam se přistěhoval za svou manželkou), shodou okolností do Nového Boru, Gert Klötzer pracoval na počítači ZPA 200 na řízení výroby Crystalexu v tehdejším státním podniku AGRODAT. Tehdejší vývoj (především v jazycích assembler a COBOL) se potýkal s velkým množstvím programátorských chyb a znovu Gert Klötzer měl důvod přemýšlet, jak redukovat práci programátora a jak umožnit pokročilejším uživatelům vytvořit si vlastními silami software pro svou potřebu.
Velký pokrok
S novou generací počítačů (tehdy 8bit) a s novými vývojovými nástroji (Turbo Pascal) byla možnost navrhnout a realizovat složitější a koncepčně modernější produkty a z původně jednoduché aplikace pro zadávání dat, vznikla databáze PC FAND. Je to přechodová databáze – na něčem je možnost vidět starší ISAM přístup (merge souborů), jinde se již objevují moderní koncepty – relační model, interaktivní formuláře, WYSIWYG. Na vývoji PC FANDu se ještě podíleli Blanka Tichá (realizace textového editoru), Miloš Kastner a Tomáš Tichý (návrh a realizace GUI – dnes by se řeklo spíše TUI).
Pro dnešního uživatele by byl PC FAND asi těžko uchopitelný program – jeho ovládání odpovídá době 8bit aplikací – nicméně na tu dobu se v něm objevilo několik zajímavých konceptů – například modálního editačního a definičního pohledu na data. Otevřeli jste soubor – a v definičním pohledu interaktivně přidali sloupec. Po přepnutí do editačního okna jste mohli interaktivně editovat přidaný sloupec. Změna v definici se okamžitě propagovala do dat. Na tehdejší dobu neskutečná záležitost.
Na rozdíl od starších databázových systémů, které vždy vyžadovaly práci programátora, PC FAND mohl po zaučení používat koncový uživatel pro své agendy. Díky svým vlastnostem se PC FAND prosadil coby jedna z základních platforem tehdy státní podniku AGRODAT (v tehdejším ČSSR se jednalo o jeden z největších podniků se zaměřením na IT). Díky svému rozšíření (v rámci AGRODATu) se s PC FANDem naučilo pracovat velké množství programátorů, a také měli autoři důležitou zpětnou vazbu, bez které se neobejde vývoj žádného produktu. Ještě pod hlavičkou AGRODATu se PC FAND přeportoval do MS DOSu.
Na vrcholu slávy
Po listopadu 89 a rozpadu (privatizaci) AGRADATu se vývoj PC FANDu přesunul do soukromé společnosti ALIS (se sídlem v České Lípě). Pro PC FAND to byla devadesátá léta velice úspěšná. Vzniklo množství profesionálních i amatérských produktů, PC FAND získal několik ocenění. Kromě jiného PC FAND těžil i ze svého rozšíření z dob ještě před listopadem 89 – také se jednalo o český produkt s českou podporou a licenční (cenová politika) byla realistická a pro tehdejší vývojáře vstřícná.
Vývoj PC FANDu byl limitován velikostí týmu kolem Gerta Klötzera – a už z dob AGRODATu byl hodně pragmatický (část vývojářů si nad PC FANDem postavila vlastní produkty) – do PC FANDu si přidávali vlastnosti, které pro své aplikace potřebovali. Občas si vývojáři přeci jen udělali radost (Gert Klötzer tíhne k AI) a do PC FANDu zabudovali možná překvapivé funkce – např. interpret jazyka PROLOG. Možná se jednalo o reakci na konkurenci, která integrovala SQL (PC FAND je jím nedotčený).
Koncem 90. let už byl PC FAND za zenitem. Nepodařilo se stabilizovat ODBC driver (Gert Klötzer vzpomínal na velké problémy s dokumentací k ODBC, a s chybovostí tehdejších komponent od Microsoftu). Navíc letitý kód v Pascalu (s hutnou porcí assembleru) vyžadoval zásadní revizi. Ze stávajícího kódu se vymačkalo maximum a do dalšího vývoje už se reálně nikomu moc nechtělo. Tou dobou už tu byly dobře dostupné modernější souborové databáze (jak pro MSDOS, tak pro MS Windows). Navíc bylo čím dál tím víc zjevné, že trend budou udávat SQL servery a aplikace psané v obecných vývojových prostředích. Poslední verze PC FANDu je z roku 1999.
Oživení se nikdy nepodařilo
Po roce 2000 bylo několik pokusů o revitalizaci PC FANDu (přepis do Windows, přepis do Javy), ale žádný se nedostal do testovatelné fáze. S odchodem Gerta Klötzera do důchodu se historie PC FANDu definitivně uzavřela. Dnes je PC FAND freeware – v procesu je zveřejnění zdrojových kódů pod zatím nespecifikovanou open-source licencí.
PC FAND dokazuje, že když je vůle a zapálený nadšený vývojář, tak může v jakékoliv době a za jakýchkoliv podmínek napsat velice kvalitní a úspěšný produkt. I když, kdo ví, co by Gert Klötzer dokázal, kdyby žil na západě a měl k dispozici zdroje a technologie, které zde nebyly. Je až k neuvěření, jak neskutečně se posunuly možnosti v IT – ve všech dimenzích.
Z dnešního pohledu je možná škoda, že se v ALISu nezaměřili více na portaci na 32bit (případně do Linuxu) místo na portaci do Win (případně do Javy). Pro dnešní použití PC FANDu je největším omezením pouze podpora 16bit a tudíž pouze 1 MB paměti. Ale po bitvě je každý generálem. Je pravdou, že díky masivnímu použití assembleru (který byl nezbytný na přelomu 80./90. let) by to skutečně nebylo jednoduché. Zajímavá by byla i portace do Linuxu. Produkt tohoto zaměření a rozsahu hodně chybí.
Rozhovor s panem Klötzerem byl příjemný (a poučný) i tím, jak si člověk uvědomí změny v IT. Dynamika a portabilita jazyků (jeho oblíbený JavaScript), koncepty immutable struktur, postupy z deklarativního programování (Gertem Klötzerem zmíněný React) by představovaly z pohledu 80. let absolutní fantazii (tato témata se teoreticky probírala na univerzitách) – a dnes se běžně používají.