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 ... 26 27 [28] 29 30 ... 60
406
O serveru Root.cz / Re:Blokovač reklám
« kdy: 17. 05. 2016, 07:27:59 »
Funguje podpora jen určitému autorovi?

Uz jsem se ptal (odpoved jsem nezaznamenal), jestli by neuvazovali o znovu-pridani Flattru. Nikde jsem nenasel, ze by si za pridani ikonky neco uctoval, takze i kdyby to pouzivala jen hrstka lidi, porad by se to mohlo vyplatit (autorum clanku). Nechci totiz financne podporovat pociny jako redesign a tim spatne a/nebo pretizene kodery, managory a ostatni "profesionaly" stojici za tim. Ale konkretni autory za konkretni clanky bych asi i podporil (jedno kliknuti na ikonku za clankem je dostatecne jednoduche, aby to ctenar mohl provest za kazdym dobrym clankem).

407
Vývoj / Re:Má Haskell budoucnost?
« kdy: 16. 05. 2016, 15:18:34 »
Mozna to chapu spatne (neznam moc ani C++ ani Haskell), ale dela ta C++ verze opravdu to stejne? Bych cekal, ze ta C++ verze na guardu spadne, pocka, ale znovu to nezkusi, zatimco ta Haskelli na guardu pocka a kdyz se cekani zadari, tak to provede.

EDIT: ah, v me predbeh :D

408
Vývoj / Re:Má Haskell budoucnost?
« kdy: 16. 05. 2016, 13:53:31 »
Buď to bylo v Haskellu čitelné, ale oproti C(++) řádově pomalejší, nebo to bylo pomalejší jen asi 2x, ale naprosto nečitelné.
To není nic divnýho, u algoritmicky jednoduchých problémů, kde máš vytuněné řešení v C, bude každý vysokoúrovňový jazyk vždycky pomalejší. Protože prostě C má blíž k hardware, takže na těhle problémech moc není jak ho porazit.

Problémy ze skutečného světa ale nebývají algoritmicky jednoduché a na reálný výkon mají vliv jiné věci než hrubá rychlost výpočtu.

I v těchto umělých příkladech má ale Haskell výkonově blízko k Javě, což mi přijde dost dobrej výsledek na to, jak daleko je ten jazyk od hardware (sémanticky) - viz http://benchmarksgame.alioth.debian.org/u64q/haskell.html

Srovnavat takto vysokourovnovy jazyk s C(++) neni opravdu fer. S Javou/C#/PHP/Pythonem nebo Ruby by to bylo ferovejsi. Fakt jsem netusil, ze Haskell je na tom tak dobre s rychlosti - neminim to ironicky, navic kdyz si vezmem, ze JVM ma za sebou urcite ladeni vykonu zaplacene obrovskymi korporacemi.

...C++ nebo Java nabízí minimálně stejně dobrou míru abstrakce jako Haskell...

o_O

409
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 19:03:17 »
Je opravdu k placi videt tu argumentovat C#pistu, jak ze pojmenovani "map, fold/reduce, filter" je nevhodne, ze C# to ma jako "select, aggregate, where" a jak je to mnohem nazornejsi a lip to vystihuje danou funkci...
Ty a to mně třeba vůbec nepobuřuje. Mám radost z toho, že principy FP probublávají do jiných jazyků a těší mě, když se lidi naučí s tím pracovat, protože ty jiné jazyky jim nevytvářejí tolik bariér jako třeba právě ten Haskell. A vůbec mi nevadí ani když "obyčejný" programátor tu věc používá a o jejich FP kořenech vůbec neví. No a? Hlavně že si osvojil hezký FP přístup a píše pěkný kód, no ne? Co můžeš mít proti? ;)

Jako ja jsem samozrejme taky rad, ze FP se pouziva i v tak popularnim jazyce, jako je C#. Ale mrzi me, ze pak pul vlakna o FP se resi, ze tohle C# mel davno a C#pisti se tam placaji po zadech, jak ostatni jazyky a pristupy jsou zaostale. Az po nekolika stranach, kdyz lidi postli dostatek dukazu (;D :'(), ze M$ opravdu to FP nevymyslel, tak jim doslo, ze asi nemaji pravdu a radeji prestali psat. Pritom stacilo mit na skole jeden predmet, kde si prakticky zkusili, jak ten map/filter/fold funguji, splacali projekt a uznali, ze je to zajimava alternativa k cyklu a zaradili si to v hlavne k potencionalnimu hlubsimu prozkoumani v budoucnu, az bude cas nebo mezi kandidaty na volitelne predmety.

