Kniha Objektové programování od Čady

zboj

  • *****
  • 1 507
Re:Kniha Objektové programování od Čady
« Odpověď #120 kdy: 31. 05. 2017, 10:33:46 »
Citace od: Tomáš Roll kdy 31. 05. 2017, 10:27:33
Citace od: gll kdy 31. 05. 2017, 10:01:52

Javascript je čitelnější než Lisp. JSON, CSS a HTML jsou čitelnější než s-expressions. Lisp měl smysl v sedmdesátých letech, kdy jiné jazyky neumožňovaly zápis složitějších struktur a interaktivní použití. Javascript to umožňuje a IMHO lépe.

Javascript je krutá pomsta. Nevím koho, nevím komu, ale opravdu krutá. Nebo něčí odporný žert. Používat ho na skriptování nějakých animací na webu, dejme tomu, ale aplikační jazyk? Proboha. Už jen to doporučované formátování, dávat bracket na stejný řádek jako function nebo if, to je zjevně něčí zlý úmysl.
Jazyky se dají hodnotit podle (akademické) čistoty a pragmatičnosti. Takový Haskell je až matematicky "čistý", ale nepříliš pragmatický. Go je třeba naopak vysoce pragmatické, ale na teorii CS zvysoka - ehm - kašle. JS je vzácný příklad jazyka, co není ani "čistý", ani pragmatický. Fakt je to pomsta :) nebo rafinovaný nástroj k odhalování trotlů (IF likes Javascript THEN is thicko)  ;)


Kit

Re:Kniha Objektové programování od Čady
« Odpověď #121 kdy: 31. 05. 2017, 10:35:31 »
Citace od: Tomáš Roll kdy 31. 05. 2017, 10:27:33
Citace od: gll kdy 31. 05. 2017, 10:01:52

Javascript je čitelnější než Lisp. JSON, CSS a HTML jsou čitelnější než s-expressions. Lisp měl smysl v sedmdesátých letech, kdy jiné jazyky neumožňovaly zápis složitějších struktur a interaktivní použití. Javascript to umožňuje a IMHO lépe.

Javascript je krutá pomsta. Nevím koho, nevím komu, ale opravdu krutá. Nebo něčí odporný žert. Používat ho na skriptování nějakých animací na webu, dejme tomu, ale aplikační jazyk? Proboha. Už jen to doporučované formátování, dávat bracket na stejný řádek jako function nebo if, to je zjevně něčí zlý úmysl.

Nevidím důvod, proč by měl být bracket na samostatném řádku. Otevírací píši vždy na konci aktuálního řádku a následující řádky odsadím. Zatím mi nikdo nezdůvodnil, proč to psát jinak.

BTW: Nedělal jsem to ani v Pascalu. Begin si prostě nezaslouží samostatný řádek.

zboj

  • *****
  • 1 507
