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 - noef

Stran: 1 ... 27 28 [29] 30 31 ... 60
421
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 19:08:39 »
Původní OOP spočívalo v tom, že data i algoritmy jsou zapouzdřeny v objektu. Metody měly bezproblémový přístup k instančním proměnným, které zvenku přístupné nebyly. Perfektně zapouzdřeno. Postupně se to však zdeformovalo do podoby, kdy data jsou zvlášť a servisní služby také zvlášť v samostatných třídách. Často statických. Aby bylo možné se k těm datům dostat zvenčí, tak se na to naroubovaly gettery a settery. Prostě z toho vznikl paskvil.

Dik za vysvetleni.

Tak ale v tom pripade je Python jeste mene "OOP" nez Java, pokud v podstate nema zapouzdreni, nebo ne?

Jinak to oddeleni dat od funkci zni jako FP, uz jen chybi se zbavit tech setteru :).

422
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 18:27:21 »
Na vetsi veci se mi zda neprakticky, protoze zacnete pocitovat ty chybejici typy (musite vyvazovat dokumentaci, casem a testy navic) a nepodporou IDE (at uz refaktorovani nebo treba navigaci).

Zrovna tohle je typický argument. O pythonu už jsem tu vedl několik diskuzí, které vždycky skončí stejně: já ukážu na nějaký projekt, dodám zkušenost s práce na větším systému (desítky tisíc řádků podle cloc bez komentářů, prázdných řádků a tak) a ostatní se hádají, že to prostě nemůže fungovat, i když to funguje.

Ehm, vzdyt na to jsem odpovel v prispevku, ktery citujete.

Stejne jako u PHP, ani u Pythonu nerikam, ze to nejde ... jen tvrdim, ze je to nevhodny nastroj.

a ten drivejsi, na ktery jsem se odkazoval:

...
Jak pise Kit, programovat se da i v takovem bordelu, jen clovek musi presne vedet, kam nema slapat, aby neprisel o nohu.
...
Prakticky se pouziva, dokonce i na dost velke veci. Naopak veci v Pythonu nebo JavaScriptu s trochu vic radky bych se bal udrzovat. Bez typu se hezky vyviji v malickem meritku s malo lidmi, ale jakmile se to rozroste a uz nemate v hlave mentalni model cele aplikace, tak mate problem. V Jave/Scale vam pomuze IDE a prekladac vam kdyztak vynada, v JavaScriptu nebo Pythonu je to mnohem horsi. Treba v JS musite spolehat na dokumentaci a IDE, ze to nejak prechroupe a zobrazi zhruba co by mohlo sedet k tomu, co potrebujete.

(V podstate to stejne pise BoneFlute - v dynamickych jazycich si musite vypomahat dobrovolnymi typy v dokumentaci, ve statickych je vynucuje prekladac.)

Pak se to zvrhne na hádku o typových systémech, kde javisti dokazují, že když to nefunguje jako v javě, tak to nemůže být použitelné pro cokoliv kromě trivialit, pythonisti se frustrovaně snaží vysvětlit, že to fakt funguje, což je prostě pozorování, ne teorie, pak přijde někdo s tím, že ducktyping je bullshit a že mu nerozumí, haskellisti, ocamlisti a další typoví guru se smějí na pozadí. Do toho přijdou lopaťáci, kteří začnou vykřikovat cosi o lopatách, trolové, kteří prostě jen krmí některý z táborů čímkoliv, na co budou reagovat a drama je na světě.

Nikdy jsem nepsal (viz citace vyse), ze to nejde bez statickych typu, jen ze je to zbytecny opruz. Opravdu nevim, jestli podle vas jsem v nejake z tech kategorii, protoze prvni kategorii nesplnuji, pythonista nejsem (ocividne), ducktyping pouzivam denne v praci a na typoveho guru se moc necitim, kdyz pomalu nedavam ani zaklady ScalaZ (celkem hardcore FP knihovna).

Ono vůbec, u pythonu narážím na to, že spousta lidí vůbec nechápe, že má svojí vlastní filosofii a nejde jen tak přijít z javy, naučit se základy syntaxe a začít v něm javit, protože pak z toho lezou výblitky, které je horor udržovat a tohle pak javisti berou jako důkaz, že python nestojí za nic.
Python jsem zkousel (spise byl nucen pouzivat) po urcitych zkusenostech s C#, Javou a Scalou. Naopak jsem srovnaval se Scalou, protoze Python mi byl popisovan jako krasny a celkem strucny jazyk, ve kterem se rychle vyviji. Jak z mych prispevku vyplvyva, ma ocekavani nesplnil. Po pravde po zkusenostech s kolekcemi ze Scaly nevim, zda vubec nejaky jazyk se ji priblizil (napr. v Pythonu* nelze ani pomalu psat funckionalne [ukecane lambdy, chybejici retezeni]; JavaScript je funkcionalni, od ES6 umi i hezky kondenzovane fat-arrow funkce, ale bez externi knihovny take hodne slaby [co se vyberu funkci tyce]).

*: Nasel jsem jakesi reseni v podobe doimplementovani pipe opratoru a preimplementovani zabudovanych funkci jako map nebo filter na curried variantu. IMO celkem hnusne reseni - narovnavak na ohybak.

