Každý program je databáze, co s něčím manipuluje, programátoři jsou specialisti na vytváření databází, co s něčím manipulují, problémem jsou změny, které vedou k tomu, že se musí databáze aktualizovat nebo nahradit za novou databázi, dalším problémem jsou jazyky, ve kterých je databáze vytvořena a konflikt s jinými jazyky. To, co píšeš, se dá chápat jako obecná metafora softwaru: každý program pracuje s nějakým stavem (daty), který ukládá a mění.
A v tomto smyslu opravdu připomíná databázi ať už jde o jednoduchý konfigurační soubor, nebo robustní systém typu PostgreSQL. Pokud to rozvedeme. Program jako databáze. Program přijímá vstupy, ukládá je (do paměti, souboru, databáze, API…) a transformuje. Výsledkem je manipulace s „databází“ stavu ať už jde o seznam položek v e-shopu, polohu hráče ve hře, nebo stavy neuronů v AI.
Programátor jako „specialista na databáze“. Vývojář definuje strukturu dat (modely, schémata, formáty). Určuje logiku jejich změn (funkce, algoritmy, transakce). A řeší způsoby, jak je data možné bezpečně číst a zapisovat. Problém změn (evoluce systému). Data nejsou statická mění se požadavky, rozšiřují se funkce. To vede k nutnosti migrací, změn struktury (např. nová pole, tabulky) nebo úplně nové databáze. Vývojář musí umět zajistit zpětnou kompatibilitu nebo alespoň bezpečný přechod.
Každý jazyk má svůj způsob, jak reprezentuje data (typy, formáty, knihovny). Při integraci více systémů vznikají konflikty třeba rozdíly v kódování znaků, serializaci JSONu, nebo v transakčních modelech. Proto se používají standardy (REST, GraphQL, gRPC, Avro, Protobuf…) a nástroje pro interoperabilitu. Program je stav a manipulace se stavem. Vývojář je architekt stavů a jejich evoluce. Hlavní výzvy změny v čase (migrace) + různé jazyky a ekosystémy (interoperabilita).
Staré knihy (bible) to byli první programy, podle kterých lidi žili, mnozí věří v tyto velmi staré knihy a nechtějí si připustit to že chybují. Staré knihy, první programy společnosti. Obsahovaly „kód“ pro to, jak se má člověk chovat, jak funguje komunita, co je dovoleno a co zakázáno. Sloužily jako databáze pravidel a algoritmy života. Stejně jako někteří vývojáři lpí na starém kódu, i lidé lpí na starých „programech“ (knihách).
Je v tom pocit bezpečí a jistoty, když už to fungovalo pro generace před námi, „musí“ to fungovat i dnes. Společnost se mění, data se mění, prostředí se mění. Pokud se „program“ nepřizpůsobí, začne narážet na realitu. Konflikt pak vzniká mezi těmi, kdo chtějí zachovat starý kód beze změny, a těmi, kdo chtějí staré nahradit novým. Každý program obsahuje chyby. I staré knihy mají rozpory, anachronismy, nebo neřeší situace, které dnes nastávají. Přesto je těžké připustit chybu, protože by to zpochybnilo autoritu celého systému.
Vlastně by se dalo říct, náboženství, ideologie i zákony jsou staré softwarové frameworky společnosti. Některé části se pořád používají (např. etické principy „neubližuj“). Některé už dnes naráží (např. pravidla týkající se společenských rolí). A někdy je nutné udělat „fork“ (nový směr, reforma). Podívejme se na fotografický snímač, kde se musí vstupní surová data upravit, aby vznikla fotka nebo film, otázka je jakou databází se to upraví a jaké korekce opraví vadu objektivu.
Snímač zachytí jen čísla odpovídající intenzitě světla na jednotlivých pixelech. Aby z toho vznikl použitelný obrázek, program provede sérii transformací tedy manipulaci s databází dopočítá chybějící barvy pro každý pixel, koriguje barevný posun způsobený zdrojem světla, odstraní náhodný šum, přizpůsobí rozsah lidskému oku nebo displeji. Každý objektiv má svoje vady výrobci proto dodávají profily objektivů, databáze, kde je uloženo jak se obraz „ohýbá“ u konkrétního objektivu, jak ztmavují okraje (vinětace), jak se lámou barvy (aberace).
Po aplikaci těchto korekcí se výsledná databáze pixelů uloží do formátu, který už je určený k prohlížení. Je to jako s vařením kdy se syrové jedovaté brambory tepelně upraví na dobré jídlo, pokud bychom neuměli nic upravovat tak by život zde evolučně nemohl vzniknout. U člověka se přidala kultura a technologie, programy, které jsme si sami napsali pro úpravu reality.
Bez schopnosti upravovat surové vstupy by nebylo možné přežít. Evoluce sama o sobě je obrovský „databázový procesor“, který neustále vaří ze syrového chaosu vesmíru. My jsme jen jeho pokračováním, vaříme brambory, zpracováváme RAW fotky atd.