Portál AbcLinuxu, 15. května 2025 23:26
Hlavní impuls přišel od PHP, které obešlo jeho licenci k libmysql tím, že si napsalo vlastní implementaci této knihovny pod názvem mysqlnd.Rozhraním DB by měl být síťový protokol, ne nějaká knihovna. Knihovnu nechť si klidně každý pro svůj programovací jazyk napíše sám.
Možná jste to ještě nezjistil, ale pokud databázoví vývojáři dávají API v jazyce C, pak je jednoduché toto API použít v každém myslitelném programovacím jazyce.Což je často zbytečná komplikace, protože mezikus mezi C a daným jazykem je často složitější než přímá implementace vesměs triviálního protokolu.
Stejně tak nekomuntuji Vaši lež o tom, že kdekoli se připojují klienti po síti, že byl standardizován protokol. To zřejmě žijete na Marsu a ne na Zemi.Ehm, neřekl bych, že zrovna vy jste v těchto končinách považován za osobu s dost velkým rozhledem na to, aby jí kdokoliv věřil takováhle tvrzení
Jakýmkoli zafixováním síťové komunikace by se dosáhlo pouze toho, že by se nemohly zlepšovat ani optimalizovat po stránce této komunikace.Že jsem tak smělý, jaká optimalizace komunikace byla na tomto poli za posledních 20 let zavedena? Posílání dotazů a odpovědí na ně je natolik triviální záležitost, že není potřeba desítek roků vývoje na to, aby se našlo slušné řešení.
Většina databázových strojů, počínaje MySQL, přes další a další – má komunikační protokol standardizovaný,Zrovna u MySQL je zveřejněn stručný popis protokolu, rozhodně ne pořádná specifikace. Jinak o embedded databázích tu nikdo kromě vás nemluví, ty mohou mít interface jakýkoliv, dokonce to často ani není SQL, ale primitivnější operace.
dělá-li Vám radost snažit se mě sestřelit osobním útokem,Ne, pouze konstantuji, že zde nepožíváte tak velkou autoritu, aby dávalo smysl brát vážně vaše obecná tvrzení bez náznaku důkazu. Jinými slovy neodmítám tvrzení proto, že jste ho řekl vy, ale proto, že je nepodložené. Pouze dodávám, že kdyby ho řekl někdo, kdo má lepší reputaci, ležela by laťka pro dostatečnost podložení trochu jinde.
A celý zdrojový kód knihovny pro komunikaci.To není náhrada specifikace protokolu.
Vy jste mluvil o tom, že chcete standardizovat komunikační protokol jako součást SQL. Tak jsem jenom připomněl, že existují i databáze s SQL, které komunikovat meziprocesně nepotřebují, třeba embedded.Toto se ve standardech obvykle řeší tak, že standard doporučí protokol, který se má použít v případě, že se se serverem komunikuje po síti. Jasná paralela jsou třeba e-mailové systémy. Existuje standardní formát zpráv a protokol (SMTP), který se používá pro přenos mailů po síti. Jak si který systém posílá maily uvnitř jednoho počítače, standard neřeší.
Protože na rozdíl od Vás jsou strůjci SQL protokolu praktičtí a zkušení lidé, tak je ani nenapadla taková hovadina jako standardizovat komunikační protokol jako součást SQL standardu.Já to vidím spíš tak, že strůjci SQL stále žijí v 80. letech a ignorují 30 let vývoje a standarizace síťových protokolů a s tím spojených výhod.
Což je často zbytečná komplikace, protože mezikus mezi C a daným jazykem je často složitější než přímá implementace vesměs triviálního protokolu.Mimochodem, absurdnost celé situace vynikne v okamžiku, kdy jeden program chce umět využívat různé DB servery. Tehdy se musí vyrovnat s houštinou knihoven s různým API, místo aby používal jednu knihovnu, která se jednotným protokolem bude bavit se všemi DB.
Ale řekl bych, že bych se raději prodíral houštinou několika knihoven, které mi nabídnou API, než řešil low level detaily síťové komunikace.To po vás také nikdo nechce. Cílový stav by měl být společný protokol a pro každý jazyk standardní knihovna, která tímto protokolem hovoří a poskytuje API přirozené pro daný jazyk. Netřeba stavět hromady meta-abstrakcí typu ODBC. (Navíc meta-abstrakce skřípou tam, kde různá API skrytá pod nimi mají různou sémantiku. A že ve světě databázových API takových sémantických pastí je spousta...)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.