Stejne jako u PHP, ani u Pythonu nerikam, ze to nejde (vim, ze se tak deje a firmy jsou casto nuceny pak prepisovat cele svoje zivobyti z PHP/Pythonu/Ruby kvuli vykonu/udrzovatelnosti do Javy/C#/Scaly) - jen tvrdim, ze je to nevhodny nastroj. Ostatne i TeX je turing-complete, takze nic nebrani firme, aby back-end pro web psali v TeXu. Jen se obavam, ze by brzy skoncila, pokud by tedy vubec nekdy zacala (kdo by chtel BE v TeXu? kdo by chtel psat BE v TeXu?).

Skvělá šikmá plocha. Protože lopatička není koloběžka, tak ani v javě se nedá psát komplexní projekt.

Že to nedává smysl? No, to tyhle jazykové analogie fakt nedávají, což ale nikomu nebrání je používat, že. Tady se třeba cosi snažíš dokázat na TeXu, který má s pythonem společného co? Nic.

Opet, nerikam ze se v TeXu neda napsat skvely back-end, jen to podle me neni vhodny nastroj (stejne jako Python - takze neco spolecneho maji) a minimalne z dlouhodobeho hlediska se to prodrazi. Sam bych nejradsi misto JavaScriptu pouzival treba TypeScript nebo ScalaJS, vetsinu chyb by odhalil prekladac a nemusel bych ani nic testovat. A to nyni v podstate vyvijim v jednom cloveku jen par mesicu, takze je to pidi projekt oproti tomu, co pisete. Mit treba projekt v Pythonu (nebo klidne i NodeJS, at nerikate, ze jsem zaujaty vuci Pythonu) o desitkach nebo stovkach tisicu radek s nekolika vyvojari stary treba 5 let? Eh, hned bych hledal zpusob, jak prejit jinam, kor kdybych prisel k hotovemu a nevedel o tom projektu zhola nic.

Po pravde mam z Pythonu pocit, ze OOP podporuje jen na oko (chybejici modifikatory pristupu, __háky__, nutnost predavat metodam self a uvadet self pro pristup k poli objektu, atd.) a FP jednou omylem nekdo chtel zkusit a uz to nejak v jazyce zustalo, prestoze ty vlastnosti jsou tam celkem nanic.

Já mám zas pocit, že nemáš tušení co je to OOP, ani FP. Modifikátory přístupu například vůbec v původním OOP (smalltalk, self) nebyly a ani být nemusí. To je jen demence, když to pak roubovali na pokroucený zprasený systém C++ a Javy (Oaku, heh).

Ano, priznavam, ze puvodni OOP neznam (aktualni prakticky pouzivane OOP ano). Ale nejak se mi nepozdava, ze treba zapouzdreni by tam chybelo, coz snad ty modifikatory pristupu zajistuji. K tomu, ze neznam FP jsi nejak nic nenapsal. Jako nutne to nevyvracim, ale zaklady FP si myslim znam celkem dobre. A pokud jazyk chce byt trosku funkcionalni, tak nutnost pouzivat hacky k dosazeni beznych operaci umoznujicich ono FP mi prijde dost mimo.

Python podporuje „privátní“ atributy pomocí __, kde ti interpreter vyhodí chybu, když k tomu zkusíš přistoupit.
...
Na druhou stranu ti v tom fakt nebude bránit, pokud víš co děláš:

Kód: [Vybrat]
>>> x._Xe__private()
1

Tohle me prijde jako prilis snadne obejiti zapouzdreni (a ano, i v JavaScriptu bych uvital modifikatory pristupu, ne jen skryvani "privatnich" promennych do closure). Ono i v Java svete nebyva problem pomoci reflexe nebo primo pres bytekod tridy zpristupnit privatni data, ale je to o uroven dal, nez jen zavolat jinak pojmenovanou metodu (programator opravdu vi, ze dela neco hodne nestandardniho a nestava se, ze novacci pouzivaji privatni veci, protoze neni tak trivialni k nim pristupovat).

Což je podle mě v pořádku. Když programátor fakt ví co chce, tak si může dělat co chceš a ty jako programátor knihovny mu v tom nezabráníš, i kdyby ses posral a nadefinoval si private úplně všechno. To jen lidi co přichází z Javy / C# mají urputný pocit, že když to neudělají, tak dojde ke konci světa. Nedojde. Prostě to spadne někomu, kdo dělá věci co by neměl, což není můj problém. Naopak progrmátorům, kteří ví co dělají a třeba chtějí jen mocknout nějakou hodnotu pro účely testování to může ušetřit shitload práce.

Jinak kdysi jsem na tom byl stejně, takže chápu, kde se tahle mentalita bere, můžu tě ale ujistit, že je to falešný pocit nutnosti něčeho, co fakt nutné není.

Osobne to preferuji, kdyz mi jazyk primo umoznuje omezovat pristup. Prijde me, ze do tymu je to mnohem lepsi pristup. Kdyz se opet podivam do JS sveta, tak tam byvaji nehezke zaludne a tezce dohledatelne bugy, kdyz se nekdo, nebo jeste lepe nejaka knihovna, rozhodne "opravit" funkci nejakeho standardniho typu (monkey patching).

__háky__

Magické metody jsou naopak docela chytrý koncept systematizovaného metaobjektového komunikačního protokolu. Stěžovat si na ně je stejná blbost, jako stěžovat si na konvenci používání metody nazvané toString() v jiných jazycích.

Zcela uprimne - prijde me to ohavne, to jsem od "krasneho" jazyka necekal. Proc radeji nezvolili jiny znak, pouze 1 znak, jako prefix, proc radeji 2x 2 podtrzitka?

Reflexe je i v jinych jazycich (jestli to chapu dobre) a vetsinou je povazovana za zverstvo, ktere se smi pouzivat pouze ve velmi specifickych pripadech typu knihovny kvuli hezci syntaxi. Podobne jako eval v JavaScriptu. Ma sice sve misto, ale v normalnim projektu typu web to misto rozhodne neni.

nutnost predavat metodam self a uvadet self pro pristup k poli objektu

Jo, to se může jevit jako opruz. Na druhou stranu to umožňuje dekorátorům pracovat s instancemi objektu za běhu, což se používá v pokročilém metaprogramování. Má to i pár dalších výhod a dává to konzistentní smysl, ale to člověk nevidí, dokud nepřekročí základy.

Troufam si rict, ze v JavaScriptu jsem davno prekrocil zaklady, a rozhodne nemam v lasce nutnost vsude ve tride uvadet "this". CoffeeScript to vyresil celkem elegantne, misto "this" prisel s jednim znakem - @. Po pravde az v Pythonu vidim, ze se musi pouzivat this/self i jako parametr metody. Nevim, ja to vse vnimam tak, ze je to do Pythonu dolepene.

Ono argumentovat popularitou je dost ošemetné. Kdybych to měl přirovnat třeba k hudbě, tak takový Justin Bieber má na YT miliardy shlédnutí a přitom objektivně jeho produkce stojí za hovno. Popularita a kvalita bohužel ne vždy jdou ruku v ruce a často se vyloženě rozcházejí. Někdy se to krásně sejde, ale jedno automaticky nevyplývá z druhého.

Hahah. Tohle mě pobavilo, hlavně proto, že pamatuju ještě ty časy, kdy tomu tak nebylo a lidi argumentovali proti pythonu tím, že je nepopulární a v čechách v něm moc lidí nedělá. Teď je populární a lidi argumentují zase opakem :D

To, ze je jazyk popularni jej nedela dobrym (meh, PHP nebo i starsi verze JavaScriptu nejsou nejake prevratne) a ani naopak.

Mimochodem Python je tu opravdu tak popularni? Vsude v inzeratech totiz vidim jen Javu a C# na ty velke veci. Na male naopak jen PHP :-X.

A celkove, nemate nekdo nejake statistiky o popularite jazyku u firem v CR/SK? By me zajimal treba takovy Haskell (slysel jsem, ze i v Brne v nem kdesi delaji) nebo Scala ci Groovy.

423
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 15:26:19 »
Napriklad vytlacil javu z pozice nejrozsirenejsiho jazyka pro vyuku. A tusim, ze odtud prameni i iracionalni vyhrady zastancu jinych jazyku.

Podle teto logiky bych mel byt vzteky bez sebe, kdyz se na mistni ZS pouziva k vyuce Baltik misto Javy? To jako myslite vazne? ;D

Pokud jsou nejake me vyhrady iracionalni, tak je prosim racionalne vyvratte. Jinak povazuji vasi poznamku o iracionalnich vyhradach za iracionalni.

424
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 15:20:31 »
Mám dílema:

Obhajovat Python, protože v něm konec konců dělám, je to relativně dobrý jazyk a je pro mě dobré, když v něm bude dělat víc lidí, kteří vytvoří víc knihoven, a vůbec udělá víc příležitostí pro mě.

Rozhodne neobhajujte neco, jen proto ze v tom delate. Mam podezreni, ze to je duvod, proc tu to PHP jeste porad strasi. Vyvijim v JavaScriptu a rozhodne nemam potrebu ho do nebe vychvalovat. Mam na neho spise neutralni nazor, rozhodne by me nenapadlo vsem cpat NodeJS na server, kdyz si myslim, ze se to hodi jen na mikro weby (v podstate nastejno jak ten Python nebo Ruby).

nebo

Nechat místní trolly a omezené javisty na python plivat, což třeba odradí některé nováčky, ze kterých by v budoucnosti mohla být konkurence. Nestojí to žádnou práci a konec konců mi může být v zadeki, co kde kdo vykládá.

Javista nejsem (i kdyz zaklady znam), tak asi jsem troll. Tak si dovoluji oznacit i vas za trolla, at vam to oplatim ;). Python, si myslim, je pro novacky dobry, ale jak jsem psal, jen pro vyuku a male skriptiky. Na vetsi veci se mi zda neprakticky, protoze zacnete pocitovat ty chybejici typy (musite vyvazovat dokumentaci, casem a testy navic) a nepodporou IDE (at uz refaktorovani nebo treba navigaci).

