Historie 602SQL
Autor: Pavel Stěhule, 2018
Určitě zajímavým produktem, který vznikl v České republice, a který je dnes již mimo zorné pole většiny vývojářů, je 602SQL Server. Tato multiplatformní databáze má dlouhou a místy i poměrně dramatickou (na sw) historii - První verze je z roku 1993 a poslední build, který lze stáhnout, je ze srpna 2008. V 90 letech a i v první polovině minulé dekády byla poměrně velká šance se s touto databází setkat. Jednalo se o oblíbený nenáročný produkt s rozumnou cenovou politikou, který od svého začátku byl programován pro MS Windows. V této databázi bylo možné pohodlně psát vlastní aplikace a ty dále distribuovat (tvářila se jako 4GL). Také byla k dispozici podpora v češtině, plus česká nápověda - a samozřejmě, že nechyběla podpora češtiny. Konečně díky bezplatnému daru Software602 českým školám z roku 1994 se WinBase602 na řadě škol a gymnázií používala pro výuku, a díky rámcové smlouvě mezi Software602 a Svazem měst a obcí z roku 1999 bylo možné se s touto databází setkat i na obecních úřadech.
Jak už bylo naznačeno, za vývojem této databáze (signalizuje to i 602 v názvu) byla firma Software602, konkrétněji menší tým kolem Januše Drózda (jako student se podílel na vývoji v ČSSR poměrně rozšířeného Pascalu pro 8bity). Náhodou jsem získal kontakt na Januše Drózda a zvědavost mi nedala, abych z něj nezkusil vytáhnout víc informací o zákulisí vývoje této databáze. Se vzpomínkami na 90 léta mu vypomáhal Jan Šíma, který ve zmíněném vývojovém týmu zastával roli, kterou bychom dneska asi označili za projektového manažéra.
Začátkem 90 let řešil Januš Drózd dilema, jestli si má napsat vlastní Unix nebo vlastní SQL server. V obou případech by se jednalo o hodně ambiciózní projekty - nicméně ambice rozhodně Januši Drózdu nechyběly. Jelikož se doslech o novém Unixu z Finska, tak se rozhodl pro SQL server. Od začátku se jednalo o moderní implementaci ANSI SQL standardu napsanou objektově v C++ nad architekturou klient/server. Prototyp běžel ještě nad MS DOSem, první verze pak již byly psány pro MS Windows. Přiznám se, že až do rozhovoru s J.D. jsem netušil, že od prvních verzí WinBase602 byl v této databázi integrován moderní SQL server. Žil jsem s představou, že WinBase602 byla klasická souborová databáze.
Rozhodně by se několik prvních verzí tak chápat dalo - v klientu bylo možné navrhovat reporty, navrhovat formuláře, a i psát vlastní skripty v jazyku v mnohém podobném Pascalu. Tehdejší recenze vyzdvihují i některé funkce (podporované klientem) převzaté ze síťových databází. V rozhovoru Januš Drózd zmínil, že zpětně to nebylo šťastné, tyto funkce později komplikovali optimalizace databáze. Samotný server byl multiplatformní a kromě MS Windows mohl být provozován i na Linuxu a Novellu.
Informační technologie zažívaly v 90 letech neskutečný vývoj - databáze a databázové aplikace nebyly výjimkou. Dramaticky se rozvíjel ANSI SQL standard. Vznikaly nové standardy pro komunikaci, nové koncepty pro databázové aplikace. Vznikaly nové architektury (web), nové programovací jazyky a nové vývojové prostředí. Zatímco ještě v první polovině 90 let se ještě masivně používaly aplikace v 4GL databázích (Dbase, FoxPro, Paradox), tak druhá polovina 90 let znamená přechod k generickým programovacím jazykům (Visual Basic, Delphi). Myslím si, že v 602 dokázali docela dobře držet krok. Pro WinBase602 existovaly drivery pro ODBC, JDBC, SDBC. V této databázi bylo i možné psát aplikace pro web díky podpoře CGI a FastCGI API.
Kolem roku 2000 firma mění strategii a více zdůrazňuje skutečnost, že WinBase602 obsahuje SQL server - dochází k ukončení vývoje stávajícího klienta a k přejmenování produktu na WinBase602 SQL Server (verze 6). Navíc ve verzi 9.5 změnou protokolu dochází k odstřižení staršího klientského prostředí. Tou dobou už zřejmě nedávalo žádný smysl snažit se konkurovat MS Accessu, který se stal částí MS Office a byl prakticky všude. Ekonomiku vývoje ovšem běžní uživatelé produktu neřeší - a krok, kdy se 602SQL server zbavil podpory starších klientů, nesli uživatelé velmi nelibě. Tehdy databáze 602SQL server přišla o hodně svých uživatelů. Nicméně v Software602 nově cílili na jiné uživatele, a to náročnější vývojáře webových aplikací.
Nový klientský software po verzi 9.0 byl již psán multiplatformně (název se mění na 602SQL Server) - nad knihovnou wxWidgets. A ačkoliv se jednalo o dobře napsaný fungující software (i pěkně vypadající), nebylo možné v novém klientu psát aplikace. Zde udělali v Sw602 tlustou čáru za minulostí. Nový klient byl analogický adminu v MS SQL - bylo možné vytvářet, modifikovat tabulky, psát i ladit uložené procedury v SQL/PSM. Nic víc. Pro uživatele, kteří WinBase602 používali jako 4GL databázi to byl šok.
Coby konkurence MySQL se 602SQL serveru moc nedařilo. Webaři si široké a kvalitní podpory ANSI SQL (samozřejmě, že nechybí podpora referenční integrity, fulltextu, uložených procedur, triggerů) a dokumentace v češtině necenili natolik, aby nakupovali v dostatečném množství podporu a licence - a bez toho komerční produkt nemůže existovat (Linuxová verze byla zdarma (bez některých komponent)).
Konečnou pro 602SQL server bylo vydání express edicí Oracle (2004) a Microsoft SQL Serveru (2005). Limity těchto edicí byly často dostatečně vysoko nad požadavky typických uživatelů 602SQL serveru a tudíž je v ničem neomezovaly. Ostatně i další Open Source databáze jako PostgreSQL, Firebird, MySQL nevyjímaje vyzrály natolik, aby je bylo možné používat multiplatformně ve všech produktech, kde byl 602SQL server používán. V té době, po cca 15 letech vývoje, autorům začala docházet motivace pokračovat ve vývoji. V říjnu 2007 byl 602SQL Server zveřejněn jako open source, a po dvou letech další vývoj byl ukončen. Ještě několik let po otevření kódu používali 602SQL Server v Software602 interně pro své produkty.
Stále ještě některé aplikace nad 602SQL Serverem běží a ještě stále lze provozovat tuto databázi i ve Windows 10) - téměř 10 let od posledního buildu. Když vím a vidím kolik lidí pracuje na vývoji Postgresu, vůbec se mi nechce věřit, že v tak malém týmu tehdy dokázali realizovat tak ambiciózní produkt a tak rychle (a udržet jej 15 let při životě).