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

Stran: 1 ... 70 71 [72] 73 74 ... 101
1066
Vývoj / Re:Python - dobré rady a praktiky
« kdy: 27. 03. 2016, 09:41:22 »
Úplně stejně, jako v ostatních jazycích, když metoda požaduje jako vstupní parametr třeba číslo měsíce (1..12) a někdo do ní chce narvat třeba 42. Má na to třeba Java datový typ? Nemá. Použiješ int a ošetříš si to vlastním kódem.

V Pythonu se to dá ošetřit pomocí dekorátoru.
Přesně tak. A ani nemusíme jít tak daleko, stačí nám obyčejný null ;) Jestli se někdo ptá, jak to hergot pythonisti dělají, aby jim to nepadalo na to, že někam místo stringu dají int, tak odpověď je "dělají to v principu podobně jako javisti zabezpečují, aby jim to nepadalo na NullPointerException" :)
Taky to považují za největší omyl? :)
?? Proč má Objective C 4 typy null ??
Pro instance, třídy, z C a jako objekt do kolekcí.

1067
Vývoj / Re:python - dobre rady & praktiky
« kdy: 24. 03. 2016, 15:32:29 »
Můžeš mi vysvětlit, jak se dělají úravy u dynamicky typovaných jazyků?
No jo, tak už jsme doma. Stačilo jen napsat nechápu/nesedla mi filosofie dynamicky typovaných jazyků a její odlišnost od přístupu, na nějž jsem zvyklý.
Jsem taky jeden z těch, co tu filosofii dynamicky typovaných jazyků moc nechápou. Jakým způsobem se dá fungovat s tím, že vlastně nevím vůbec nic o tom, co mi volající předá. Mám pocit, že bych měl psát unit testy i na to, jestli se moje funkce rozumně popasují s tím že místo intu dostanu string.
Jak se v Pythonu řeší, když vím že potřebuju nějaký int a nic jiného na daném místě nechci?
K Pythonu se moc vyjadřovat nemůžu, ale v takovém Objective-C se typy používají při kompilaci, i když jazyk (runtime) je plně dynamický, čímž má člověk vlastně to nejlepší z obou světů (tím ale netvrdím, že dynamické jazyky jsou lepší, jen že zmíněný problém je řešitelný).

1068
Vývoj / Re:Rust vs. C++ (funkcionální vs. OOP)
« kdy: 22. 03. 2016, 12:42:41 »
Důvod je jediný, paralelizace výpočtu, OOP je "prostorová" modularizace, FP je "časová" modularizace. U FP blackboxujete výpočet v čase. Nevíte kdy se tak stane, víte, že to nic dalšího neovlivní, takže do ukončení výpočtu je to, jako by výpočet uvnitř funkce neprobíhal. Z hlediska výsledku se provádí výpočet jakoby najednou, až jsou všechny dílčí výsledky k dispozici. Funkci můžete použít, aniž byste myslel na její implementaci, použijete rovnou výsledek.
To jsou tak obecné řeči, že se na to snad ani nedá rozumně reagovat.

Nicméně: základní rozdíl mezi OOP (v dnešním pojetí) a FP je v tom, že v FP si nemůžu zapamatovat referenci na něco s měnitelným stavem. Pokud v OOP předám objektu O1 nějakou referenci na objekt O2, tak si nikdy nemůžu být jistý, že si ji O1 nezapamatoval a že nebude stav O2 měnit kdykoli v budoucnu, typicky v situaci, kdy to vůbec nečekám. V (čistém) FP tohle není možné. Tím se OOP (a do nějaké míry i kód založený na aktorech) stává nepřehlednou sítí odkazů, o které nejsem schopný nic moc říct. Oproti tomu o (čistém) FP programu jsem schopný říct hodně.

Oproti aktorovému programování má (dnešní, reálné) OOP ještě tu nevýhodu, že prasácky do kódu může vlézt kdykoliv jakékoliv vlákno. Proto je OOP ještě větší maglajz.

