Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 189 190 [191] 192 193 ... 618
2851
Vývoj / Re:Má Python budoucnost?
« kdy: 15. 06. 2016, 23:36:00 »
Jen aby se vám z toho ale nezamotala hlava. :) Ten tolikrát vychvalovaný Spring v o několik řádů rychlejší Javě je v něm totiž například pomalejší než flask s Pythonem. A to se bavíme o reálných problémech webového backendu
Já tam teda vidím Javu na druhém a 5.-8. místě, přičemž se jí tam vetřel jenom Ur (asi málo kdo používá) a C++. První výskyt Pythonu vidím až někde na místě, do kterého se mi nechce počítat. Cca čtyřicátém?

Ty tam vidíš něco jinýho?

2852
Vývoj / Re:Má Python budoucnost?
« kdy: 14. 06. 2016, 20:14:10 »
Možná místo než databáze jsem měl říct "vrstva pro práci s daty". Chápu ale, co myslíš, a nemyslím, že si nějak oponujeme.
Jasne, vsak si jenom tak povidame, nesporime se ;)

Mne se na tech green threads libi prave to, ze pokud nechces, zadnou "vrstvu pro práci s daty" tam mit nemusis - stav si proste drzis uvnitr toho vlakna, nic neresis, mas ho pro sebe a nikdo ti na nej nemuze sahat. Pohodicka, klidek ;)

2853
Vývoj / Re:Má Python budoucnost?
« kdy: 14. 06. 2016, 20:03:52 »
nicméně u webového backendu si představuju, že paralelní přístup k datům za mě ošetří databáze
No to vlastně neříkáš nic jiného, než že ten samotný obslužný kód je bezstavový - což je právě to, co platilo dřív - ten CRUD model a dneska už to nestačí/neplatí. Resp. můžeš to tak dělat, ale nebude to pohodlné a výsledky nebudou dobré (můj názor, každý nemusí souhlasit).

2854
Vývoj / Re:Má Python budoucnost?
« kdy: 14. 06. 2016, 19:47:25 »
Stav si může držet i couroutina. Koukal jsem na ten Phoenix framework. Je to pěkné, ale nevidím tam nic, k čemu by byla nutná vlákna. Ještě se na to podívám později.
Jde především o 1. jednoduchost řešení 2. o paralelizovatelnost "zadarmo" (bez toho, aby se o ni musel programátor nějak explicitně starat).

Načtu stránku - dojde k autentizaci a inicializaci stavu (načtení nebo vytvoření session). Každá událost na webu se pak odešle na backend (tomu procesu) a ten modifukuje stav. Zavření stránky = ztráta spojení = zrušení procesu, příp. uložení stavu.

Pokud mám green threads, můžu to celé psát tak, jako bych měl jednovláknovou aplikaci, která obsluhuje právě jednoho klienta a nic jiného ji nezajímá. Narozdíl od té výš zmíněné obezličky s N interpretery (kde jich navíc typicky nemůžu mít tolik, kolik mám klientů) ale navíc můžu snadno posílat události mezi takovými procesy. Tady v tom Phoenixu je to pubsub - klienta zajímají např. zprávy v chatové místnosti, tak každou novou zprávu odešlu na daný kanál a pubsub ji automaticky doručí všem procesům a ty procesy pak informují svého klienta. Protože těch procesů mám typicky víc než jader, škáluje mi to prakticky lineárně a přitom vůbec neřeším nějaké korutiny odskoky sem a tam, zamražení stavu a jeho zpětné načtení až na něj přijde řada, nemusím přepínat kontext jenom v pevně daných okamžicích, ale prakticky (z pohledu programátora) kdykoli atd. atd. atd.

Dost těžko se to vysvětluje, je potřeba si s tím tak půl roku hrát, aby si člověk uvědomil, v čem všem se to vyplatí a jakými všemi způsoby to usnadňuje práci. Nedělám si sebemenší naději, že bych to uměl nějak nevyvratitelně dokázat. Zkus a uvidíš, třeba se mýlím.

Nicméně o stavu jsem nic neříkal. Představuju si eventloop (kód pak je nějaká šílenost s vnořenými callbacky), přičemž volání knihovny se rozprostřou na více jader. High-level kód pak může být sekvenční a ostatní jádra využije jen kód knihovny. Záleží samozřejmě na tom, co píšu. Alternativně by šlo mít jen funkcionální datové struktury a tam, kde to nejde, na těch pár místech použít zámky. Pak by ani ten high-level kód nemusel být sekvenční.
No jo, ale takhle by to právě mohlo fungovat (jestli jsem tě pochopil správně) jenom pokud by 1. ty operace byly vůbec principielně paralelizovatelné 2. pokud by ten "podvozek" (runtime jazyka nebo knihovna) uměl poznat, že to může paralelizovat.