Stejne jako u PHP, ani u Pythonu nerikam, ze to nejde (vim, ze se tak deje a firmy jsou casto nuceny pak prepisovat cele svoje zivobyti z PHP/Pythonu/Ruby kvuli vykonu/udrzovatelnosti do Javy/C#/Scaly) - jen tvrdim, ze je to nevhodny nastroj. Ostatne i TeX je turing-complete, takze nic nebrani firme, aby back-end pro web psali v TeXu. Jen se obavam, ze by brzy skoncila, pokud by tedy vubec nekdy zacala (kdo by chtel BE v TeXu? kdo by chtel psat BE v TeXu?).

Po pravde mam z Pythonu pocit, ze OOP podporuje jen na oko (chybejici modifikatory pristupu, __háky__, nutnost predavat metodam self a uvadet self pro pristup k poli objektu, atd.) a FP jednou omylem nekdo chtel zkusit a uz to nejak v jazyce zustalo, prestoze ty vlastnosti jsou tam celkem nanic.

Chapu, ze ukecanost je subjektivni, a jsou lidi, kterym Java vyhovuje (ukecanost se postupne trochu snizuje, treba ta podpora lambd nebo * v typovych parametrech). Ja mezi ne nepatrim a naopak ocenuji strucny zapis ala Scala*, LiveScript nebo Haskell.

*: Casto zavidim Haskellistum nadupanou typovou inferenci, ale jak jsem psal vyse, Scala je IMO dobry kompromis mezi krasou a prakticnosti. JVM je snad nejrychlejsi VM a mam pristup ke vsem knihovnam a nastrojum z Java sveta.

425
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 13:57:09 »
Dobře, když máte výraz x = a(b(c(d(e(f(g)))))), tak jak otestujete, která funkce je špatně bez přepisování kódu. Jak se dozvíte, co je výsledkem c na reálných datech?

A jak se to vztahuje k FP? To jako ze tam jsou funkce tak je to FP? To co jste uvedl (asi) nepouziva ani funkce vyssich radu, vypada to jako normalni imperativni kod. Co mi brani to takto napsat v Pythonu, nebo pripadne v jazyce, ktery zadne extra FP ficury nema?

Kdyby byl Python nepouzitelny jazyk, jak tvrdis, tak ho nikdo nebude pouzivat, ale on je naopak siroce pouzivany.

Staci se podivat na PHP. Jazyk, ktery mel byt utracen davno (hrozna "specifikace", jazyk i interpret), je to jako splacane od zacinajiciho studentika VS, presto tu dal uspesne preziva. Kvalita nema bohuzel s popularitou nic spolecneho.
Rec je o pouzitelnosti, nikoliv kvalite a popularite. Je dobre rozlisovat mezi akademickou kvalitou a praktickou pouzitelnosti a zamyslet se, proc se tem akademickym jazykum v praxi tolik nedari. Velmi pravdepodobne v posouzeni kvality jazyka bude kazdy zduraznovat jine vlastnosti, rozhodne bych to neredukoval jen na cistotu syntaxe.

Tak napr. PHP je nekvalitni v tolika aspektech (casti jazyka nespecifikovane, std knihovna nema/nedodrzuje zadne konvence pojmenovani a navratovych hodnot, parser je patlany a casto jsou tam nesmysle podminky jen kvuli jednoduchosti implementace [takovou hruzu jsem nevidel snad v zadnem jinem bezne pouzivanem jazyce], konfigurace se provadi na mnoha mistech a to i u veci ze std knihovny [compile flagy, config v ini souboru, config v aplikaci, parametry dane funkce]) a rekl bych, ze prave proto i spatne pouzitelny. Byl jen na dobrem miste v dobry cas a napsalo se pro neho spostu kodu (a rozjelo dost hostingu), ktery se lidem nechce opoustet, tak u neho zustavaji. Jak pise Kit, programovat se da i v takovem bordelu, jen clovek musi presne vedet, kam nema slapat, aby neprisel o nohu.

Ja ho naopak preferuji a uprednostnuji kde muzu a nemusim naopak Javu, ktera me osobne prijde celkove tezkopadna a neohrabana.

Python me prijde stejne neohrabany jako Java. Moc to nesleduju, ale Java 8 myslim prinasela dost FP veci, coz vede k mnohem jednodussimu kodu. Osobne me prijde Scala jako dobry kompromis mezi uplatnitelnosti (JVM) a "krasou" jazyka (velmi jednoduse zapsane slozite veci, podpora DSL, FP atd).
Neumim si predstavit, ze bych neco jako scala pouzival prakticky, tj. ze bych mel odvahu to nasadit u zakaznika v rozsahu desitek tisic radkukodu a udrzoval/rozvijel to 15+ let. Pro me je to neduveryhodny a proto _prakticky_ nepouzitelny jazyk.

Prakticky se pouziva, dokonce i na dost velke veci. Naopak veci v Pythonu nebo JavaScriptu s trochu vic radky bych se bal udrzovat. Bez typu se hezky vyviji v malickem meritku s malo lidmi, ale jakmile se to rozroste a uz nemate v hlave mentalni model cele aplikace, tak mate problem. V Jave/Scale vam pomuze IDE a prekladac vam kdyztak vynada, v JavaScriptu nebo Pythonu je to mnohem horsi. Treba v JS musite spolehat na dokumentaci a IDE, ze to nejak prechroupe a zobrazi zhruba co by mohlo sedet k tomu, co potrebujete.

(V podstate to stejne pise BoneFlute - v dynamickych jazycich si musite vypomahat dobrovolnymi typy v dokumentaci, ve statickych je vynucuje prekladac.)

V Pythonu me vadi velke mnozstvi boilerplatu (napr. @property, @staticmethod, lambda, nenasel jsem zpusob, jak lehce retezit volani funkci, takze pokusy o FP styl pusobi hrozne) a kod celkove pusobi roztahane.

Samozrejme na Haskell, co se tyce "krasy" a strucnosti, as nic moc nema*. A to jsem v nem "noob", pamatuji si ho pouze ze skoly. Ale uz i jen ty zaklady byly nezapomenutelne (pro ostatni studenty spise v tom spatnem slova smyslu :D).
*: Resp. nic lepsiho jsem jeste nevidel. Pokud neco znate, tak sem s tim.
Dekoratory nejsou boilerplate, to je naopak reseni eliminujici boilerplate, ktere vede k prehlednosti a strucnosti, nejsou povinne a jsou velmi flexibilni, muzes si je prizpusobit svym potrebam. Na haskellu mi nic krasneho neprijde, ale nema smysl porovnavat funkcionalni jazyk s imperativnim a tomu druhemu vycitat opacny stav. Argument, ze pokusy programovat v haskellu imperativne vypada hrozne, bych osobne povazoval za fail :-).