Re:Kniha Objektové programování od Čady
« Odpověď #122 kdy: 31. 05. 2017, 10:35:58 »
Citace od: Mirek Prýmek kdy 31. 05. 2017, 10:33:36
Citace od: zboj kdy 31. 05. 2017, 10:28:52
Navíc když je někdo pablb, tak zprasí dotazy do DB i bez ORM.
Určitě. Ale ORM framework mu v tom mocně sekunduje a pěkně za ručičku vede do pekla ;) Čím jednodušší na použití, tím horší.
To asi jo, mám vlastní zkušenost s jedním  "juniorem", co za použití automatického ORM dával do DB objekty dědící z UIView  >:(

Re:Kniha Objektové programování od Čady
« Odpověď #123 kdy: 31. 05. 2017, 10:38:33 »
Citace od: zboj kdy 31. 05. 2017, 10:33:46
JS je vzácný příklad jazyka, co není ani "čistý", ani pragmatický.
JS byl celkem pragmatický a relativně OK ve svém původním účelu: jednořádkový handler kliknutí někam. Že se z něj pak stal jazyk, ve kterém se budují dnešní webové jaderné elektrárny, je jiná věc, spíš historická nahodilost.

Mně spíš doteď není jasný, proč se výrobci prohlížečů nemůžou domluvit na nějakém bytecodu+standardizovaném VM typu CLR, aby se konečně toho JS dalo elegantně zbavit bez transpilace...

gll

Re:Kniha Objektové programování od Čady
« Odpověď #124 kdy: 31. 05. 2017, 10:39:25 »
Citace od: Mirek Prýmek kdy 31. 05. 2017, 09:49:52
Citace od: gll kdy 31. 05. 2017, 09:43:39
Django nepoužívám, ale limit funguje normálně, joiny přes loop to neprovádí a pro efektivní save jde použít bulk_save. Má to mouchy, proto jsem přešel na SQLAlchemy. Ale to co píšete, není pravda.
O limitu jsem nic nepsal. Problém ORM frameworků je, že si člověk "snadno" kdekoliv v kódu šáhne pro cokoliv jako by to byla lokální proměnná a vůbec neřeší, jak ve skutečnosti budou vypadat ty dotazy, jaká s tím bude režie. V tom je ten ďábel v detailu.

To stejné byste mohl napsat o každé technologii přidávající úroveň abstrakce. Když to používáte správně, ušetří vám to spoustu práce. Zejména pokud dlouhodobě pracujete se složitější databází a provádíte často podobné, ale ne úplně stejné dotazy. Kdybyste měl stále dokola zapisovat ty stejné joiny, tak byste se z toho zbláznil.


zboj

  • *****
  • 1 507
Re:Kniha Objektové programování od Čady
« Odpověď #125 kdy: 31. 05. 2017, 10:41:16 »
Citace od: Mirek Prýmek kdy 31. 05. 2017, 10:38:33
Citace od: zboj kdy 31. 05. 2017, 10:33:46
JS je vzácný příklad jazyka, co není ani "čistý", ani pragmatický.
JS byl celkem pragmatický a relativně OK ve svém původním účelu: jednořádkový handler kliknutí někam. Že se z něj pak stal jazyk, ve kterém se budují dnešní webové jaderné elektrárny, je jiná věc, spíš historická nahodilost.

Mně spíš doteď není jasný, proč se výrobci prohlížečů nemůžou domluvit na nějakém bytecodu+standardizovaném VM typu CLR, aby se konečně toho JS dalo elegantně zbavit bez transpilace...
Ona ta transpilace do JS nevadí, transpiler si většinou nestěžuje, že musí generovat prasokód (pokud to je program, ne nějaký Ind).

Tomáš Roll

Re:Kniha Objektové programování od Čady
« Odpověď #126 kdy: 31. 05. 2017, 10:43:45 »
Každých 10 let se v Berlíně setkají největší zlouni světa domlouvají se, jak uškodit lidstvu.
"Vyhodíme do povětří Eiffelovu věž"
"Ne, mám něco lepšího, otrávíme všechny obyvatele Moskvy"
"Ne, to je nic. Uděláme z Javascriptu objektový jazyk"

Re:Kniha Objektové programování od Čady
« Odpověď #127 kdy: 31. 05. 2017, 10:44:49 »
Citace od: gll kdy 31. 05. 2017, 10:39:25
To stejné byste mohl napsat o každé technologii přidávající úroveň abstrakce. Když to používáte správně, ušetří vám to spoustu práce. Zejména pokud dlouhodobě pracujete se složitější databází a provádíte často podobné, ale ne úplně stejné dotazy. Kdybyste měl stále dokola zapisovat ty stejné joiny, tak byste se z toho zbláznil.
Ne. Problém není v abstrakci, problém je v abstrakci takového typu, že spousta jejich uživatelů nedokáže sestoupit o úroveň níž a říct, co přesně tohle udělá. Čili efektivně ztratí schopnost uvažovat nad vlastním kódem, což je ten problém.

Např. parametrizovaná fce, která zastupuje nějaký složitější dotaz, který ale má konkrétní účel a konkrétní, všem známou formu, je úplně v pohodě. To je abstrakce úplně jiného typu než když mám třeba ultramagický proxy objekt, který teprve při přístupu k atributu tahá data z DB, nikdo neví v jakém rozsahu a jak často, jakými joiny, s jakými náklady...

v

Re:Kniha Objektové programování od Čady
« Odpověď #128 kdy: 31. 05. 2017, 10:45:54 »
Citace od: zboj kdy 31. 05. 2017, 10:33:46
Citace od: Tomáš Roll kdy 31. 05. 2017, 10:27:33
Citace od: gll kdy 31. 05. 2017, 10:01:52

Javascript je čitelnější než Lisp. JSON, CSS a HTML jsou čitelnější než s-expressions. Lisp měl smysl v sedmdesátých letech, kdy jiné jazyky neumožňovaly zápis složitějších struktur a interaktivní použití. Javascript to umožňuje a IMHO lépe.

Javascript je krutá pomsta. Nevím koho, nevím komu, ale opravdu krutá. Nebo něčí odporný žert. Používat ho na skriptování nějakých animací na webu, dejme tomu, ale aplikační jazyk? Proboha. Už jen to doporučované formátování, dávat bracket na stejný řádek jako function nebo if, to je zjevně něčí zlý úmysl.
Jazyky se dají hodnotit podle (akademické) čistoty a pragmatičnosti. Takový Haskell je až matematicky "čistý", ale nepříliš pragmatický. Go je třeba naopak vysoce pragmatické, ale na teorii CS zvysoka - ehm - kašle. JS je vzácný příklad jazyka, co není ani "čistý", ani pragmatický. Fakt je to pomsta :) nebo rafinovaný nástroj k odhalování trotlů (IF likes Javascript THEN is thicko)  ;)
co je v tomto kontextu "pragmatičnost"?

