MariaDB vs Postgres vs SQL Server

Idris

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #90 kdy: 23. 04. 2021, 16:47:06 »
...a to je mi právě záhada, proč se více neuchytily a nerozšířily objektové databáze.
Kdysi jsem se bavil s autorem db4objects (C. Rosenberger). Hlavní problém je v neflexibilnosti tzv. OO jazyků. On zápasil s Javou (a portem pro C#, pro ten si napsal transpiler z Javy), dnes by to pro Rust, Swift nebo Go bylo ještě horší.


BoneFlute

  • *****
  • 1 685
    • Zobrazit profil
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #91 kdy: 23. 04. 2021, 20:07:53 »
A přitom ve skutečnosti vznikli jen díky tomu, že jazyk bez typové kontroly je možné snáz implementovat.
Není to spíš naopak? Je implementoval oba typy jazyků a runtime pro jazyk bez typové kontroly je těžší napsat, právě kvůli absenci garancí.
Jaké garance máš na mysli?

BoneFlute

  • *****
  • 1 685
    • Zobrazit profil
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #92 kdy: 23. 04. 2021, 20:11:49 »
...a to je mi právě záhada, proč se více neuchytily a nerozšířily objektové databáze.
Kdysi jsem se bavil s autorem db4objects (C. Rosenberger). Hlavní problém je v neflexibilnosti tzv. OO jazyků. On zápasil s Javou (a portem pro C#, pro ten si napsal transpiler z Javy), dnes by to pro Rust, Swift nebo Go bylo ještě horší.
Když si vezmu třeba něco takového: https://crates.io/crates/diesel, což je ještě implementace, která se mi líbí, tak jsem skončil u toho, že takto to dělat nechci. Není to správně OOP.

Re:MariaDB vs Postgres vs SQL Server
« Odpověď #93 kdy: 23. 04. 2021, 20:43:44 »
...a to je mi právě záhada, proč se více neuchytily a nerozšířily objektové databáze.
Kdysi jsem se bavil s autorem db4objects (C. Rosenberger). Hlavní problém je v neflexibilnosti tzv. OO jazyků. On zápasil s Javou (a portem pro C#, pro ten si napsal transpiler z Javy), dnes by to pro Rust, Swift nebo Go bylo ještě horší.
Když si vezmu třeba něco takového: https://crates.io/crates/diesel, což je ještě implementace, která se mi líbí, tak jsem skončil u toho, že takto to dělat nechci. Není to správně OOP.

Jak souvisí Diesel v Rustu s objektovými databázemi? Mě šlo o to že objektové databáze by byly lepší než NoSQL, kde je stále to zavádějící to mapování.

Idris

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #94 kdy: 23. 04. 2021, 21:34:27 »
A přitom ve skutečnosti vznikli jen díky tomu, že jazyk bez typové kontroly je možné snáz implementovat.
Není to spíš naopak? Je implementoval oba typy jazyků a runtime pro jazyk bez typové kontroly je těžší napsat, právě kvůli absenci garancí.
Jaké garance máš na mysli?
Co je kde v paměti za hodnotu. Typová kontrola (inference) při překladu prostě přesně zjistí typy, velikost hodnot a polí atd.


Idris

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #95 kdy: 23. 04. 2021, 21:39:15 »
...a to je mi právě záhada, proč se více neuchytily a nerozšířily objektové databáze.
Kdysi jsem se bavil s autorem db4objects (C. Rosenberger). Hlavní problém je v neflexibilnosti tzv. OO jazyků. On zápasil s Javou (a portem pro C#, pro ten si napsal transpiler z Javy), dnes by to pro Rust, Swift nebo Go bylo ještě horší.
Když si vezmu třeba něco takového: https://crates.io/crates/diesel, což je ještě implementace, která se mi líbí, tak jsem skončil u toho, že takto to dělat nechci. Není to správně OOP.
Ono se (teoreticky) ví, jak objektové databáze dělat správně, jenže současné mainstreamové jazyky mají prostě omezenou syntax. Ten zmíněný Rosenberger o tom měl dokonce akademické články. Jeho implementace v Javě používala hodně hnusné hacky.

Re:MariaDB vs Postgres vs SQL Server
« Odpověď #96 kdy: 23. 04. 2021, 21:44:38 »
Co se tyce objektovych databazi tak podle me jsou docela rozsirene. Napr. kdyz delam mobilni appku a potrebuju nejakou persistenci objektu na strane klienta, tak sahnu po https://realm.io/. No jina vec je ze se moc nerozsili jako uloziste komplexnich systemu, ale jestli to neni spise jakousi setrvacnosti, na co jsou lidi navyknuty, a podobne. Dle me typicke v korporatech - aniz by se vedelo co ten potencionalni novy system bude delat, tak uz je temer jasne, ze tam bude Oracle DB a vubec to neni o tom, jestli to je v hodny typ uloziste pro dany system.

Kit

  • *****
  • 620
    • Zobrazit profil
    • E-mail
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #97 kdy: 23. 04. 2021, 21:59:00 »
...a to je mi právě záhada, proč se více neuchytily a nerozšířily objektové databáze.
Kdysi jsem se bavil s autorem db4objects (C. Rosenberger). Hlavní problém je v neflexibilnosti tzv. OO jazyků. On zápasil s Javou (a portem pro C#, pro ten si napsal transpiler z Javy), dnes by to pro Rust, Swift nebo Go bylo ještě horší.

OO jazyky jsou flexibilní - pouze jako vývojáři děláme všechno možné pro to, aby flexibilními nebyly.

BoneFlute

  • *****
  • 1 685
    • Zobrazit profil
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #98 kdy: 23. 04. 2021, 22:03:06 »
A přitom ve skutečnosti vznikli jen díky tomu, že jazyk bez typové kontroly je možné snáz implementovat.
Není to spíš naopak? Je implementoval oba typy jazyků a runtime pro jazyk bez typové kontroly je těžší napsat, právě kvůli absenci garancí.
Jaké garance máš na mysli?
Co je kde v paměti za hodnotu. Typová kontrola (inference) při překladu prostě přesně zjistí typy, velikost hodnot a polí atd.
Ty tu garanci ale nepotřebuješ. Máš pět typů hodnot (číslo, text, list, dict, funkci)[1], na ty to naparsuješ, a pak už nic víc neřešíš. Všude (na těch pár místech) jen stavíš guardy, aby ti to nepadlo na core dump [2], a to je asi tak všechno. Zatímco statické typy, tam máš celej složitej aparát validace a to mluvím jen o impotentních typech v jazycích jako je Java, C#, a spol.


[1] a to rozlišení na číslo a text je samozřejmě optimalizace.
[2] a vyhazuješ si vlastní stack trace

BoneFlute

  • *****
  • 1 685
    • Zobrazit profil
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #99 kdy: 23. 04. 2021, 22:04:41 »
...a to je mi právě záhada, proč se více neuchytily a nerozšířily objektové databáze.
Kdysi jsem se bavil s autorem db4objects (C. Rosenberger). Hlavní problém je v neflexibilnosti tzv. OO jazyků. On zápasil s Javou (a portem pro C#, pro ten si napsal transpiler z Javy), dnes by to pro Rust, Swift nebo Go bylo ještě horší.
Když si vezmu třeba něco takového: https://crates.io/crates/diesel, což je ještě implementace, která se mi líbí, tak jsem skončil u toho, že takto to dělat nechci. Není to správně OOP.

Jak souvisí Diesel v Rustu s objektovými databázemi? Mě šlo o to že objektové databáze by byly lepší než NoSQL, kde je stále to zavádějící to mapování.
ORM je jako objektová databáze která ukládá do relační databáze. Neshodnem se? V čem?

BoneFlute

  • *****
  • 1 685
    • Zobrazit profil
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #100 kdy: 23. 04. 2021, 22:06:00 »
jenže současné mainstreamové jazyky mají prostě omezenou syntax.
Uveď příklad prosím.

Idris

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #101 kdy: 23. 04. 2021, 22:08:58 »
celej složitej aparát validace
Pokud stačí generické typy, tak složitý není. Až složitější typové systémy implementaci komplikují.

BoneFlute

  • *****
  • 1 685
    • Zobrazit profil
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #102 kdy: 23. 04. 2021, 22:13:47 »
celej složitej aparát validace
Pokud stačí generické typy, tak složitý není. Až složitější typové systémy implementaci komplikují.
A proto třeba veškerá typová validace Javy se při kompilaci zahodí, odvodí se vlastní.

Napsat jazyk bez typů je snadné. Důkazem je Lua, který považuji za špičku dynamického jazyka. Tam to vzaly za dobrý konec - oškubaná na kost a skoro dokonalá. A pak se k tomu přibaluje typový aparát, více či méně schopný. Samozřejmě, napsat typy aka Java/C#, to je možná pod tvou rozlišovací schopnost :-). Ale přesto je to něco navíc.

Idris

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #103 kdy: 23. 04. 2021, 22:14:12 »
jenže současné mainstreamové jazyky mají prostě omezenou syntax.
Uveď příklad prosím.
Celé to je hezky shrnuté zde: https://dl.acm.org/doi/10.1145/1062455.1062488

Idris

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:MariaDB vs Postgres vs SQL Server
« Odpověď #104 kdy: 23. 04. 2021, 22:17:16 »
Samozřejmě, napsat typy aka Java/C#, to je možná pod tvou rozlišovací schopnost
U těchto jazyků je implementace vskutku jednoduchá, ale i to dodrbali. Kvalitně je inference typů udělaná v Rustu.