Je to kod, navic na cely radek (alespon tak to vsude vidim), ktery se casto opakuje. Stejne tak lambda - v jinych jazycich vidime co nejkrasi zapis, jako treba ->, => nebo \, v Pythonu je to ale cele slovo? Snad hur na tom byval jen JavaScript a i ten to uz napravil.

Ale Haskell nezavadi imperativni programovani jako nejakou svou feature, castecne ho umoznuje pomoci do notace. Python naopak se vsi slavou zavedl ruzne ficury z FP sveta (zakladni funkce nebo ty ukecane lambdy), ale uz se jaksi zapomnelo na to, ze jsou skoro nepouzitelne, protoze nejdou hezky retezit :D.

A naopak, moznost program casto a co nejdriv spoustet je jedna z vyhod interpretovanych jazyku.

Vzhledem k tomu, ze existuji inkrementalni prekladace (tusim ze jej ma Java i Scala a urcite mnoho dalsich), tak tohle je standard, ne vyhoda. Stejne tak i kompilovana Scala ma REPL, take to neni vyhrada Pythonu nebo interpretovanych jazyku.
Neni to standard a naopak, ze se o to snazi i kompilovane jazyky jen dokazuje, ze to ma smysl a je to vyhodou pro kazdy jazyk, ktery to umi.

