sealing • ... but async is hard • ... but “do not block” is hard • ... but error handling is hard (i.e. exceptions are hard) • ... but users still depend on each other Tuesday, April 23, 13
fields (SaaS, PaaS, IaaS) with new problems • Sophisticated dynamic and desktop-like interfaces • Not only HTTP (WS, RTC) • Real-time communication (i.e. chats, games) • Real-time collaboration (i.e. games, trello) • Hyper-text? come on... Tuesday, April 23, 13
all) • concurrency is hard • fault-tolerance is hard • p2p scaling is hard • vertical scaling is hard • everything should be done yesterday Tuesday, April 23, 13
easy way to write async code • composability and maintainability in sophisticated systems • fault-tolerance made right • easy multi-core consuming • easy support for new protocols • etc... Tuesday, April 23, 13
• expressive type system with ATD and type inference • less code with more results • message-passing concurrency (prev. Akka) • ... XML is native Scala type Tuesday, April 23, 13
• API servers (i.e. with Scalatra, BlueEyes etc) • service-oriented architecture (i.e. with Finagle) • real-time communication • “super-light” client-side (i.e. with Liftweb) • if you already use Java... Tuesday, April 23, 13
STM concurrency model, multi-core support • modern language, active development, fast- growing community • interactive development • macroses • JavaScript compiler (ClojureScript) Tuesday, April 23, 13
system with ATD and type inference • high level of code modularity and composability • compact declarative syntax • green thread • math basement, compile- time program verification Tuesday, April 23, 13
if you already works with Haskell • ... if you want something really fast but not in C • ... if you want to make cool and fun things Tuesday, April 23, 13