• ú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í
      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
      VIRTUALVOID
      VIRTUALVOID --- ---
      LUDWIG_: tiez si hovorim, .. holt tieto hlavy uz niesu najmladsie. teraz je rad na nas nieco vymysliet ;)
      LUDWIG_
      LUDWIG_ --- ---
      dennis ritchie, (jobs) a ted john mccarthy... to je nejaky zly mesic :(
      VIRTUALVOID
      VIRTUALVOID --- ---
      RIP John McCarthy (Lisp, AI...)
      NARVIK
      NARVIK --- ---
      Dalsi setkani czjug bude na tema "Scala zkušenosti z nasazení, Actors a Akka framework."
      31.10., Praha, budova MFF UK na Malostranském nám. 25, v místnosti S5, od 19h
      LUDWIG_
      LUDWIG_ --- ---
      prece jen scala ma pozehnani:

      "During a meeting in the Community Corner (java.net booth) with James
      Gosling, a participant asked an interesting question: "Which
      Programming Language would you use *now* on top of JVM, except Java?".
      The answer was surprisingly fast and very clear: - Scala."
      Kliknutím sem můžete změnit nastavení reklam