Snazi? Ony to uz davno umi, vzdyt jinak by vyvoj v Jave byl hrozny, kdyby se vse vzdy muselo prekladat od 0. To by nesly rozumne psat (a testovat) ty dinosauri enterprise aplikace.

REPL pokud vim je i pro Javu, jen ne zatim oficialni (jestli se nepletu, tak je to soucasti nejakeho navrhu). JavaScript ma NodeJS, nebo primo prohlizec; ruby je na tom stejne jako Python, v Haskellu staci pusti ghci, atd.

To, ze Python ma REPL, ho nad konkurenci rozhodne nevysouva.

426
O serveru Root.cz / Re:Nový Root již dnes?
« kdy: 12. 05. 2016, 12:46:00 »
Vetsina tech problemu me prijde usmevna, kdyby stranky delali amateri.

Jak tu bylo jiz receno, pokud by byl boostrap pouzit spravne, tak je to otazka zmeny jedne tridy (pro neznale nahrazeni nekolika znaku) a mame tu full-width layout (nezkousel jsem to, ale videl jsem na dost mistech velikost natvrdo v px, takze to "dobre" udelane asi neni).

Cpat reklamu za kazdou cenu vedle obsahu, pokud je stranka prilis uzka (zobrazeno na mobilu), nedava zadny smysl. To, ze je stranka responzivni znamena, ze se muze preskladat podle sirky, klidne do jednoho pruhu. Pokud to myslite s neotravovanim reklamami vazne, tak ji muzete presunou dolu pod obsah. Ale pro boha at ten obsah ma plnou sirku, kdyz uz je tam tak malo mista.

Podobne lze resit velikost pisma - mate tam menu, proc tam nepridate i stelovatko velikosti pisma? Opet - pokud je to nakodene spravne (tj. zadne absolutni velikosti pisma), tak je to otazka na ctvrt hodinu.

Podle me je zcela jasne, jak by se mely predelat reklamy - nechat asynchrone, at to odsipa, a jit do reklamniho systemu, kde vite dopredu velikost reklam a pripadna prazdna mista po nacteni stranky zaplnit svymi "reklamami" (muzou to byt i upoutavky na jine clanky, nemusi jit nutne o placene produkty) nebo napr. radami (podobne jak mivate ve hrach "quick tips" na okraji obrazovky).

