name: inverse layout: true class: typelevel --- class: center, middle, hero .title[ # Typelevel in 2016 ## Miles Sabin, [@milessabin](http://twitter.com/milessabin) [](http://typelevel.org) ] --- class: center, middle, what-logo background-image: url(img/logo-no-text.svg) --- class: center, middle # What is Typelevel? --- # Typelevel is ... Typelevel is a community of projects and individuals organized around ... -- * Pure, typeful, functional programming in Scala -- * Independent, free/libre and open source software -- * A desire to share ideas and code -- * Accessible and idiomatic learning resources -- * An inclusive, welcoming and safe environment -- See Erik Osheim's talk at Scala World last year ... --- class: center # Typelevel is ... .centered[ # http://typelevel.org # http://github.com/typelevel/general # http://gitter.im/typelevel/general ] --- class: center # Typelevel is ... .centered[ ## a community of projects ... ] --- # a community of projects ... * Standalone libraries Cats, Alleycats, Kittens, Dogs shapeless, refined spire, algebra Monocle scodec, circe doobie --- # a community of projects ... * Tools, tests and laws Ensime tut discipline ScalaCheck specs2 catalysts --- # a community of projects ... * Integrations argonaut-shapeless scalacheck-shapeless spray-json-shapeless shapeless-contrib --- # a community of projects ... * Macro/plugin helpers kind-projector simulacrum, machinist, export-hook, imp, local-implicits macro-compat --- # a community of projects ... * New arrivals Finch, http4s, Monix Squants Frameless Matryoshka eff-cats delta --- background-image: url(img/stickers.jpg) --- class: middle, center background-image: url(img/stickers.jpg)  --- class: middle, center background-image: url(img/stickers-applied.jpg) --- class: center # a community of projects ... .centered[ ## What about Typelevel Scala? ] --- class: center # Typelevel is ... .centered[ ## a community of projects ... ] -- ## ... and people ... --- class: center, summit background-image: url(img/philly-summit.jpg) # Typelevel Summit Philadelphia --- class: center, summit background-image: url(img/oslo-summit.jpg) # Typelevel Summit Oslo --- class: center, summit background-image: url(img/hack-the-tower.jpg) # Typelevel @HackTheTower --- class: center, middle, sponsors           --- # Upcoming Events * Scala World, Lake District, UK, 10-14 Sept -- * Scala.IO, Lyons, France, 27-28 Oct -- * Lambda World, Cadiz, Spain, Sept 30/Oct 1 -- * Scala By The Bay, San Francisco, USA, 11-13 Nov -- * Scala eXchange, London, UK, 8-9 Dec -- .text-centered[We want to organize more ... get in touch!] --- class: center, hack-the-tower background-image: url(img/hack-the-tower-pano.jpg) # Upcoming Events ## Typelevel @HackTheTower ... --- # Upcoming Events * Typelevel hack days @HackTheTower -- * Monthly at the Salesforce Tower in London, next 16 Jul, 13 Aug -- * Introduction to Scala and FP -- * Typelevel libraries: Cats, shapeless -- * Ensime -- * Scala compiler hacking -- * Start your own! --- class: center, middle, cats  --- # Cats Update * Cats is a library of abstractions for functional programming in Scala -- * Started at the beginning of 2015 by Erik Osheim -- * Now at 2188 commits and 96 contributors -- * Emphasis on approachability as much as technical merit -- * Modular, with a small stable kernel of fundamental type classes --- # Cats Update * Nearing a 1.0 release, no longer "experimental" -- * Growing body of documentation and other resources, very lively gitter channel -- * Finally a Task/IO story — two solid implementations with Cats support -- * Monix — Scala.js friendly -- * fs2 — smooth transition from Scalaz Task -- * Driving innovation in the language itself ... --- class: middle, center # Typelevel Scala --- # Typelevel Scala * Fork of Scala initiated at the end of 2014 -- * Aim to address issues of particular concern for the Typelevel style -- * Stalled at the beginning of 2015 -- * Plugins, macros and other workarounds filled some of the gaps -- * Fundamental issues remain --- class: center # Typelevel Scala .centeredimg[  ] --- class: center # Typelevel Scala .centeredimg[  ] --- class: center # Typelevel Scala .centeredimg[  ] --- class: middle ```text @milessabin: The really depressing thing is, looking at the patch, we could have fixed this years ago. @runarorama: Yeah. I remember seeing Paul's comment on this and thinking "that's reasonable, somebody should try it" @milessabin: Ditto, but nobody did. @runarorama: :-( ``` --- # Typelevel Scala Typelevel Scala agenda ... -- * 42.type (aka SIP-23) -- * Multiple implicit parameter blocks -- * Partial type application -- * Improved implicit resolution performance for inductive implicits -- * Implicit prioritization -- * Core Scala --- class: center, middle # Questions? --- class: center, middle, hero .title[ # Thank You ## Miles Sabin, [@milessabin](http://twitter.com/milessabin) ### http://typelevel.org/ [](http://typelevel.org) ]