Notatki z Lambda Lounge meetup
- immutability
- higher-order functions
- first-class functions
- stan przekazywany explicit w argumentach, a nie przechowywany gdzieś tam i zmieniany w miejscu przez nie wiadomo kogo
- referential transparency - funkcja dostając dane argumenty zawsze zwróci tą samą wartość
- nie ma rozróżnienia na == vs. equals
- primitive obsession
- czytelniejszy kod, prostsze testowanie i debugowanie
- łatwiejsza współbieżność
- nowy punkt widzenia, stymulacja mózgu ;)
- podobny sposób myślenia jak w matematyce
- znajomość języków funkcyjnych pozwala pisać lepszy kod w językach imperatywnych/obiektowych
- może być trudno znaleźć ludzi do pracy i pracę (języki dla samotnych wilków)
- kod napisany przez jednego wymiatacza może być niezrozumiały dla innego
Ocaml
- jakaś firma w USA pisze w tym soft do gry na giełdzie
- poza tym mało kto tego używa
Lisp
- można w nim napisać wszystko
- Paul Graham w nim napisał Yahoo Store
- kod traktowany tak samo jak dane
- mało kto tego używa, przynajmniej w Polsce
Clojure
- współpraca z JVM
- kod traktowany tak samo jak dane
- trochę bardziej popularny niż zwykły Lisp
- niektórzy z Ruby/Rails community się przenoszą, są biblioteki do web development
- jakiś startup w Krakowie
Erlang
- dobrze rozwiązana współbieżność
- nacisk bardziej na współbieżność niż funkcyjność
- jest trochę dużych firm które tego używają
Haskell
- bardziej “true” niż reszta
- mało popularny
Scala
- współpraca z JVM
- multi-paradigm, więc łatwiej się przerzucić i łatwiej przekonać team lub znaleźć ludzi
- ale też łatwiej iść na łatwiznę i nie pisać całkiem funkcyjnie
- jeszcze za szybko się zmienia żeby była enterprise-ready
- Twitter, Yammer, jest parę firm w Krakowie
A propos Haskella - przykłady użyć w biznesie:
http://www.haskell.org/haskellwiki/Haskell_in_industry