Je to smutne, ze pan Krcmar musi cist nase narky a pritom s tim asi nemuze nic delat. Doufam, ze alespon tem kravatam odstrihnutych od reality IT webu podavate pravidelna hlaseni, kdyz uz tu ziskavate zadarmo podrobnou analyzu a casto i primo kod s opravami chyb, ktere se v prve rade nikdy nemely dostat do produkce.

PS: Odskakovani na mobilu je pro me, stejne jako pro Hawrana a asi i dalsi, "deal-breaker" => na mobilu se na roota proste divat uz nebudu.

427
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 11:01:36 »
Řetězení transformací je chytlavý nešvar FP, nedá se to dobře testovat.
To pouze odpovida nekolika prikazum za sebou. Nebo bezne snad testujete jen polovinu metody objektu, napr. jen prvni tri prikazy, ikdyz jich metoda obsahuje 20? Treba v Jave to asi mozne je, ale nevim proc to delat.

A v konečném důsledku je to podobné, jako když funkce má 12 parametrů.
Ne, neni. Stejne jako mit 12 prikazu v metode neznamena, ze je to stejne jako mit 12 parametru.

Python je navržen schválně tak, aby nic nešlo lehce řetězit.
S tim souhlasim, je zamerne navrzen tak, aby v nem neslo elegentne provozovat FP. Ostatne myslim, ze i samotny tvurce se k tomu tak vyjadril, ze FP je pro neho na druhe koleji. Cely Python je zamerne navrzen tak, aby byl ukecany, coz nemam rad - jazyk je hezky pro novacky, jakmile ale po chvili povysi na znale, tak najednou vidi vsude tu ukecanost pro zacatecniky, ktera pokrocilym uz ale nic neprinasi. Nevzniklo ostatne proto Ruby?

428
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 10:25:00 »
Tak todle moc čitelné není a je to v haskellu (přebráno z GitHubu):

onCreate :: JNIEnv -> JObject -> JObject -> IO ()
onCreate env activity _bundle = runJNISafe () env $ do
  msg <- liftIO $ do
    getNumProcessors >>= setNumCapabilities
    caps <- getNumCapabilities
    return $ "Hello World!\nRunning on " `append` pack (show caps) `append` " CPUs!"

Programovaci jazyk nema nutne byt citelny pro ty, kteri jej neznaji (a uz vubec ne, pokud neznaji ani dane paradigma). Nedokazu pousoudit, zda je to nejhezci mozny zapis v Haskellu, ale citelne a krasne me to prijde (no, mozna az na ten append).

Zkuste si v cistem Pythonu hezky funkcionalne retezit par transformaci (napr. nekolik map, filter a pouzijte v nich inline funkce) a pak srovnejte se Scalou nebo Haskellem. To teprv uvidite tu krasu ;).

429
O serveru Root.cz / Re:Nový Root již dnes?
« kdy: 12. 05. 2016, 10:16:45 »
Poskakovani obsahu je podle me velky problem, ktery se musi resit. Navic pokud je oprava pro ctenare tak snadna a pro vas tak nevyhodna: zablokovat reklamy => poskakovani vyreseno.

Opravdu tedy potrebujete tolik pozic na reklamu, kdyz tam nic vetsinu casu nebude? Navic to nemusi byt obrazky, staci decentni textove reklamy, nemusi byt agresivni.

Je sice hezke, ze kdyz se nezobrazi, tak mame obsah bliz, ale problem nastava, kdyz se zobrazi -> obsah odskoci a to se tu resi a ctenarum to vadi. Ten odskok byva navic umocnen prodlevou - skudlenim reklamnich systemu na HW a pripojeni, takze stranka se nacita 1s, ale reklamy 4s (bottle-neck v tomto mereni je reklamni system), takze ten odskok muze byt zpozden doslova o vteriny a to uz ctenar zvladl nekam si naskrolovat a zacit cist.

430
O serveru Root.cz / Re:Nový Root již dnes?
« kdy: 12. 05. 2016, 09:13:12 »
IMO nejlepsi reseni je emental a pripadne diry vyplnit svymi "reklamami" na kurzy, tanga, atp. Budto to hodit pod reklamy (mysleno v z ose), takze to bude videt jen pri nenacteni reklam, nebo po nacteni stranky si osahat reklamu a zjistit, jestli tam neco opravdu je (nezkoumal jsem, jak ty reklamni systemy funguji, ale snad by to mohlo jit; pripadne nemaji na to primo nejake JS API?).

Jak jsem psal drive, ze ty odskoky na mobilu (Android s FF) nepozoruji, tak bohuzel uz jsem na to take narazil. Dost neprijemne, nascroluji si na zacatek clanku, cvak a muzu hledat zacatek znovu.

431
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 08:56:54 »
Par vychytavek PHP (vycuc z /r/lolphp):
...
Uprimne nechapu, jak nekdo muze obhajovat takto neprofesionalne vyvijeny jazyk. Co me zarazi, ze mel tolik casu napravit chyby, ale oni radeji pridavaji dalsi. Napr. takovy JavaScript jde opracnou cestou - postupne se jazyk zlepsuje.