Re:Kniha Objektové programování od Čady
« Odpověď #129 kdy: 31. 05. 2017, 10:47:11 »
Citace od: zboj kdy 31. 05. 2017, 10:41:16
Ona ta transpilace do JS nevadí, transpiler si většinou nestěžuje, že musí generovat prasokód (pokud to je program, ne nějaký Ind).
To ne, ale zbytečně to transpiler limituje a dává (nejspíš) o hodně nižší výkon. Zbytečně se řeší úplně zbytečná dilemmata typu "mám generovat čitelný JS (PureScript) nebo pohodlný/efektivní JS (Elm)" atd. atd.

zboj

  • *****
  • 1 507
Re:Kniha Objektové programování od Čady
« Odpověď #130 kdy: 31. 05. 2017, 10:58:30 »
Citace od: Mirek Prýmek kdy 31. 05. 2017, 10:47:11
Citace od: zboj kdy 31. 05. 2017, 10:41:16
Ona ta transpilace do JS nevadí, transpiler si většinou nestěžuje, že musí generovat prasokód (pokud to je program, ne nějaký Ind).
To ne, ale zbytečně to transpiler limituje a dává (nejspíš) o hodně nižší výkon. Zbytečně se řeší úplně zbytečná dilemmata typu "mám generovat čitelný JS (PureScript) nebo pohodlný/efektivní JS (Elm)" atd. atd.
Možná, ale JS na serveru je krávovina a v prohlížeči už to může být jedno, navíc Safari, Chrome etc. mají poměrně rychlý JS.

zboj

  • *****
  • 1 507
Re:Kniha Objektové programování od Čady
« Odpověď #131 kdy: 31. 05. 2017, 11:02:30 »
Citace od: v kdy 31. 05. 2017, 10:45:54
Citace od: zboj kdy 31. 05. 2017, 10:33:46
Citace od: Tomáš Roll kdy 31. 05. 2017, 10:27:33
Citace od: gll kdy 31. 05. 2017, 10:01:52

