• ú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í
    UETOYO
    UETOYO --- ---
    GitHub - carp-lang/Carp: A statically typed lisp, without a GC, for high performance applications
    https://github.com/carp-lang/Carp
    UETOYO
    UETOYO --- ---
    LISKNI_SI: Snad to pomohlo a tobě se to v dobrém vrátí :)
    LISKNI_SI
    LISKNI_SI --- ---
    UETOYO: Nechceme, ale dalo se tam přihlásit přes google účet, tak jsem to zkusil. Doufám, že tu hrůzu nebudu muset používat nějak víc. :-)
    UETOYO
    UETOYO --- ---
    Nechcete mu někdo odpovědět? https://devel.cz/otazka/haskell-v-produkci
    UETOYO
    UETOYO --- ---
    GitHub - rvirding/lfe: Lisp Flavoured Erlang (LFE)
    https://github.com/rvirding/lfe/
    KOJA
    KOJA --- ---
    Dekuju jeste jednou a uz nebudu dal stourat.

    SHAGA: Pravda je ta, ze na zaklade zkusenosti jsem uz take opatrny v nasazovani cizich projektu dokud s nima nemam netrivialni zkusenosti (a muzou byt klidne open source, velke, od zname firmy, popularni), takze asi trochu rozumim. V podstate je to ale slepice-vejce problem, tak proto se takhle ruzne zvedave vyptavam ve snaze dostat aspon trochu zajimave informace i jinak nez na zaklade vlastnich spatnych zkusenosti. A jakozto C++ programator o prilepovani nohou na kone ve snaze stvorit chobotnici take neco vim :-)

    LISKNI_SI: Ok, dik za vysvetleni. Z me strany to ani nebyl argument jako spis uvaha, vicemene jsem prezentoval svuj logicky problem a vy jste mi vysvetlili kde uvazuju spatne. Diky.
    UETOYO
    UETOYO --- ---
    On pattern matching bude brzo v každém druhém jazyce viz C#, Rust, Java --> http://cr.openjdk.java.net/~briangoetz/amber/pattern-match.html
    LISKNI_SI
    LISKNI_SI --- ---
    KOJA: Do debaty Java vs zbytek světa se skutečně takhle po ránu pouštět nechci, tak to zkrátím. Pro ten analytickej engine bych si vybíral jen z jazyků, co maj pattern matching. To Java není, ale Scala by to bejt asi klidně mohla. A argument o počtu lidí na trhu práce je úplně zcestnej, tohle je tak složitý téma, že to stejně můžou dělat jen lidi, kteří se jazyk naučí za odpoledne.
    SHAGA
    SHAGA --- ---
    KOJA: Perl se používá na trochu jiné věci a je tam vlastně jen z historických důvodů.

    Co se týče technologií - je rozdíl mezi technologií, co vznikla předevčírem a technologií, co je tady přes dvacet let. Už jsem si párkrát poměrně natloukl tímhle opensource, co je ho přece plný internet, stačí stáhnout a nakonfigurovat - jenže ono to pak funguje jen do prvního problému a jen pro jeden a půl konkrétního usecase, který navíc samozřejmě není ten váš.
    Další rozměr je ten, že pro spoustu technologií je distribuce, fault tolerancy a concurrency něco, co se tam přivymyslelo, kdežto Erlang s tím byl vynalezený. Rozdíl je to nebetyčný. Tvrdím, že pro use cases, pro které byl Erlang navržen, je neskonale produktivnější než kupříkladu Java. Ta produktivita se ovšem neměří v tom, jak rychle jsem schopný vygenerovat projekt ve spring boot, ale v tom, jak se to pak chová na produkci a jak jsem schopen do systému sahat.
    KOJA
    KOJA --- ---
    SHAGA, LISKNI_SI: Mockrat dekuju!

    Chapu, ze nasledujici otazka je tady dost chucpe ale odvazim se.

    Muj rozhled je dost omezeny - zivi mne C++ a okolo sebe jsem videl vzdy temer vyhradne dalsi proceduralni jazyky (java, python). Posledni dobou mam pocit, ze komponenty pro distribuovane systemy se komoditizuji (xml-rpc, grpc, zeroMQ, rabbitMQ, kafka, docker, kubernetes, hdfs, cephfs, ...). Prijde mi, ze asi nejvic veci vzniklo v ramci java ekosystemu (videno u sousedu, treba se pletu) byt rozhrani mivaji budto pro vicero jazyku nebo bez vazby na konkretni jazyky (REST API, protobuffery, ...).

    Takze pokud jste to nemysleli tak, ze byste i dneska kladli hlavne duraz na to aby engine vznikl ve funkcionalnim jazyce (cemuz mozna trochu odporuje ten perl? nevim), mam to tedy brat tak, ze Erlang ma skvele nastroje a Erlang VM se skvele hodi na ten middleware a v souctu vam to vychazi rozumnejsi volba nez treba (pardon) java (vcetne intellij apod.) a nejaky open-source middleware?

    Pro jistotu opakuju - nejde mi o zadny flame ani netlacim nejaky nazor, jsem proste zvedavy a vy mate tu smulu, ze vypadate rozumne :-) Vychazim hlavne z toho, ze programatoru v C++, jave, pythonu jsou plne pracaky a kdejaky Google/Facebook/etc vyviji open source projekty pro "enterprise" distribuovane systemy zatimco Erlang ani Haskell tolik rozsireny asi nebude.

    Predem diky za nazory.
    SHAGA
    SHAGA --- ---
    SHAGA: s/dializer/dialyzer
    SHAGA
    SHAGA --- ---
    LUDWIG_: Samozřejmě. Teď už dokonce ve voting režimu v pull request builderu - spadne ti dializer, nezamergeuješ.
    LISKNI_SI
    LISKNI_SI --- ---
    (Ale tak furt lepší jak scala, tam jsem šel po týdnu do obchodu pro ramky.)
    LISKNI_SI
    LISKNI_SI --- ---
    LUDWIG_: Jop. Musel jsem si kvůli němu na 32b debian nainstalovat 64b erlang a zapnout v kernelu zswap. A naučit se zavírat zbytečný taby v browseru.
    LUDWIG_
    LUDWIG_ --- ---
    SHAGA:
    LISKNI_SI: Pouzivali jste Dialyzer?
    SHAGA
    SHAGA --- ---
    KOJA: Hodně napsal už tady kolega liskni_si, který na našem analytickém engine zanechal nesmazatelné stopy :) Nicméně - engine jako takový využívá z Erlangu jen subset, čili není až tak závislý na tom, co dělá Erlang Erlangem. Nicméně ten analytický engine poměrně mohutně využívá služeb našeho vlastního middleware, který je také napsaný v Erlangu a ten bych v ničem jiném (tedy kromě Elixíru) rozhodně nepsal - je to distribuovaný systém posouvající zprávy z jednoho konce clusteru na druhý a dělající s těmi zprávami během cesty různá kouzla a na to je Erlang (nebo cokoliv jiného běžícího nad Erlang VM) naprosto fantastický.
    LISKNI_SI
    LISKNI_SI --- ---
    KOJA: Legrační je, že ta aktuální (druhá) verze analytickýho enginu byla postupně napsaná v Haskellu, Perlu a Erlangu — stejný algoritmy, stejně pojmenovaný funkce, stejný všecko, jen "trochu" jiný jazyky. V Haskellu se psal prototyp, přepis Perl aby zapadlo do tehdejší codebase, přepis do Erlangu protože Perl byl pomalej a blbě zapadal do tý cloudový infra.

    Kdybych to psal dneska, vynechal bych ten Perlovej mezikrok, ale mezi Erlangem/Haskellem bych váhal. Haskell běží o dost rychlej a líp se refaktoruje, ale Erlang se úplně totálně megabožsky rychle kompiluje a testuje, a na produkci je to radost běhat, ladit, monitorovat. V Haskellu jsou knihovny na úplně všecko, v Erlangu chybí základní datový struktury, ale ten rozdíl v operations je tak velkej, že bych to přesto zvažoval.

    (je ale možný, že kluci, kteří na tom narozdíl ode mě pracují dodnes, to vidí jinak anebo maj další postřehy)
    KOJA
    KOJA --- ---
    SHAGA: Muzu se ciste ze zvedavosti a bez znalosti FP optat na nazory? O FP, potazmo Erlangu nevim ani zbla - proklikani tutorialu k Haskellu a opakovany prchlivy dojem, ze chapu monady nepocitam.

    Kdybys/te ten analyticky engine zacinal/i psat na zelene louce, jak bys/byste se divali na Erlang dnes? Co je na nem nejzajimavejsiho? Je to OTP? Meni treba situaci to, ze se za posledni leta vice zpopularizovaly i dalsi funkcionalni jazyky nebo, ze se objevila virtualizace v podobe Kubernetes/Docker Swarm a pod.?

    Nechci zadny flame, jen jsem zvedavy na cizi zkusenosti. Uvazuju tak, ze jazyk je to relativne exoticky, takze asi mate padne duvody proc ho pouzivat.
    SHAGA
    SHAGA --- ---
    UETOYO: Elixir máme rádi (osobně), ale nasazený ho nemáme, přeci jen Erlang děláme už docela dlouho a tou dobou Elixír ještě nebyl. A nechceme naší už i tak heterogení platformu zanášet dalším jazykem.

    Děláme v oboru www.gooddata.com.
    UETOYO
    UETOYO --- ---
    SHAGA: V jakém oboru se pohybujete? Jinak hodně slyším o Elixiru, máte s ním nějaké zkušenosti?
    Kliknutím sem můžete změnit nastavení reklam