CoRecursive with Adam Bell
008 - Generic Programming and Shapeless with Miles Sabin
When Miles Sabin applied to speak at a conference on generic programming, he bluffed a little bit. He would present on porting Simon Peytons Jone’s scrap your boilerplate functionality to Scala. Once his talk was accepted, he only had one thing left to do, implement it. Generic programming is the type of polymorphism your language does not directly support. To me this seems paradoxical, as once you implement a solution, the language, or at least a library within the language can now...
007 - Total Programming Using Swift with Andre Videla
In simple terms, a total function is a function that produces a well defined output for all possible inputs. A total program is a program composed of only total functions. A non-total, or partial function, would be a function that can fail given certain inputs. Such as taking the head of a list, which can fail if giving an empty list and is therefore non-total. Total programming can be done in any language, however many languages make this easier. Some, going so far as to require proof...
006 - Type Driven Development and Idris With Edwin Brady
Edwin Brady is the creator of the Idris programming language and Author of the book Type-Driven Development with Idris and a computer science lecturer. The book, the language and Edwin himself all seem to be chock full of ideas for improving the way computer programming is done, by applying ideas from programming language theory. In this interview, we discuss dependent types, type holes, interactive and type-driven development, theorem provers, Curry–Howard correspondence, dependant...
005 - Algebraic Domain Modelling using Functions With Debashish Ghosh
In object oriented languages, modeling a complex problem domain is a well understood process. Books like Domain Driven Design contain techniques for breaking down a problem domain and earlier books like the gang of four book catalogue design patterns for modeling these domains in an object oriented way. In today’s interview Debashish Ghosh explains how to model a complex problem domain in a functional paradigm. His solution focuses on modelling the behaviour of the software system rather...
004 - Design Principles From Functional Programming with Runar Bjarnason
Runar Bjarnason has been exploring how writing in a functional style increases modularity and compositionality of software for many years. He is co-author of functional programming in scala, a book that teaches these principles in scala. It is a very challenging yet very rewarding book, sometimes referred to as simple ‘the red book’. In this interview Runar explains how writing in a functional style involves limiting side effects, avoiding exceptions and using higher order abstractions....
003 - Scala at Duolingo with Andre Kenji Horie
Doulingo is a language learning platform with over 200 million users. On a daily basis millions of users receive customized language lessons targeted specifically to them. These lessons are generated by a system called the session generator. Andre Kenji Horie is senior engineer at Doulingo. He wrote about the process of rewriting the session generator, as well as moving from python to scala. and changing architecture all at the same time. In this episode Andre talks about the reasons for...
002 - Incident Response with Emil Stolarsky
As a system becomes more complex, the chance of failure increases. At a large enough scale, failures are inevitable. Incident response is the practice of preparing for and effectively recovering from these failures. An engineering team can use checklists and runbooks to minimize failures. They can put a plan in place for responding to failures. And they can use the process of post mortems to reflect on a failure and take full advantage of the lessons of that failure. Emil Stolarsky is a...
001 - Scala Native with Denys Shabalin
Scala is a functional and object oriented programming language built on the JVM. Scala Native takes this language, loved by many, and brings it to bare metal. Scala Native is an optimizing ahead-of-time compiler and lightweight managed runtime designed specifically for Scala. Denys Shabalin is a Research Assistant at the EPFL and the primary creator of Scala Native. In this episode, I interview Denys about the motivations behind the Scala Native project, how it was implemented and future...