410
Vývoj / Re:Má Haskell budoucnost?
« kdy: 14. 05. 2016, 18:36:34 »
K tem burritos - Crockford (alespon v tom videu, co jsem videl) monady primo neprirovnava k burritos. Tam slo o to ze
Citace
Aby clovek pochopil monady, musi se nejdrive naucit Haskell a teorii kategorii.
je v podstate to stejne jako
Citace
Aby clovek pochopil burritos, musi se nejdrive naucit spanelsky.
Rozhodne z toho nevyplyva, ze monady = burritos, "Haskell + teorie kategorii" = spanelstina nebo ze kdyz pochopim burritos, tak pochopim monady :D.

Prostě, mám pocit, že tohle téma může dobře vysvětlit jenom člověk, kterej nemá potřebu dělat chytrýho, ale naopak se rád sníží k "dětinským" příkladům, aby studenty látku efektivně naučil. A takových učitelů je bohužel na našich VŠ asi dost málo...

Tesat do kamene. Na VUT FIT v Brne jsme meli hodne ucitelu, kteri vucovani moc nezvladali (casto matematiky a ty silne teoreticke predmety; ale nebudu jmenovat, protoze tam byla alespon ta snaha). Bylo to neprijmne, protoze nejen, ze latka byla velmi narocna, navic nebyla vysvetlena moc dobre. No, a pak tam bylo nekolik presne takovych prednasejicich, o kterych pises (a shodou [?] okolnosti zrovna i ten FP predmet) - namachrovani, nikdy si neodpusti studenta shodit, otevrene davaji najevo (nekteri to i na rovinu rekli), jak vsichni studenti jsou flakaci a oni prednasi, jen aby meli penize na svuj vyzkum, at je tedy moc neotravujeme (mezi takove patrili pan Hruska a pan Kolar).

Je to škoda. Zrovna tohle by si zasloužil znát každý mírně nadprůměrný programátor...

Bych sel klidne i dal, kazdy prumerny by to mohl znat. Jako takove ty nejjednodussi veci typu operace nad kolekcemi si myslim nikomu neublizi a mohou hodne pomoci. I pokud jde o prumerneho programatora (coz neberu jako nic spatneho, sam se asi radim do teto kategorie, protoze z te teorie znam opravdu malo), ktery bude vyvojarit v Java/C#/JavaScriptu/PHP, tak snad vsude jsou dostupne budto primo v jazyku nebo pomoci externich knihoven nastroje umoznujici nejaky zakladni FP pristup (Java s verzi 8, C# ma ty divne metody ala SQL, JS treba Lodash, pro PHP jsem vygooglil functional-php).

Je opravdu k placi videt tu argumentovat C#pistu, jak ze pojmenovani "map, fold/reduce, filter" je nevhodne, ze C# to ma jako "select, aggregate, where" a jak je to mnohem nazornejsi a lip to vystihuje danou funkci...

FP určitě do mainstreamu pronikat bude (už se to masově děje), ale řekl bych, že spíš v takové té pragmatičtější formě - jako volitelná součást, použitelná, pokud programátor chce, ale nesvazující ho tam, kde nechce.

Hodne me prekvapilo, kdyz jsem se dozvedel o Redux, ktere je v podstate FRP (ted se divam na ten clanek a ono to cerpa i z Elmu, nepsal jsi v tom?). Ve vodach Reactu je to myslim hodne popularni a uz i s Angularem to lidi pouzivaji.

Prave treba ta Scala, si myslim, je to pragrmaticke vyusteni - hybrid mezi OOP a FP. Pro lidi prechazejici z Javy lze psat skoro stejnym stylem ve Scale, jak byli zvykli v Jave (jsou tu vyjimky, treba pouze jeden hlavni konstruktor a ostatni musi pouzivat ten hlavni - to pro me byl ze zacatku maly sok). Ale postupne muzou zacit experimentovat s FP stylem s kolekcemi, ktere maji opravdu spoustu uzitecnych funkci, a jit jen tak daleko s FP, jak oni (nebo jejich tym) budou chtit.