Takže bych to z hlediska nějaké přehlednosti uspořádal asi takhle: čisté FP > aktory > OOP
Varující je, že čisté FP se prakticky nepoužívá, znamená to, že se prosadí něco co se bude nazývat FP, ale FP to nebude, imutable objekty v FP padnou jako koncept do pěti let, po jejím masovém rozšíření.


Nejspíš ze stejného důvodu, proč se prakticky nepoužívá čisté logické programování. Nehodí se na vše, procedurálně se často píše lépe.

1069
Studium a uplatnění / Re:Logika a informatika
« kdy: 21. 03. 2016, 17:08:32 »
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus). Důsledkem toho jsou programovací jazyky jako například Coq, kde můžete psát certifikované programy - příkladem takového programu je CompCert.
Existuje nějaký podobný příklad praktického uplatnění i pro teorii množin?

Bavíme-li se o nauce o nekonečných množinách (triviální operace nad konečnými množinami, což je látka základní školy, se pochopitelně hodí například při práci s databázemi), tak mě, upřímně řečeno, žádný přímý příklad použití nenapadá. Nicméně některé výsledky nám umožňují lépe chápat některé jevy v logice, jež už své (dost podstatné) místo v IT má. Například díky Cantorově větě víme, že v logice druhého řádu může jít kvantifikátor přes nespočetnou množinu, čímž umožňuje existenci bezesporných teorií, jež nemají model (v té nejjednodušší množinově-teoretické sémantice). Na druhou stranu ale víme, že to vlastně vůbec nevadí, protože nějaké tvrzení je dokazatelné v logice druhého řádu, právě když je dokazatelné v příslušné "zprvořádněné" (firstorderized) teorii, takže různých logik vyššího řádu a teorie typů (používaných zejména pro reprezentaci znalostí a automatické vyvozování v umělé inteligenci) se bát nemusíme (ostatně se s úspěchem používají). Navíc s použitím prostředků teorie množin je možné uspořádat různé (algebraizovatelné) logiky do určité hierarchie, a tak vidět, je-li možné nějakou syntakticky (na první pohled) bohatší logiku převést na výrokovou či predikátovou logiku bez ztráty expresivity.

1070
Studium a uplatnění / Re:Logika a informatika
« kdy: 21. 03. 2016, 14:54:22 »
Máme teď ve škole (VŠ) logiku a nějak zatím nevidím souvislost s IT. Mohl by mi tu někdo dát nějaký příklad, proč by mě měla jako programátora zajímat?

Programy lze chápat jako důkazy v určité logice (říká se tomu Curry-Howardův izomorfismus). Důsledkem toho jsou programovací jazyky jako například Coq, kde můžete psát certifikované programy - příkladem takového programu je CompCert.
Existuje nějaký podobný příklad praktického uplatnění i pro teorii množin?
https://www.google.cz/search?q=sql+inner+diagram&client=ubuntu&hs=h61&channel=fs&biw=1847&bih=948&tbm=isch&imgil=mogSTbjuV7hmkM%253A%253BdiCPZV2HP4qaSM%253Bhttp%25253A%25252F%25252Fstackoverflow.com%25252Fquestions%25252F22222225%25252Fsql-outer-join-2-tables&source=iu&pf=m&fir=mogSTbjuV7hmkM%253A%252CdiCPZV2HP4qaSM%252C_&usg=__9_Ux2xH0b4i1f272vRLuSfmXvJQ%3D&ved=0ahUKEwiomJyF8dHLAhUnlHIKHSJoAwUQyjcILg&ei=3vbvVqixCKeoygOi0I0o#imgrc=mogSTbjuV7hmkM%3A
Předpokládám, že byla myšlena teorie množin na úrovni VŠ (vzhledem k profilu tazatele), ne tři primitivní operace v SQL. Relační algebra pak není záležitostí teorie množin.

