• ú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í
      ESTEN
      ESTEN --- ---
      ALMAD: souhlas, az na to, ze py3 neni mrtvej, ale pomerne uspesne na nej prechazi vetsina komunity. Stalo to ovsem spoustu potu, hadek a "compatibility" featur a trvalo to (a jeste potrva) spoustu let. Ale uz je aspon jasno...
      ALMAD
      ALMAD --- ---
      LUDWIG_: Me prijde ze bud to ma proste bejt novej jazyk se vsim vsudy, nebo se to fakt musi delat postupne.

      Protoze jinak to umre presne jak ten python 3.
      LITTLELI
      LITTLELI --- ---
      Ještě jedno povídání mě zaujalo, tentokrát Erik Meijer - nikoli však pro Channel9
      Erik Meijer: Functional Programming
      http://www.youtube.com/watch?v=z0N1aZ6SnBk
      LUDWIG_
      LUDWIG_ --- ---
      ALMAD: no, neni to idealni, ale je nejaky lepsi zpusob jak z toho ven? nebo je lepsi se placat v soucasny situaci?
      ALMAD
      ALMAD --- ---
      LUDWIG_: ...no a jestli scala 3 bude jako python 3, tak potes koste.
      LUDWIG_
      LUDWIG_ --- ---
      Jako Haskell a jeho inference taky nebyla bez problemu, a to Haskell je "jednodussi" jazyk ve smyslu, ze je ciste funkcionalni a nesnazi se kombinanovat OO a interoperabilitu s Javou jako Scala.

      Haskell byl ale pragmatictejsi v tom, ze ma jasne definovany relativne jednoduchy mezi-jazyk Core, do ktery se Haskell preklada... Plus, strategie "avoid success at all cost" se vyplatila, ze ta evoluce jazyka mohla byt pomerne radikalni.
      Scala je ted v tezky situaci, ze se stala fukncionalnim programovanim pro masy, a uz takhle si lidi (pravem) stezuji, jak jsou jednotlivy verze nekompatibilni.

      Moje predpoved je, ze az se finalizuje DOT (https://github.com/namin/dot ), prekope se Scala do nejake nove "ciste" verze, ktera bude soubezne existovat s tou starou polo-rozbitou. Tedy neco jako Python 2.6/7/... a 3.xx.
      LITTLELI
      LITTLELI --- ---
      LUDWIG_: teda nic proti, jen jsem víc pragmaticky orientovaný a víc ocením jak jazyk s reasoningem pomáhá mě než já kompilátoru zbavit ho jeho utrpení
      LITTLELI
      LITTLELI --- ---
      LUDWIG_: upřímně, nemám sílu tohle číst... asi chci opravdu dělat něco užitečnýho.
      LUDWIG_
      LUDWIG_ --- ---
      LUDWIG_:
      True Scala complexity | @yaaang's blog
      http://yz.mit.edu/wp/true-scala-complexity/
      LUDWIG_
      LUDWIG_ --- ---
      LITTLELI LITTLELI: do jiste miry odstrasujici... v nejake prednasce o GHC rikal S-P Jones, ze kombinace parametrickeho a podtypoveho (subtype) polymorfismu je prilis komplikovana, tudiz vetsinou cesta do bazin a ze jedinou vyjimkou je Scala... podle tech Phillipsovo prednasek to ale vypada, ze se v bazine vnitrne brodi, jen to skryvaji.

      Kdybych mel nejak shrnout ty zavery, tak za soucasneho stavu: 1) scalac nebude nikdy rychly, protoze je to neuveritelny moloch, 2) clovek se muze setkat s radou podivnosti, ktere vydedukuji jeho vnitrni pochody, 3) scalac nemuze delat prilis mnoho optimalizaci kvuli bohatosti jazyka.

      Pres tyhle neduhy je Scala porad ale prakticky jazyk a mnohem elegantnejsi nez Java... a treba se ve Scale 3 (ci nake budouci verzi) vybodnou na zpetnou kompatibilitu a prekopou to od zacatku s ohledem na tyhle neduhy.

      Tady je trochu "praktictejsi" pohled (prece jen vetsina programovani ve Scale neni takovy boj jako scalac):

      Skills Matter
      https://skillsmatter.com/...lscasts/4921-some-musings-on-scala-and-clojure-by-a-long-time-scala-dude
      LITTLELI
      LITTLELI --- ---
      Pacific Northwest Scala 2013 We're Doing It All Wrong by Paul Phillips
      https://www.youtube.com/watch?v=TS1lpKBMkgg
      LITTLELI
      LITTLELI --- ---
      Scala Collections: Why Not?
      https://www.youtube.com/watch?v=uiJycy6dFSQ
      LUDWIG_
      LUDWIG_ --- ---
      UETOYO: je nepovinna, takze je to spis extra dokumentace pro ostatni (a sanity check pro refactoring)... inference to odhadne vetsinou spravne - kdyz clovek potrebuje nejaky extra vykon, tak jak pise ANT_39... jsou typy pro unsafe string, unboxed numeriku apod.
      ANT_39
      ANT_39 --- ---
      (Ja sam jsem Cckar resp. C++kar, tak s pouzivanim ruznych lispu a haskellu "in anger" nemam moc zkusenosti.)
      ANT_39
      ANT_39 --- ---
      UETOYO: Signatura je nepovinna, ale urcite se tam dela staticka inference typu, takze prekladac muze optimalizovat. Takovy ghc to AFAIK i dela, ale nemam moc tuseni, jak dobre. Na shootoutu snad byly nejaky vysledky, co naznacovaly, ze kdyz clovek strategicky pouzive nejaky ty unsafe stringy atp., tak to beha temer C rychlosti, ale to zas tak moc neznamena.
      ANT_39
      ANT_39 --- ---
      UETOYO: Teoreticky muze, Common Lisp na to tusim ma nejaky anotace, pomoci kterych jde nak pozicovat funkce na skale mezi rychlosti a bezpecnosti, ruzne scheme kompilatory umely na zaklade staticke analyzy nejake veci vydedukovat a tak. Jak je to v praxi, nevim, tady na tohle tema mluvival ID Sad0ur, ale uz jsem ho tu nakou dobu nevidel.
      LUDWIG_
      LUDWIG_ --- ---
      UETOYO: jj, "The Lisp family of languages are all "strongly typed" in the sense that typing errors are prevented at runtime."
      LUDWIG_
      LUDWIG_ --- ---
      LITTLELI: ja bych pozitivni prinos videl jen ve dvou pripadech LUDWIG_ (ve smyslu ze snizenou produktivitu pri kodeni vyvazi potencialne min debugovani a udrzitelnejsi system); jinak to imho smysl postrada
      LITTLELI
      LITTLELI --- ---
      pokud někdo (volitelně) anotuje typy, tak to pro něj (nebo skupinu) předpokládám má nějaký pozitivní význam z hlediska produktivity. jinak to jaksi postrádá smyslu, že?
      WILD_A
      WILD_A --- ---
      LITTLELI: Pouzil jsem sice ostry vyrazy, hlavne ve snaze vyvolat nejakou diskuzi, ale osobne to fakt vnimam jako nahrazku v nouzi, kdyz to teda nejde jinak. A jinak viz LUDWIG_.
      LUDWIG_
      LUDWIG_ --- ---
      LITTLELI: je to volitelne (=> min uzitecne: nedokaze to z principu odchytit radu veci, co staticke jazyky zvladnou) a musi to byt explicitne vypsane (=> min produktivni oproti untyped Clojure nebo statickym jazykum s inferenci)
      Kliknutím sem můžete změnit nastavení reklam