411
O serveru Root.cz / Re:Nový Root již dnes?
« kdy: 14. 05. 2016, 07:45:19 »
Pro zajímavost z velkého světa:
http://arstechnica.com/staff/2016/05/an-update-on-the-state-of-the-ars-redesign/

Citace
you prefer to not have to make your browser window so wide to accommodate the site

To ale mluvi o sirokem fixed-width layoutu, to neni to stejne jako full-width layout. Navic neni problem (nebo by nebyl, kdyby se Bootstrap pouzival, jak byl zamyslen) pridat do menu nebo nekam nahoru prepinac, kde si ctenar zvoli, zda chce full-width nebo fixed-width, pripadne i konkretni sirku.

412
Vývoj / Re:Má Python budoucnost?
« kdy: 14. 05. 2016, 07:40:36 »
Jsem jeste pozapomnel na VHDL v par (2?) predmetech, coz teda funckionalni stale moc neni (v jednom jsme to delali na urovni hradel, v dalsim tim vyssim pristupem).

Co se tak divam, tak ten JavaScript se spise k FP neradi, prestoze ma nektere FP rysy. Dobre to shrnul treba tady na SO.

- Haskell+Prolog (vcetne teorie k obema paradigmatum)
To jste teda museli vzit poradne z rychliku. Za 6h x 100min. se nedá probrat ani jeden z těch jazyků, natož teorie k němu.

Jn, presne jak pises. Prednasky k Haskellu byly hlavne lambda kalkul a pocitani s nim (napr. reprezentace cisel, operace nad nimi atp.; coz ale primo v Haskellu jaksi nepouzijes). Pritom si treba ani moc nepamatuju, ze by prednasejici vubec resil nejake monady. Na cvikach se to do nas snazili nejak nalit, kdyz zjistili, ze to nikdo nechape, ale bylo malo casu a musely se resit predepsane prakticke priklady. Ty prekvapive s vyucovanou teorii nemeli nic moc spolecneho (asi jsme to v tom jen nevideli, nevim, protoze snad ta teorie nebyla nanic?). Treba ty monady a do notaci jsem pochopil az mnohem pozdeji samostudiem pri praci na projektu. Jak jsem byl nastvany na prednasejiciho, ze takovou "nepodstatnou" vec mi zamlcel.

Jako chapu, ze ciste FP neni moc popularni. Ale vzhledem k tomu, jak se mu uspesne dari infiltrovat popularni jazyky, tak si myslim, ze minimalne jeden predmet v bakalari by si to zaslouzilo.

Rozhodne nerazim nazor "Vsude ciste FP!". Treba prave ta Scala neni ani omylem cista (Haskellisti se na ni myslim celkem casto divaji shora) a FP se na nektere veci hodi mnohem vice, na jine naopak vice vynika imperativni pristup a OOP.

413
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 05. 2016, 21:13:22 »
Ještě bych možná dodal, že funkce typu "Int -> Int -> Int -> Int" jsou v Haskellu tak trošku antipattern - tak nějak nikdo nemá moc rád více než 1 parametr stejného typu. Ne vždycky se tomu člověk vyhne, ale existují různé snadno použitelné "tagované" typy, které v tom trochu dělají pořádek - takže ve výsledku pak vypadá taková funkce např.:
Kód: [Vybrat]
Email -> [Email] -> Subject -> [Part] -> Message 
Takhle to obvykle není v knihovnách, ale ve vlastním kódu tohle strašně pomáhá.

Sémantické označení obyčejného typu String pomáhá nejen v Haskellu. Pak to teprve vypadá jako dokumentace, která nepotřebuje další komentáře.

Jop, napr. typovana ID pouzivam ve Scale u immutable trid k referencim: AccountRef(id: Int).

414
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 05. 2016, 21:08:04 »
Pattern matching treba ve Scale je hodne silny, defaultne umi i regexpy, ale lze si dodefinovat libovolny extractor. Celkem skoda, ze se podobne veci v popularnich jazycich prilis nevidi.
Ono je obecně škoda, že se v populárních jazycích moc nevidí koncepty z FP. Možná si tvůrci jazyků myslí, že na běžného vývojáře je FP moc složité/abstraktní/matoucí... Přitom takové OOP většina také dost patlá...

