Portál AbcLinuxu, 5. prosince 2025 00:39
.
.
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í
Takže byste je měl buďto doložit nebo odvolat. Astrologické argumenty neberu
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.
Takže byste je měl buďto doložit nebo odvolat. Astrologické argumenty neberu“
To jak mě vidíte, je pouze Váš problém. Máte plné právo si o mě myslet cokoli, jenom máte problém, že mě je to fuk a nebudu na to brát zřetel.
Stejně tak mi je fuk, za co jsem považován. Nechápu, že si pořád spousta lidí myslí, že mě to nějak eminentně zajímá. Je mi to fuk, dělá-li Vám radost snažit se mě sestřelit osobním útokem, dělejte to. Pokud to pomůže Vaší psychice, mě to neuškodí, klidně pište.
---
„Ž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í.“
To jistě není. Ale komunikační protokol musí být schopen pojmout třeba případné budoucí extenze a featury databázového stroje. Tedy být schopen budoucí úpravy.
Není třeba standardizovat víc, než je třeba. Bohatě stačí standardní API.
---
„Zrovna u MySQL je zveřejněn stručný popis protokolu, rozhodně ne pořádná specifikace.“
A celý zdrojový kód knihovny pro komunikaci.
---
„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.“
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.
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.
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.
Na Windows existuje ODBC nebo OLE DB, a to funguje velmi pěkně a na jednotném API. Můžete bez problému napsat program připojující se k mnoha databázím aniž byste se houštinou knihoven prodíral. A aniž byste znal detaily síťové komunikace.
Něco podobného funguje v rámci JAVA a JDBC.
Atd.
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.