Jasně, pokud ten event bude "k tomuhle poli tisíce hodnot připočti jedničku", tak to paralelizovat jde. Ale to není úplně typická operace na webovém backendu, notabene napsaném v OOP jazyce, navíc tak nevyzpytatelném/flexibilním [nehodící se škrtni ;) ] jako je Python...

2855
Vývoj / Re:Má Python budoucnost?
« kdy: 14. 06. 2016, 17:57:30 »
V ideálním případě žádný, protože vlákna by měla transparentně používat jen standardní knihovna, a ta bude stejně z větší části napsaná nativně. Nicméně svět ideání není a lidi eventloopy používat moc neumí...
Jak jsi tohle myslel? Eventloop mi přece sám o sobě nijak neumožňuje využít víc jader. Pokud mám v jazyce de facto jeden velký stav, který neumím rozdělit na víc nezávislých stavů, tak ty eventy stejně musím zpracovávat sekvenčně a opět využiju jenom jedno jádro. Eventloop by mohl pomoct jenom v případě, že bych uměl eventy zpracovávat paralelně, což stejně v těch zmiňovaných jazycích obvykle nejde (nebo jde za cenu hnusných hacků).

Nebo jak jsi to myslel?

2856
Server / Re:Cloud nebo server?
« kdy: 14. 06. 2016, 17:22:33 »
Tohle bohužel neposoudím a hlavně nemám s čím porovnat (i když blob to určitě je).

S čím jsme narazili (a to opravdu brutálně) byl CEPH a celkově diskový výkon. Nakonec se to nějak vyladilo, ale trvalo to asi půl roku. Teď uvidíme v nové verzi jak se vytáhne DRBD.
Ok, dík.

Vendor lock-in. První dávka heroinu také bývá často zadarmo...
https://aws.amazon.com/free/
To jo, u firem, které tam mají vybudovanou nějakou infrastrukturu a používají Amazon-specific věci to chápu. Ale že je třeba i tak populární u malých začínajících firem, které si můžou vybírat a mají prostor si to pořádně spočítat, to mě trochu překvapuje. Asi je to prostě tím, že AWS se stalo synonymem cloud computing a když tam jsou všichni, tak to přece musí bejt výhodný...

Ukaz mi realne jak z Google ukradnes data te hloupe firmy ktera nevidi ta nebezpeci ktera ty dokazes zneuzit ( https://apps.google.com/ tady mas par ukazek tech zakazniku, muzem zkusit treba Kofolu) a muzem se bavit. Ukazana plati, zbytek jsou jen zvasty bez hodnoty.
To je samozřejmě ptákovina, ale jsou jiné argumenty, proč může být vlastní server lepší (např. proto, že nejsi limitovaný v tom, jaké si tam dáš filtry, spešl akce atd. nebo i jenom proto, že ti to prostě stačí, údržba ti stačí minimální a server máš tak jako tak, takže proč ho nevyužít).  EDIT: a samozřejmě pořád ještě pro někoho hrají roli výpadky netu.

[o tomhle tématu se nechci přít, přijde mi to přihlouplý, jenom jsem chtěl říct, že to posouváte do absurdní roviny, o kterou vůbec nejde, která nerozhoduje]

2857
Vývoj / Re:Má Python budoucnost?
« kdy: 14. 06. 2016, 17:16:05 »
Tak se pořádně podívej na ty nesmyslné příklady a na zdrojáky. To je na porovnávání imperativních a nikoli objektových jazyků. To je tak na C/C++ vs. Fortran apod.
Však to je taky porovnání hrubého výkonu, nic víc, nic míň. Třeba můj oblíbený Erlang tam dopadá dost špatně a vůbec mi to žíly netrhá :)

2858
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 06. 2016, 22:58:35 »
Jaká je výhoda používání skutečných vláken ve skriptovacím jazyce oproti eventloopu? Ok, skript poběží čtyřikrát rychleji na čtyřech jádrech, ale pořád používám jazyk, který je padesátkrát pomalejší než třeba ta Java.
Čtyřikrát je pořád lepší než jednou ;) A nezapomeň, že dneska má 4 jádra spíš tak možná mobil.

Ale nejde jenom o rychlost. V jazyce, který umí pořádný multithreading, ideálně green threads/processes, můžu například pro každou session od začátku až do konce nechat běžet jeden green thread a držet v něm stav té session, aniž bych ho nutně musel pořád ukládat a načítat a blokoval uživatele navzájem. Pokud tě to zajímá, můžeš se podívat, jak to dělá Phoenix v Elixiru: http://www.phoenixframework.org/docs/channels