Je stejne zajimave, jak dlouho trvalo OOP, nez se prosadilo. Pokud si to pamatuju spravne, tak byl potreba prechod na graficka uzivatelska rozhrani, kde OOP zazarilo, a az pak se opravdu masove zacalo pouzivat. Mozna stojime na podobnem prahu - jak roste pocet jader, ale ne vykon jadra, tak FP pristup zacina byt dost zajimavy.

PS: Je opravdu dost mozne, ze je to pouze zpusobeno pristupem skol, kdy se imperativni pristup uci prvni. A teda prijde me, ze i podstatne lepe, nez treba ten funkcionalni. V imperativnim jsme rovnou zacali patlat v C, u funkcionalniho jsme nejdriv museli prezit a nepochopit (nasprtat se) teorii a az pak, pri reseni projektu, zacit chapat, o cem ze ta teorie asi ze byla.

Já jsem se s haskellem setkal ve škole asi před 10-ti lety a nevzpomínám si, že by ho někdo ze spolužáků začal ihned používat v praxi. Víc než na škole záleží na vyspělosti ekosystému okolo. Ten je dneska úplně jinde. Naopak, dynamické jazyky jako ruby, php a js se nikdy nikde neučily a rozšířily se docela rychle.

No, ja se taky "setkal", ale ve srovnani s imperativnim pristupem, ktery se do nas tlacil vlastne neustale, setkani v ramci poloviny jednoho predmetu bylo opravdu slabe.

stredni (gympl):
- Pascal (nekteri spoluzaci z prumek znali trochu C, dost lidi neznalo nic)

bc:
- C (nekolik predmetu)
- ASM
- C++/Java (na vyber jedno)
- Python (myslim take nekolikrat na psani ukolu)
- cisty stary JavaScript
- Pascal+pseudo kod

mgr:
- C/C++ (nekolik predmetu, na projekty)
- Java/nejaky neznamy jazyk na IS
- 1x jazyk podle vlastniho vyberu (pouzil jsem Scalu)
- Ada+nejaky dalsi paralelni
- Haskell+Prolog (vcetne teorie k obema paradigmatum)
- 2x C#
- Python (zase ukoly, tusim sifrovani)

Asi jsem na neco zapomnel, ale funkcionalni bych si pamatoval. Kdyz to shrneme, tak mame za cele studium 0,5 predmetu venovanemu funkcionalnimu jazyku (jeste teda JavaScript, ale tomu nebyl take venovan cely predmet a FP jako takove se tam snad ani neresilo; navic JS podle nekterych definic ani nespada do funkcionalnich jazyku). Takze ne, nedivim se, ze nikdo z mych spoluzaku nebezel a nezacal pracovat v FP jazyce.

Je mozne, ze na vasi skole jste meli destiky predmetu vyucujici a vyuzivajici FP a funckionalni jazyky. Sice jsem znacne skepticky, ale co. Pokud je tomu opravdu tak, prosim podelte se o jmeno skoly (bych si treba i precetl jake predmety jste meli a tise zavidel).

415
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 05. 2016, 14:42:26 »
Pattern matching treba ve Scale je hodne silny, defaultne umi i regexpy, ale lze si dodefinovat libovolny extractor. Celkem skoda, ze se podobne veci v popularnich jazycich prilis nevidi.
Ono je obecně škoda, že se v populárních jazycích moc nevidí koncepty z FP. Možná si tvůrci jazyků myslí, že na běžného vývojáře je FP moc složité/abstraktní/matoucí... Přitom takové OOP většina také dost patlá...

Je stejne zajimave, jak dlouho trvalo OOP, nez se prosadilo. Pokud si to pamatuju spravne, tak byl potreba prechod na graficka uzivatelska rozhrani, kde OOP zazarilo, a az pak se opravdu masove zacalo pouzivat. Mozna stojime na podobnem prahu - jak roste pocet jader, ale ne vykon jadra, tak FP pristup zacina byt dost zajimavy.

PS: Je opravdu dost mozne, ze je to pouze zpusobeno pristupem skol, kdy se imperativni pristup uci prvni. A teda prijde me, ze i podstatne lepe, nez treba ten funkcionalni. V imperativnim jsme rovnou zacali patlat v C, u funkcionalniho jsme nejdriv museli prezit a nepochopit (nasprtat se) teorii a az pak, pri reseni projektu, zacit chapat, o cem ze ta teorie asi ze byla.

