• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LUDWIG_Funkcionální programování (Haskell, LISP, XQuery, OCaml, F#, Scala, ...) - praxe, teorie a uplatnění
    SLUPKA
    SLUPKA --- ---
    LITTLELI: třeba to, že když vidíš nějaký problém, tak tě hned napadá na co by to šlo rozdělit, jaké mají ty části společné znaky apod.

    třeba mne strašně ve škole překvapilo, kolik lidí má problémy s rekurzí... a lidé co měli problém s haskellem či prologem, tak pak bylo vidět, jak mají problém napříč celým spektrem, jenom mají třeba tu svou Javu naučenou a běžné problémy jsou schopni řešit...
    LITTLELI
    LITTLELI --- ---
    co to hergot znamená "programátorsky myslet"? to je nějaký nová kategorie? :)
    SLUPKA
    SLUPKA --- ---
    BROUKOID: tak ono to dost souvisí s úrovní programátorů v praxi... pokud je člověk inteligentní a je schopen programátorsky myslet, tak nemá problém s funkcionálním programováním... takových je ale minimum...
    BROUKOID
    BROUKOID --- ---
    BROUKOID: jenom jeste doplnek k ankete:
    Anketa mi prijde asi stejne relevantni jako anketa "Mate radi pejsky?" v klubu milovniku psu :)
    BROUKOID
    BROUKOID --- ---
    LUDWIG_: no anketa je to sice hezka, ale myslim ze odpovedi od lidi z tohoto klubu nebudou predstavovat zrovna reprezentativni vzorek programatoru :)
    Muj prispevek byl mozna lehce nekonkretni: ja totiz osobne funkcionalni programovani povazuji za intuitivni (a mam tendenci psat funkcionalne i v jave, c, apod.), ALE - jsem presvedcen, ze vetsina "normalnich" programatoru to vidi jinak a funkcionalni programovani je pro ne "akademicka silenost" bez jakekoliv sance v "realnem svete".
    A je jedno jestli je to vychovou (muj nazor), nebo tim, ze "funkcionalne" naladeni programatori maji nejakou mentalni abnormalitu :)
    LUDWIG_
    LUDWIG_ --- ---
    Pro objektivnější pohled na tu otázku "intuitivnosti" jsem nahodil anketu do záhlaví.

    Ještě jedno oznámení pro začátečníky: 18. září začíná na Coursera tenhle předmět: https://www.coursera.org/course/progfun (přednáší Martin Odersky AKA otec Scaly :))
    ALMAD
    ALMAD --- ---
    No, ad Sun/Oracle a Fortress, ma nekdo insider info co se chysta dal?

    Oracle lowers the flag on Fortress language project • The Register
    http://www.theregister.co.uk/2012/07/23/oracle_fortress_project_halted/
    LUDWIG_
    LUDWIG_ --- ---
    BROUKOID: tak treba microsoft skryte propasovava funkcionalni programovani do visual studia - f#, ruzny featury a knihovny pro c#, linq... vsak simon peyton jones, jeden z otcu haskellu, pracuje v microsoft research :) map-reduce framework je zas klasicka vec od googlu... takze jako optimistovi mi to prijde jen otazka casu.

    co se intuitivnosti tyce, tak princip toho prikladu v prednasce mi prisel docela intuitivni (coz bude ale tim, ze je to trochu klasicky problem - respektive jsem neco obdobneho resil nekolikrat), jediny, co bylo trochu matouci, byla takova ta terminologie, co si kolem toho vymyslel na ty stadia deleni problemu apod. obecne mi prijde deklarativni pristup intuitivni (kdyz uz tak zacne clovek automaticky premyslet) - jediny pripady, kdy se mi to nezda tolik intuitivni, byvaji, kdyz je to naky tradicni linearni algoritmus prepsany do (pseudo-)funkcionalni podoby (treba u quicksortu) nebo pro nejaky silne neparalelni problem, pro ktery clovek musi vymyslet nakou hodne zamotanou rekurzi (nebo zahodit deklarativni pristup a napsat to imperativne, treba pomoci do-monady :)), aby dodrzel poradi
    BROUKOID
    BROUKOID --- ---
    LUDWIG_: ano, ale to by za tim musela stat firma podobne velikosti jako tehdy sun :)

    ..navic sem stale presvedceny, ze "map-reduce-able" reseni obcas neni "intuitivni" celkem brutalne, jako treba priklad s rozdelenim retezce na slova v te prednasce..
    LUDWIG_
    LUDWIG_ --- ---
    BROUKOID: tak je to pravda, ze tenhle prechod je radikalnejsi nez rucni -> automaticka sprava pameti nebo proceduralni -> objektove orientovane programovani... na druhou stranu si myslim, ze ta bariera kolem "mentalni gymnastiky" je spis diky tomu, ze pres 50 let tu vladne imperativni programovani.

    deklarativni programovani je svym zpusobem prirozenejsi a pohodlnejsi nez imperativni paradigmata - popisu co chci (z ceho se to sklada), nikoliv krok po kroku jak se k tomu dostat... a lidi leta bez problemu pouzivaji sql, linq apod., takze staci, aby lidem docvaklo, ze podobnym zpusobem se da premyslet i u problemu mimo dotazovaci jazyky.
    na to, aby to lidem "docvaklo", staci dobry marketing a pristupnost funkcionalniho jazyka ci radikalniho funkcionalniho rozsireni/predelani nakeho stavajiciho jazyka - neco jako v 90. letech pratelsky nastup javy (vs elitisticky nastup haskellu)... proste schovat tu odstrasujici matematickou hatlamatilku, prilakat spoustu lidi a inzerovat firmam, ze jim to usetri naklady a/nebo zvedne obrat :)
    BROUKOID
    BROUKOID --- ---
    LUDWIG_: ja teoreticky souhlasim ze za idealnich podminek by funkcionalni jazyky mely prevladnout, ale obavam se ze tady je mnohem hlubsi bariera pro "bezne lidi/programatory" - a to je prave matematika - coz me se sice libi, ale hodne lidi ma s matematikou "problem". Spis ocekavam, ze vznikne (vlastne uz vzniklo) mnoho komplikovanych a silne omezenych "paralelnich" knihoven pro javu/c++, ktere lidem castecne zastrou fakt, ze tudy cesta nevede.

    Jinak fortress me taky lehce zaujal, hlavne teda tim, ze NASTESTI na nem moc neni videt ze by vychazel z fortranu :)
    A ten uvod... to jsem mel mozna upozornit ze polovinu prednasky to vypada ze na paralelni zpracovani nikdy nedojde. Ale prave diky nemu ukazal velice dobre to co chtel rict - ze je potreba programatora odstinit jeste vice od hw a ze uz se to v minulosti stalo.
    Jenom si troufnu tvrdit ze prechod od "rucni alokace pameti + adresy natvrdo" nejakemu inteligentnejsimu memory managementu je velmi snadny krok, ktery je pro cloveka prijemny, snadno pochopitelny a primocary. Naproti tomu prechod od linearne strukturovaneho premysleni (udelam to, pak tamto a nakonec tohle) k transformaci na problem resitelny nejakou formou map-reduce je celkem komplikovana mentalni gymnastika ktera rozhodne neni trivialni a dost lidem muze pripadat jako "zbytecna komplikace".. coz nemyslim jako kritiku, ale jenom jako neco co si myslim ze vyrazne zpomali dalsi nastup funkcionalnich paralelnich technik.
    LUDWIG_
    LUDWIG_ --- ---
    BROUKOID: zajimava prednaska, i kdyz trochu hardcore uvod s assemblerem :) kazdopadne paralelni programovani je duvod, proc drive nebo pozdeji funkcionalni jazyky (ci funkcionalni prvky v imperativnich jazycich) ovladnou svet :) ostatne uz o tom mluvil Martin Odersky na lonskych Scala days: [ PAD @ Funkcionální programování (Haskell, LISP, XQuery, OCaml, F#, Scala, ...) - praxe, teorie a uplatnění ] - ve strucnosti: jednim z duvodu, proc v 90. letech objektivni orientovane jazyky ovladly svet, byly GUIs - ted je podobna situace s paralelismem... taky mi prisel zajimavej ten Fortress - Fortran nesleduji, takze mi tenhle jazyk uplne unikl... kazdopadne je pekny, jak "znovuobjevil" spoustu veci z Haskellu - plus ten napad o automatickem testovani algebraickych vlastnosti je fajn... neco podobneho tomu unit testovani me taky pred nakym casem napadlo, ale nedokopal jsem se k tomu, abych neco spachal - mam ale pocit, ze v Coqu je dokonce mozny algebraicky vlastnosti funkci automaticky dokazovat.... ale clovek nejspis musi mit doktorat v obecne matematice ci tak neco, aby dokazal Coq prakticky pouzivat :)
    BROUKOID
    BROUKOID --- ---
    Celkem zajimava prednaska o tom jak souvisi (a nesouvisi) funkcionalni programovani s paralelnim programovanim:

    Guy Steele: How to Think about Parallel Programming: Not!
    How to Think about Parallel Programming: Not!
    http://www.infoq.com/presentations/Thinking-Parallel-Programming
    LUDWIG_
    LUDWIG_ --- ---
    Crazy Haskell Professor - YouTube
    http://www.youtube.com/watch?v=5TMojC0Nb6A
    LUDWIG_
    LUDWIG_ --- ---
    LUDWIG_: "Escape From the Ivory Tower: The Haskell Journey, From 1990 to 2011" - paradni prednaska o historii a soucasnosti Haskellu od jednoho z jeho tvurcu :)
    LUDWIG_
    LUDWIG_ --- ---
    napadlo vas nekdy, ze koncept unixovych pipe je v podstate funkcionalni kompozice: http://xahlee.org/comp/unix_pipes_and_functional_lang.html ? :)
    LUDWIG_
    LUDWIG_ --- ---
    PAD: indove, mayove i rekove meli naky koncept nuly/niceho... tak jak ale nulu zname dneska, bylo formalizovano az pozdeji v persii
    PAD
    PAD --- ---
    LUDWIG_: neznali nulu uz predtim indove? dlouho dlouho predtim ..
    LUDWIG_
    LUDWIG_ --- ---
    VIRTUALVOID: asi tak... ve srovnani s fyzikou ci matematikou je informatika zatim na urovni stredoveku, takze snad se mezi nama objevi brzy nejaky newton :) mozna prehanim, ale treba koncept 0 neexistoval do 9. stoleti (prestoze to je identita pro scitani, ktery lidi pouzivali dlouho predtim... a to nehovorim o spouste matematickych objevu ve starym recku, ktery se obesly bez 0) a dneska 0 zna kazdy maly dite... takze asi nejsem sam, kdo ma podezreni, ze jsou urcite nejaky velky jednoduchy zaklady logiky/informatiky, ktery zatim vsichni prehlizime
    Kliknutím sem můžete změnit nastavení reklam