
Hosted by Adam Gordon Bell - Software Developer · EN

Today Adam talks to Shadaj Laddad. What is React? Why do we need front end frameworks at all. Shadaj explains modern front end web development. He also explains why he likes to use react from scala.js and built a framework to make that easy for all. "React is a lot of things. I guess the core principle is it lets you model your entire application as a function from properties of what you want your page to look like to an HTML tree. Everything is defined as this function. "" "In the traditional web, everything was built upon mutations, right? You'd collect some data and then you'd do some DOM manipulations to say, Hey, modified the contents of this html node." "React kind of abstracts away from that and says, Hey, this is the result I want. Just tell me what you would like the webpage should look like. And I'll do the internal work to actually make that happen. "" Person site of Shadaj Slinky JS Talks by Shadaj Youtube channel https://corecursive.com/044-shadaj-laddad-react-and-scala-js/

Formal verification and type systems - how do they relate? Niki Vazou is on a mission to bring better formal verification to the masses. I have done a couple of episodes about dependent types and my feeling is that dependent types are super powerful and have some conceptual simplicity ( Types are a first-class concept ) but are somewhat tricky to wield in practice. Refinement types are something simpler. A refinement is a predicate that narrows the meaning of a type. What if instead of divide taking two ints, one was Int i where i != 0. This is a refinement type, a type that has been refined, the set of possible values narrowed, using simple predicates. Niki is the creator of Liquid Haskell, a system that extends Haskell to support refinements. It actually goes farther than that. She has also worked on refinement types in Ruby and explained refinement types to scala community at various conferences, but her heart lies with the Haskell community. We talk about refinement types, theorem proving, formal verification, SMT solvers, and working with GHC. This interview is also a great place to hear me asking stupid questions of a very smart person. Niki and her work are way outside my comfort bounds but hopefully my struggles to understand the topic will help make the power of refinement types approachable to a wider audience. Ruby developers, js developers, and everyone, refinement types are for you as well. Links: Liquid Haskell Talk Programming with Refinement Types Liquid Haskell Tutorial Niki's Ph.D. Thesis Real World Liquid Types Refinement Types for Ruby Liquid Haskell Proofs Refinement Types for Scala

Tech Talks are in-depth technical discussions. Oleg Illyenko is primary creator of Sangria, a graphql implementation used by twitter, The New Yorks Times and many other companies. We discuss the problems that graphql solves, how sangria works and the problems of api design. Show Notes: Sangria Graphql Contact Oleg: twitter medium Talks on Sangria: youtube slides Sangria videos https://www.youtube.com/watch?v=3l--XM6j-1w https://www.youtube.com/watch?v=JC-UJwBKc2Y https://skillsmatter.com/skillscasts/9134-beyond-rest-graphql-and-sangria Graphql https://graphql.org/swapi-graphql/

Tech Talks are in-depth technical discussions. 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 support it. This recursive definition and a speaking deadline led Miles to create shapeless. Years later he is still pushing the bounds on what you can do in Scala, including recently getting support for literal types added to scalac 2.13.

Tech Talks are in-depth technical discussions. 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. Writing in this style places constraints on what a module in a software system may do, but by constraining modules in this way, the software modules themselves become endlessly composable. Enjoy Show Notes: Functional Programming In Scala Constraints Liberate

Tech Talks are in-depth technical discussions. 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 the rewrite, what drove them to move to scala and the experience of moving from one technology stack to another. Show Notes: Rewriting Doulingo's Engine in Scala Jobs at DouLingo

Tech Talks are in-depth technical discussions. 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 production engineer at Shopify where his role shares many similarities with that of Google's site reliability engineers. In this episode, Emil argues that the academic study of emergency management and industries such as aerospace and transportation have a lot to teach software engineers about responding to production problems. In this interview Emil argues that we need to move beyond tribal knowledge and incorporate practices such as an incident command system and rigorous use of checklists. Emil suggests that we need to move beyond a mindset of "move fast and break things" and toward a place of more deliberate preparation.

Tech Talks are in-depth technical discussions. 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 directions. He also briefly touches on how Scala Native made cold compilation times of Scala code twice as fast. If you are interested in functional programming, compiler design, or want to learn some interesting tidbits about garbage collector design and trade offs you will like this episode. Show Notes Scala Native Scala Goes Native Talk Bootstrapping the Web with Scala Native