416
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 05. 2016, 14:31:35 »
Pattern matching treba ve Scale je hodne silny, defaultne umi i regexpy, ale lze si dodefinovat libovolny extractor. Celkem skoda, ze se podobne veci v popularnich jazycich prilis nevidi.

417
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 05. 2016, 10:24:16 »
Citace
Žádný z úspěšných jazyků nemá čistý a bezchybný návrh. Čím to asi bude?

Jde taky o to, jak moc dojebaný ten návrh je, jestli je to ještě aspoň "good enough". Třeba v případě toho PHP už je to tak moc za hranou, že nám "fajnovkám" se z toho prostě zvedá kufr a nebudeme v tom ochotní dělat, ani kdyby to mělo dvakrát takovou popularitu jako teď.

+1

Jine jazyky chyby napravuji, viz JavaScript nebo Python. PHP si udrzuje svoji "kvalitu", spise nekvalitu, a pridava dalsi ficury, ktere jej nedale "zkvalitnuji".

...
O tom, jestli je něco dostatečně dobré, efektivně a poměrně objektivně rozhoduje "trh" a ten v případě PHP pravil, že ano. A komu se to nelíbí, ať si ...

Ok, at je po vasem (me penize ani popularita jazyka, ve kterem pisi, nejak extra nemotivuje; mysleno obecne), podivejme se na trh. Platy PHP vyvojaru nejsou ve srovnani s ostanimi nejak vysoke: http://www.sitepoint.com/best-programming-language-learn-2015-job-demand-salaries/. Mozna, ze nadanejsi programatori ani nechteji zacinat pracovat v PHP, nebo radeji od nej odchazeji za lepsim? Podle te statistiky bych tipoval, ze PHP lidi budou zdrhat treba k tomu Pythonu, ktery ma lehce podobne rysy, je o nej celkem zajem a plati se za nej stejne jak za Javu.

vycuc te statistiky:
Citace
1    Java — featured in 18% of adverts with an average salary of $100,000 USD
2    JavaScript — 17%, $90,000
3    C# — 16%, $85,000
4    C — 9%, $90,000
5    C++ — 9%, $95,000
6    PHP — 7%, $75,000
7    Python — 5.5%, $100,000
8    R — 3%, $95,000
9    Scheme — 3%, $65,000
10    Perl — 3%, $100,000

Dost me prekvapilo, ze Python je tak vysoko. U nas jsem o nem moc neslysel ani necetl. Proto jsem se ptal, jestli nekdo nema nejaka data o CR/SK (ta uvedena statistika je nejaka mezinarodni firma).

418
Vývoj / Re:Má Python budoucnost?
« kdy: 13. 05. 2016, 08:41:46 »
Haskell je prakticky asi jak pro koho - osobne si myslim, ze je to pouze o zpusobu vzdelavani, kde se na zacatek silne preferuji imperativni jazyky (Java, Python, Pascal). Napr. na FITu jsme si funkcionalni pristup osahali az v magisterskem, ktere bylo povazovano nekterymi prednasejicimi za nadstandard a do praxe muze student v pohode i jen s bakalarem.

Osobne si nemyslim, ze kvalita jakkoliv souvisi s popularitou. Kvalitni jazyk se totiz podle me nesnazi pretrhnout kvuli zacatecnikum a znehodnotit tak sve dalsi casti nebo cely svuj pristup. A kdyz jsme u toho, tak pokud chcete objektivne merit kvalitu/pouzitelnost a vztahnete ji i k popularite, jak presne objektivne merite popularitu? :D Podle radek kodu v produkci? Celkoveho vydelku vyvojaru pouzivaci ten jazyk? Nejake nahodne zvolene kriterium jako pocet commitu GitHubu a pocet dotazu na StackOverflow?

