• ú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í

    Clojure's core typed vs Haskell

    8 hlasy od 8 respondentů
      A monad is just a monoid in the category of endofunctors, what's the problem? http://vimeo.com/38223410



      All programming languages evolve towards Lisp.

      Haskell is faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP. — Autrijus Tang

      There may, indeed, be other applications of the [lambda calculus] than its use as a logic. — Alonzo Church, 1932
      rozbalit záhlaví
      FRAKTALEK
      FRAKTALEK --- ---
      LUDWIG_: dik. Jane street mam uz nakou dobu v zalozkach, ale zatim se jim nechystam napsat. Mas s nima nejakou osobni zkusenost?

      Galois taky vypada zajimave
      FRAKTALEK
      FRAKTALEK --- ---
      LITTLELI: ja se momentalne rozhlizim po praci, kde bych to pouzivat mohl :)
      LITTLELI
      LITTLELI --- ---
      FRAKTALEK: používáš to v práci? my to máme zakázaný ;)
      FRAKTALEK
      FRAKTALEK --- ---
      LUDWIG_: hlavne ted uz tyhle predsudky stejne pomalu padaji spolu s tim jak roste povedomi a pouzivani jazyku jako je Erlang, Scala nebo Clojure
      LUDWIG_
      LUDWIG_ --- ---
      BROUKOID: kolik z tech "normalnich programatoru, co to vidi jinak," ma nejakou zkusenost s funkcionalnim programovanim? co znam lidi, kteri to povazuji za "akademickou silenost" bez jakekoliv sance v "realnem svete", tak budto nemaji zadnou nebo minimalni zkusenost, nechteji tomu venovat cas a divaji se na to pres prsty.
      proste mi prijde, ze kolem funkcionalniho programovani vzniknul tenhle mytus, ze to je neprakticka akademicka silenost, kterymu zatim dost lidi veri a maji strach / presudky (ze by to byla ztrata casu) se jej naucit... za coz si muze komunita kolem fp do jiste miry sama svym elitismem (spousta matematickych buzzwords atd.)
      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 :)
      Kliknutím sem můžete změnit nastavení reklam