1071
Studium a uplatnění / Re:Logika a informatika
« kdy: 20. 03. 2016, 12:49:17 »
Jde hlavně o logické programování, tedy Prolog apod., případně nějaké dokazovače. Je dobré vědět, proč je predikátová logika (FOL) úplná, co plyne z její nerozhodnutelnosti, jaké její fragmenty rozhodnutelné jsou, proč jsou modální, temporální a nemonotonní logika fragmenty FOL, jak se převádí logika vyššího řádu na FOL atd. Nejlépe se to člověk naučí na reálných příkladech, typicky z oblasti umělé inteligence.

1072
Vývoj / Re:Java Lamdas slow as fak
« kdy: 19. 03. 2016, 14:43:42 »
Jak uz zde nekteri mi priznivci vedi, mam rad eventy a Javu, a tak jsem si zkousel zmerit rychlost standardnich konstrukci s temi lamdovskymi a ve vsech pripadech mi vyslo, ze lambdy jsou pomalejsi, v nekterych pripadech az nekolikanasobne. A ja blahovy jsem si myslel, ze lambdy v pozadi konecne funguji jako primy vstup do metody/funkce, a ono zrejme ne. Dela se z nich az moc velke terno ale je to fakt slabota. Zejo?

Změň jazyk ;)

Tak určitě, ať zahodí ten nejlepší a jde do nějakého horšího. Takhle se to nedělá. Nejdříve se naučím jeden dobře a až pak se dívám jinam. Hlavně měl štěstí, protože si vybral zrovna to nejlepší. Jen tomu musí věnovat pár let, aby se dostal na trochu lepší úroveň.
Nikdo neříkal, ať zahodí nejlepší. Řeč byla o Javě ;)

1073
boha jeho, uz tady chybi jenom guru prymek.

fakt tomu nikdo nerozumi ?
Prýmka bych se neptal, jednak mu chybí elementární znalosti (a ještě se tím chlubí) a navíc se vyjadřuje jako dlaždič.

1074
Vývoj / Re:Java Lamdas slow as fak
« kdy: 19. 03. 2016, 14:30:03 »
Jak uz zde nekteri mi priznivci vedi, mam rad eventy a Javu, a tak jsem si zkousel zmerit rychlost standardnich konstrukci s temi lamdovskymi a ve vsech pripadech mi vyslo, ze lambdy jsou pomalejsi, v nekterych pripadech az nekolikanasobne. A ja blahovy jsem si myslel, ze lambdy v pozadi konecne funguji jako primy vstup do metody/funkce, a ono zrejme ne. Dela se z nich az moc velke terno ale je to fakt slabota. Zejo?

Změň jazyk ;)

1075
Studium a uplatnění / Re:Mistrovstvi v C++ - prace
« kdy: 18. 03. 2016, 10:06:14 »
Zdravím,
Přečetla jsem celou knihu Mistrovství v C++. Některé části samozřejmě vícekrát. Udělala jsem téměř všechna programovací cvicení na konci kapitol. Dále jsem zkoušela nekterá programovací cvičení z knihy: The C++ programming language od Bjarne Stroustrupa. (Celou knihu jsem nepřečetla, protože mi moc nesedí jeho angličtina.) Chtěla bych se zeptat, jestli znalosti, ktere jsem mohla z těchto knih získat stačí k tomu, abych získala praci jako junior C++ programátorka. (Vím, že bude nejlepší, když to zkusím, ale nechci tam chodit zbytečně, pokud jsou vstupní znalosti úplně někde jinde. Ptám se zde, protože požadavky v inzerátech jsou často všeobecné a nicneříkající.)
Na juniora to stačí určitě.

1076
Vývoj / Re:Rust vs. C++ (funkcionální vs. OOP)
« kdy: 17. 03. 2016, 10:02:50 »
Mluvím-li o modulu, mám na mysli abstraktní modul, tedy v podstatě jakýkoliv objekt s převažující lokální komunikací.
Tak tohle je imo jedna z horších definic toho, co to je modul. Nejmíň u poloviny modulů, co jsem kdy napsal nebo použil tu převažující lokální komunikaci fakt nevidím.
Nebere se to spíš jako blackbox bez ohledu na vnitřnosti?