Z mého pohledu to jsou zvěrstva, které v běžné aplikaci nemají co pohledávat. Když někdo použije takový hnus, tak se nemůže divit, že se to chová podivně. Podivně se v PHP chová například typ boolean. Už léta ho nepoužívám, protože mi připadá v dnešní době zbytečný. Kdo ho používá, tak se občas diví.

PHP má za sebou živelný vývoj - je to jeho významné mínus. Bývá však k dispozici prakticky na každém webovém serveru a při dodržování jakési kultury programování se na uvedené problémy ani nenarazí. Zbytek odchytí testy. V PHP se mi programuje mnohem pohodlněji, než například v Javě.

To co popisujes ale znaci spatnou kvalitu jazyka :).
Namatkou par dalsich perel:
- ve standardni knihovne obsahuje funkce, ktere maji zamerne neopravene bezpecnosti chyby (zpetna kompatibilita FTW)
- jeden typ je podle autora PHP optimalizovany na pouziti jako pole, vektor, hashmapa, slovnik, kolekce, zasobnik i fronta :D
- automaticke pretypovani je proste genialni
- std knihovna je hrozna, bohuzel ne jen jmena jsou problem - napr. "sleep() returns 0 on success, FALSE on error, or when interrupted by a signal returns number of remaining seconds except on Windows where it returns 192;D

Kdyby byl Python nepouzitelny jazyk, jak tvrdis, tak ho nikdo nebude pouzivat, ale on je naopak siroce pouzivany.

Staci se podivat na PHP. Jazyk, ktery mel byt utracen davno (hrozna "specifikace", jazyk i interpret), je to jako splacane od zacinajiciho studentika VS, presto tu dal uspesne preziva. Kvalita nema bohuzel s popularitou nic spolecneho.

Python na me povetsinou pusobi naopak kvalitne (no, veci okolo objektu me moc nesedi, napr. ty __háky__, ale asi spis vec zvyku), akorat je na muj vkus prilis ukecany.

Ja ho naopak preferuji a uprednostnuji kde muzu a nemusim naopak Javu, ktera me osobne prijde celkove tezkopadna a neohrabana.

Python me prijde stejne neohrabany jako Java. Moc to nesleduju, ale Java 8 myslim prinasela dost FP veci, coz vede k mnohem jednodussimu kodu. Osobne me prijde Scala jako dobry kompromis mezi uplatnitelnosti (JVM) a "krasou" jazyka (velmi jednoduse zapsane slozite veci, podpora DSL, FP atd).

V Pythonu me vadi velke mnozstvi boilerplatu (napr. @property, @staticmethod, lambda, nenasel jsem zpusob, jak lehce retezit volani funkci, takze pokusy o FP styl pusobi hrozne) a kod celkove pusobi roztahane.

Samozrejme na Haskell, co se tyce "krasy" a strucnosti, as nic moc nema*. A to jsem v nem "noob", pamatuji si ho pouze ze skoly. Ale uz i jen ty zaklady byly nezapomenutelne (pro ostatni studenty spise v tom spatnem slova smyslu :D).
*: Resp. nic lepsiho jsem jeste nevidel. Pokud neco znate, tak sem s tim.

A naopak, moznost program casto a co nejdriv spoustet je jedna z vyhod interpretovanych jazyku.

Vzhledem k tomu, ze existuji inkrementalni prekladace (tusim ze jej ma Java i Scala a urcite mnoho dalsich), tak tohle je standard, ne vyhoda. Stejne tak i kompilovana Scala ma REPL, take to neni vyhrada Pythonu nebo interpretovanych jazyku.

432
Vývoj / Re:Má Python budoucnost?
« kdy: 11. 05. 2016, 20:05:21 »
kod je kratky - vysoka produktivita prace

Na skole jsme meli nejaky projekt v Pythonu a zazil jsem pravy opak. Byl jsem zvykly na Scalu a Python byl hrozne ukecany, funkcionalne se v nem skoro nedalo ani psat. Uznavam, ze s nim mam malo zkusenosti (a po tomto zazitku se k nemu urcite nevratim), ale nasel jsem pomerne dost kritiky i od zkusenejsich, napr. http://stackoverflow.com/questions/1017621/why-isnt-python-very-good-for-functional-programming. Uz jen ten zapis lambdy byl na odstrel.

dobra podpora napric platformama
tuna zajimavych uzitecnych knihoven
No, to ale v Jave, PHP i NodeJS mate taky. A rekl bych, ze Jave se knihovnami nemuze rovnat snad nic.

jak muze nekdo pochybovat o jeho budoucnosti?

Na poli skriptovacich jazyku jeho misto chapu. Jinde, napr. u tech opravdovych webu, moc ne. Ale tam ostatne nechapu ani ten NodeJS nebo PHP - udrzovat to musi byt opravdu zazitek.

*: Jsem na jeho bugy narazil i v projektiku o nejakych 100 radcich jednoducheho kodu - napr. zavolat metodu na nove vytvorene instanci nelze s libovolnym poctem zavorek, instance se prece musi se ulozit do promenne a az pak volat metoda, to da rozum. Takove esotericke chovani prece PHP nebude podporovat ;D.