Prakticka pouzitelnost jazyka zase nema s popularitou IMO nic spolecneho. I uplny odpad, jako PHP, ktery je obtizne pouzitelny (poskytl jsem dost prikladu, nekolik jich dodal i Kit a ten v tom dokonce i vyviji trochu vice) a stejne se stal popularnim. Stejne tak to nerika nic o pouzitelnosti a kvalite jeho knihoven a celkove ekosystemu. (Ktery ho v pripade PHP drzi nad vodou.) To stejne mohu vztahnout na NodeJS - to ze je JavaScript nejpopularnejsi jazyk na planete z neho nedela nejlepsi jazyk a ani nejpouzitelnejsi, rozhodne ne nejak univerzalne. S chladnou jistotou bych vzdy doporucil Javu, Scalu nebo klidne i ten Haskell na back-end pro jakykoliv projekt, ktery neni "fire-and-forget" - tj. ze se ocekava dlouha doba udrzby. Proste dynamicke jazyky, stejne jako treba ty "pokrocile magie", tam podle me nepatri. Dynamicke jazyky typu Ruby se skvele hodi pro stratup, to nepopiram, projektiky jsou obecne mensi, potrebuji to mit rychle udelane a pokud to uspejeje a budou problemy (u tech uspesnych casto ctu, ze jsou), tak to proste prepisou do neceho vice se hodiciho na dany ukol (vetsinou ta Java ci C#, videl jsem uz ale i treba NodeJS, k cemuz jsem byl trosku skepticky).

S tou pajpou jsem myslel Python. V JavaScriptu je vyhoda, ze je prave ten kratky zapis closure, takze staci pribrat treba ten Lodash a muzete vesele retezit. Bohuzel v Pythonu je lambda silene dlouha na zapis, jako kdyby autor nechtel, aby se to moc pouzivalo. Coz ostatne sedi k jeho postoji o FP. To jsme ale trochu odbocili, protoze ani o JS jsem nepsal, ze je nejake skvele na FP, rozhodne ne out-of-the-box (chybi mi spousta funkci pro manipulaci s poli). Puvodne jsem to srovnaval se Scalou a tam jsou i veci, ktere umoznuji opravdu jednoduchy kod (ktery me prijde hezky, ale to je opravdu silne subjektivni), treba placeholder _.
Kód: [Vybrat]
(1 to 10).filter(_ % 2 == 0).map(_ * 10)

419
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 20:55:04 »
Je hezke, ze Python nabizi take metaprogramovani. Osobne jsem si nad JVM pri modovani Mincraftu hral s reflexi a i upravou bytekodu za behu (bohuzel to ani jinak neslo, rozhodne neslo o mou prvni volbu ;D). Ale jak jsem psal vyse, pri vyvoji normalnich aplikaci to clovek nepouzije (nebo mozna spise bych mel napsat "by nemel pouzivat"). Je to velmi podobne jako makra pro prekladac ve Scale - velice pokrocile, velmi efektni, ale casto tak komplexni, ze to akorat bude delat problemy pri udrzbe. "Pokrocila magie" je vystizne, jak psal nekdo prede mnou, tak i podle me, by ji mely pouzivat pouze knihovny, ktere maji vse velmi detailne zdokumentovane.

420
Vývoj / Re:Má Python budoucnost?
« kdy: 12. 05. 2016, 19:20:43 »

__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.

Nechápete to dobre. Já bych magické metody popsal jako rozhraní, které je společné všem objektům. S reflexí to nemá mnoho společného.

Jsem vychazel z wiki:
Citace
Metaobjects are examples of the computer science concept of reflection, where a system has access (usually at run time) to its internal structure.
...
A metaobject protocol (MOP) provides the vocabulary to access and manipulate the structure and behavior of objects.

To tedy dost pusobi jako reflexe ci prace s bytekodem, pokud to mam vztahnout k Java svetu. Ale je to asi jedno, me neslo o ty metaobjekty ani metaobjektovy protokol, ale o to inovativni jmeno: __*__, ktere bych nikdy neoznacil za hezke - coz uznavam je asi subjektivni a pravdepodobne o zvyku.

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.

Používání self jako prvního parametru má mnoho výhod. Metody se díky tomu neliší od jiných funkcí. Jak píše Bystroushaak, umožňuje to například dekorátorům přistupovat k předávané instanci. Další výhoda je, že mohu metodu volat způsobem Trida.metoda(instance_jine_tridy, dalsi parametry). V jiných jazycích to jde také, ale ne tak přímočaře.

A opravdu tuto "vyhodu" vyuzivate tak casto, ze si to ospravedlnuje pridani jednoho parametru do kazde metody instance? To uz me prijde lepsi zpusob jak to ma Java nebo JavaScript - this je implicitni a pouze pokud opravdu chceme, tak muzeme podstrcit jine (v JS Function.apply/call, v Jave tusim reflexe), ale nemusime ho vsude uvadet.

PS: Jsem moc pomalej, javaman me predbeh :-\.

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