1077
Vývoj / Re:Rust vs. C++ (funkcionální vs. OOP)
« kdy: 16. 03. 2016, 16:55:13 »
Jenže s miniaturizací moduly z HW zmizely a modulární představa SW visí tak trochu ve vzduchu a zapomělo se, z čeho vlastně vznikla.
Modulární architektura nevychází primárně  z HW, ale z našeho mozku. Člověk udrží v hlavě jen +-10 věcí najednou. Cokoliv navržené člověkem bude hierarchická skládačka a na každé úrovni bude jen omezený počet nějakých přiměřeně uzavřených kousků.
Ano, toto je experimentálně ověřeno kognitivní vědou, ale neznamená to, že "nemodulární" systémy neexistují, jen je pak vnímáme (opět kognitivně) jako "bordel".
Jinak s HW to opravdu nemá vůbec nic společného.

1078
Vývoj / Re:Rust vs. C++ (funkcionální vs. OOP)
« kdy: 15. 03. 2016, 18:16:30 »
Navíc se z dědičnosti stal strašný fetiš. Dědičnost se přefoukla a na posílání zpráv se zapomnělo. Když už, bylo by lepší, kdyby to bylo naopak. Dneska když se řekne OOP, každý pořád mele o dědičnosti. Úplně zbytečně.
Ono se IMO přefouklo i to OOP. Už ten pojem samotný je strašně neurčitý.

K původní myšlence OOP mi ani ten název "objekt" nesedí. U většiny objektů z reálného světa mě ani nenapadne, abych po nich něco chtěl (a posílal jim nějakou zprávu, aby to udělaly). Daleko přesněji by to vystihoval třeba actor, nebo služba. Možná ta roztříštěnost dnešního OOP plyne trochu i z toho, že je těžké ten pojem nějak uchopit bez předchozího vysvětlení. Objekt je nějaká věc, o které toho nic moc dalšího nevíme.

Ale to je jenom takové bezvýznamné skuhrání a hra se slovy :)
Celkem výstižně řečeno, objekt je prostě "něco, co má nějaké vlastnosti a něco dělá", podobně jako množina v temnu je "nějaká kolekce něčeho mající rozumné (=ne moc hnusné) vlastnosti". V diskusi by se vždy mělo upřesnit, jaké paradigma se vlastně zmiňuje, pak z toho plyne jen nedorozumění.

1079
Vývoj / Re:Rust vs. C++ (funkcionální vs. OOP)
« kdy: 15. 03. 2016, 18:13:14 »
Matika je typicky o učení nazpaměť.

Pokud jsi schopen napsat takovouto kravinu, tak je zřejmé, že jsi hluboce nepochopil, o čem je matematika.

Vtipné na tom je, že já to právě pochopil. Ale ostatní jako zboj a třeba ty my dokazujete, že matematiku jen umíte, ale nechápete. Na VŠ se učí normálně tupým stylem, abyste prošli a stačilo vám ji jen umět. Takže fakt to neházej na mě. Proč si myslíš, že si tu musíte honit triko se znalostmi? Proč tu někdo neukázal nějaké chápání souvislostí? Proč asi :)
Nejdřív se nauč pravopis a pak piš o matematice a VŠ ;)

1080
Vývoj / Re:Rust vs. C++ (funkcionální vs. OOP)
« kdy: 15. 03. 2016, 14:10:24 »
Matika je typicky o učení nazpaměť.
WTF?
No jo, když ona má spousta lidí pouze školskou zkušenost s matikou, kde je to opravdu často o memorování goniometrickejch identit a k abstrakci to má asi tak stejně blízko jako dějepis. Pak jsou schopni tvrdit podobný nesmysly, ale v zásadě to není chyba jejich, ale vzdělávacího systému.
No jo, ale tady se snad nebavíme o matice na úrovni základní školy...

Stran: 1 ... 70 71 [72] 73 74 ... 101