Javascript je čitelnější než Lisp. JSON, CSS a HTML jsou čitelnější než s-expressions. Lisp měl smysl v sedmdesátých letech, kdy jiné jazyky neumožňovaly zápis složitějších struktur a interaktivní použití. Javascript to umožňuje a IMHO lépe.

Javascript je krutá pomsta. Nevím koho, nevím komu, ale opravdu krutá. Nebo něčí odporný žert. Používat ho na skriptování nějakých animací na webu, dejme tomu, ale aplikační jazyk? Proboha. Už jen to doporučované formátování, dávat bracket na stejný řádek jako function nebo if, to je zjevně něčí zlý úmysl.
Jazyky se dají hodnotit podle (akademické) čistoty a pragmatičnosti. Takový Haskell je až matematicky "čistý", ale nepříliš pragmatický. Go je třeba naopak vysoce pragmatické, ale na teorii CS zvysoka - ehm - kašle. JS je vzácný příklad jazyka, co není ani "čistý", ani pragmatický. Fakt je to pomsta :) nebo rafinovaný nástroj k odhalování trotlů (IF likes Javascript THEN is thicko)  ;)
co je v tomto kontextu "pragmatičnost"?

"[A]n approach that evaluates theories or beliefs in terms of the success of their practical application."

Člověk by řekl, že to bude jedna škála se dvěma protipóly, ale "díky" JS to jsou dvě nezávislé veličiny.

gll

Re:Kniha Objektové programování od Čady
« Odpověď #132 kdy: 31. 05. 2017, 11:02:52 »
Citace od: Tomáš Roll kdy 31. 05. 2017, 10:27:33
Citace od: gll kdy 31. 05. 2017, 10:01:52

Javascript je čitelnější než Lisp. JSON, CSS a HTML jsou čitelnější než s-expressions. Lisp měl smysl v sedmdesátých letech, kdy jiné jazyky neumožňovaly zápis složitějších struktur a interaktivní použití. Javascript to umožňuje a IMHO lépe.

Javascript je krutá pomsta. Nevím koho, nevím komu, ale opravdu krutá. Nebo něčí odporný žert. Používat ho na skriptování nějakých animací na webu, dejme tomu, ale aplikační jazyk? Proboha. Už jen to doporučované formátování, dávat bracket na stejný řádek jako function nebo if, to je zjevně něčí zlý úmysl.

Stejné formátování se používá i v Javě. Když takový kód nedokážete číst, tak hledejte chybu na sebě a ne v JS.

gll

Re:Kniha Objektové programování od Čady
« Odpověď #133 kdy: 31. 05. 2017, 11:05:55 »
oprava
Citace od: Tomáš Roll kdy 31. 05. 2017, 10:27:33
Citace od: gll kdy 31. 05. 2017, 10:01:52

Javascript je čitelnější než Lisp. JSON, CSS a HTML jsou čitelnější než s-expressions. Lisp měl smysl v sedmdesátých letech, kdy jiné jazyky neumožňovaly zápis složitějších struktur a interaktivní použití. Javascript to umožňuje a IMHO lépe.

Javascript je krutá pomsta. Nevím koho, nevím komu, ale opravdu krutá. Nebo něčí odporný žert. Používat ho na skriptování nějakých animací na webu, dejme tomu, ale aplikační jazyk? Proboha. Už jen to doporučované formátování, dávat bracket na stejný řádek jako function nebo if, to je zjevně něčí zlý úmysl.

Stejné formátování se používá i v Javě. Když takový kód nedokážete číst, tak hledejte chybu na sobě a ne v JS.

Tomáš Roll

Re:Kniha Objektové programování od Čady
« Odpověď #134 kdy: 31. 05. 2017, 11:08:56 »
Citace od: gll kdy 31. 05. 2017, 11:05:55

Stejné formátování se používá i v Javě. Když takový kód nedokážete číst, tak hledejte chybu na sobě a ne v JS.

To je jako vypíchnout svému dítěti oči, aby bylo psychicky silnější.