Proto se píší testy, aby takové špeky vývojář odhalil co nejdříve. Také jsem už několikrát narazil na nezvyklé priority v ternárním operátoru, ale testy to včas odhalily a závorky spravily.

Tak ono lze programovat i v nejakem tom Brainfucku, ale proc si volit spatny jazyk a pak to vyvazovat testy/casem/nervy, kdyz jsou lepsi alternativy? Prislo me absurdni, ze jsem narazil na bug parseru, kdyz jsem poprve lepil dohromady par trid a ten projektik byl tak smesne maly.

Par vychytavek PHP (vycuc z /r/lolphp):

Uprimne nechapu, jak nekdo muze obhajovat takto neprofesionalne vyvijeny jazyk. Co me zarazi, ze mel tolik casu napravit chyby, ale oni radeji pridavaji dalsi. Napr. takovy JavaScript jde opracnou cestou - postupne se jazyk zlepsuje.

433
O serveru Root.cz / Re:Blokovač reklám
« kdy: 11. 05. 2016, 07:29:45 »
... Proč takové krkolomné řešení, když existuje mnohem jednodušší - za práci dostanou zaplaceno z reklamy. Funkční a vyzkoušené.

Tak proc draze tvori zebraci listu, pokud je to funkcni? Spis bych rekl, ze je to bida a oni se snazi za kazdou cenu to zmenit - napr. redesign, ktery nikdo nechtel, nebo ta lista.

Po pravde nechapu, proc dali pryc ten Flattr, vzdyt misto v asocialni liste je - celkova velikost stranky se nemusi zvetsit. A i kdyby to pouzivalo jen par lidi mesicne, tak umisteni jedne ikony k autorovi nemuze byt prece takovy hrozny problem (jedna polozka navic do tabulky s autorem a jedna podminka do sablony). Nebo se snad za to umisteni neco plati? Ja jsem zil v domneni, ze si Flattr strhava az pri prispeni, ne za umisteni ikonky. Jako chapu, ze asi chteji vybirat jako celek, aby si to managori hezky vyhodili oknem prerozdelili, ale to je presne to, cemu jsem se chtel vyhnout.

434
Vývoj / Re:Má Python budoucnost?
« kdy: 11. 05. 2016, 07:10:45 »
No, ale kischtoknizka nepouziva PHP, maji ten svuj vlastni jazyk Hack. Co se tak z rychliku divam, tak to pridava spoustu veci ze staticky typovanych jazyku - typove anotace, generiky, nullable typy.

PHP nemam vubec rad. Je to cele placane za behu clovekem bez CS znalosti - neschopny parser*, otresne pojmenovani a obcas i funkcnost standardni knihovny, obcasne nestandarni chovani operatoru, ktere v zajmu zachovani zpetne rozbitosti zustalo v jazyce, ikdyz sam autor uznal chybu.



Pokud neverite tak: http://www.phpsadness.com/ https://www.reddit.com/r/lolphp https://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

*: Jsem na jeho bugy narazil i v projektiku o nejakych 100 radcich jednoducheho kodu - napr. zavolat metodu na nove vytvorene instanci nelze s libovolnym poctem zavorek, instance se prece musi se ulozit do promenne a az pak volat metoda, to da rozum. Takove esotericke chovani prece PHP nebude podporovat ;D.

435
Vývoj / Re:Má Python budoucnost?
« kdy: 10. 05. 2016, 20:38:06 »
Co se divam na nejake benchmarky, tak ani s PyPy se to neblizi Jave. Porad to byva 2x a vic pomalejsi.

Co ziskat Javou? No, ne ze bych ji ja zvolil, radeji bych si vzal Scalu, kdybych mel na vyber. Ale v kazdem pripade staticke typy (=lepe udrzovatelne, odpada nutnost psani casti testu oproti dynamickym jazykum) a snad nejstabilnejsi platformu (coz se pro opravdove weby hodi) s velmi vyspelymi knihovnami, dotazenym systemem zavislosti a nasazovani. Dale urcite nepreberne mnozstvi studijnich materialu, vysoke prumerne platy, obrovske mnozstvi pracovnich mist. No, urcite jsem na neco zapomnel, ale jako zacatek to myslim staci.

Nyni bych sel spise do frontendu ala SPA (Angular nebo React) a backend by se staral "jen" o pristup k DB a pocty.

V pripade maleho webu, bych si rad casem zkusil ScalaJS - mit staticky typovany jazyk v prohlizeci me dost laka. Navic moznost sdileni kodu mezi fronendem a backendem (modely) zni take vyborne, ale opravdu nevim, jestli je to uz pripravene na ostre nasazeni.

...
Jinak samozrejme, Java je nepouzitelna pro mnoho jednorazovych spusteni, napr. skript na zpracovani SNMP trapu v Net-SNMP. Tam jedine perl nebo C, rezie startu JVM je prilis velka.

Myslim ze existavalo nejake reseni, nailgun nebo nejak tak. Pustene JVM bylo porad a pri spusteni "skriptu" se JVM jen pridelilo a po dokonceni zustalo bezet, takze nemuselo vzdy startovat znovu.

Stran: 1 ... 27 28 [29] 30 31 ... 60