In this talk Cies Breijs shares his experiences in learning Haskell as his second language besides Ruby. He will do so from the point of view of a Rubyist: where possible comparing the two languages, available libraries/tools and their communities.
much to learn! Scala (2003) JVM, multi-paradigm was already showing its ugly face Clojure (2007) JVM, still dynamic typing (LISPish) Go (2009) Google owned (mixed blessing), merely a simple C, not FP
speed) * Pure-functional: no place to hide * Very innovative and knowledgeable community * I face the challenges up front * Haskell made me a better Rubyist (programmer) * Learned a lot of new, very useful, concepts * It’s a lot of fun!
y :: a -- y is of any type z :: Integral a => a -- z is of any "Integral type class"-type f :: a -> b -- f is a function from a to b g :: a -> b -> c -- g is a function from a to (b -> c) h :: (a -> b) -> [a] -> [b] -- h is a function from (a -> b) -- to ([a] -> [b])
Scotty, Simple, Spock, Wheb, MFlow, and more. (Sinatra) • Haste, unifies client side (JS) and server side. • Other Haskell-to-JS compilers: GHCJS, Fay, PureScript. • All common web-technologies have one-or-more good libraries: Unicode, HTTP, URL, email, JSON, XML, HTML, CSS, SQL (Postgres, MySQL, Sqlite), Memcache, Redis, Mongo, etc.
Alpha version to be officially released in the following weeks • Sites compile to ~80MB binary (includes: server, all libs, all assets) • 27kB RES memory per thread • 2-10ms responses (involving SQL queries)