2859
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 06. 2016, 22:00:48 »
Nevím co by mi Java nabídla navíc.

podporu vice vlaken ?

2860
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 06. 2016, 11:55:11 »
Jop, proto tu mame vsechny ty nenavidene Reacty a Angulary :).
Právě - a těm (AFAIK) nemá Python moc co nabídnout...

2861
Server / Re:Cloud nebo server?
« kdy: 13. 06. 2016, 10:50:56 »
no protoze ty kalkulace tady v tom threadu ohledne ceny a navratnosti HW jaksi kulhaji na obe nohy, protoze to zelezo samotne je ta nejmensi polozka. kdybys pocital opravdu skutecne naklady tak vychazis radove jinak.
Žádný opravdový kalkulace tady neproběhly, jenom řádová čísla pro ilustraci.

Já osobně netvrdím, že je něco pravda, jenom říkám, že bych chtěl vidět, jak kdo dělá kalkulaci, že mu to vychází. Mně to totiž nevychází a nevychází to (za určitých podmínek) ani v amazonním vlastním TCO kalkulátoru: https://plus.google.com/+MiroslavPrymek/posts/CauCQB9Abp6

2862
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 06. 2016, 10:47:15 »
Šablony pomalé jsou, ale proto se na druhou stranu kešují.
Nejde ani zdaleka jenom o jejich generování, ale o celej ten cyklus - načtu data, naplním do šablony, pošlu přes net, parsuju, vykresluju. A tohle všechno dělám pro všechna data na stránce, i ta, na která se v tom kliku vůbec nešáhlo. Neefektivní nesmysl.

2863
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 06. 2016, 23:41:07 »
Já jsem o šablonách nic nepsal. CRUD aplikace může komunikovat čistě pomocí JSONu a html můžu obsluhovat jako statické soubory. MVC frameworky se rozšířily právě proto, že se v nich snadno dělají ajaxové aplikace.
No a pak je tam to Django úplně zbytečné :)

2864
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 06. 2016, 23:30:27 »
Těmi moderními aplikacemi myslíte websockety? K tomu používám celery a nodejs. Nodejs udržuje spojení a z djanga nebo celery mu posílám data, která chci poslat klientovi. Uznávám, že je to zbytečně komplikované, ale websockety používá jen malá část aplikace.
To nejsou jenom websockety, ale ten celkový koncept, kdy aplikace tahá jenom ta data, která nutně potřebuje, a překresluje jenom to, co je překreslit potřeba. Takhle bude nejspíš web v budoucnosti vypadat, nikdo nebude na každé kliknutí tahat (a generovat) celou stránku znovu.

Uznávám, že je to zbytečně komplikované, ale websockety používá jen malá část aplikace.
No jak která aplikace, že :) Nejenom, že je to zbytečně komplikované (další narovnávák na vohýbák), ale především je to zoufale pomalé a náročné na zdroje na serveru. Pomocí naplňování šablon prostě nejde (u aplikace složitější než hello world) dosáhnout latence řádově stejné jako je latence pingu. U aplikace založené na websocketech to možné je.

Šablony prostě imho patří minulosti. Odehrály svoji úlohu, ale jde se dál. A to ono "dál" bude pro python tvrdý oříšek. Možná se s ním popere, možná ne, to uvidíme. Ale hurónsky rozhlašovat, jak je python jedinečná technologie na web, je podle mě poněkud úsměvné, pionýři už jsou jiní a jinde.

2865
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 06. 2016, 22:46:07 »
To je pravda, ale pro obyčejné CRUD aplikace to bohatě stačí. Tam stačí i PHP. Asi jsem lopata, ale vlákna jsem nikdy nepotřeboval.
No jistě, pokud mám aplikaci, která nedělá nic jiného než že na dotaz do šablony vkládá údaje z databáze, tak to "stačí". Sice se kvůli tomu musí vymýšlet narovnáváky na ohýbáky jako třeba FCGI, ale jinak je to "úplně v pohodě". Jo akorát tedy ty narovnáváky něco občas rozbijí. Ajo a taky se vlastně na ně musí spešl myslet, když se tam dává proxyna. Ale jinak v pohodě. Jo a taky vlastně takhle vůbec nejdou dělat moderní aplikace. Ale to nevadí. My si vystačíme s tím, že PHP do nějakého HTML vyprdne něco z MySQL.

Však když někdo nezná nic jinýho než kladivo, taky jím "úplně v pohodě" i spraví televizi :)

Stran: 1 ... 189 190 [191] 192 193 ... 618