At the last London Scala event of 2017 we have Travis Brown telling us about the future of decoding in Circe, and Iulian Dragos with Mirco Dotta who'll be helping us learn to compile like a boss! Don't miss it!
We all love Scala, but the one aspect we have a hard time accepting are long compile times. It’s not uncommon for a project to experience compilation times of a handful of minutes, if not worse. On top of that, compilation times are unpredictable, depending on a combination of language features, external libraries, and type annotations. A single line change may increase compilation times ten fold.
What can we do? It’s paramount we gain greater insight into the tools and libraries we use. There are also established (anti-)patterns that you should know about, if you fancy to keep compilation times to a minimum. And why not utilizing all cores when compiling? The stock Scala compiler can’t do it, but Triplequote Hydra is here to change that. Sit tight and let’s cut down on compilation time!
Iulian Dragoș dreams about a world where the Scala programming language is the default choice for new projects. He learned Scala by writing the compiler backend for it during his PhD at EPFL, back in 2004, and he was the first employee of Lightbend (formerly Typesafe). At Lightbend he helped the company grow from 5 to 85 employees, playing the role of engineer, technical lead, consultant, trainer or sales engineer. Iulian is a frequent speaker at conferences and actively contributing to several open-source projects.
Co-founder of a stealth mode startup aiming at revolutionising Scala developers' life. Mirco has 10+ year experience with Scala, and also has extensive knowledge on Akka, Lagom, Playframework, and Sbt. Before founding his own company, he worked at Lightbend (formerly known as Typesafe), where he wore different hats: from engineering, to consulting, and (fun fact) even sales! He is a certified Lightbend trainer for Akka, Playframework, and Scala. He loves meeting people and sharing experiences, so don't hesitate to say hi when you see him. In his freetime, he plays chess and studies wine - both theory and practice! :)
The 1.0 release of Circe will introduce a new approach to decoding that replaces cursors with a simple algebra of navigation and reading operations. While this approach is largely source-compatible with existing decoder definitions, it opens up a wide range of new possibilities. By decoupling the interpretation of the decoder from any particular JSON representation, we're now able, for example, to define (or generically derive) a Decoder value and then use it to decode an instance of Circe's Json AST, or of ScalaJSON's AST, or even to decode a type representing a BSON or YAML value.
While this new approach will be included in the core Circe module in 1.0, it's available now as a separate dependency. This talk will begin with a high-level overview of the motivations for the change, but the focus will be a hands-on exploration of the capabilities of the new approach.
Travis Brown currently writes Scala for Stripe, maintains several open source Scala libraries (including Circe and iteratee.io), and contributes to many others (for example Finch, Cats, and Shapeless).