Joël Quenneville joins Chris to discuss Elm, the strongly typed functional programming language for writing reliable client side web apps. They discuss recent changes from the 0.19 release including reduced bundle size from dead code elimination, the somewhat controversial removal of custom operators. Anecdotally, Joël and team saw a reduction from 31.5K to 16.6K in bundle size going from 0.18 to 0.19 and felt no pain from the custom operators removal, so a big net win for them with this new version.
Along the way Joël and Chris detour into the complexity of managing a project and community like Elm's and discuss Joël‘s recent work with the thoughtbot apprentice program. To round things out, Joël and Chris discuss the power of using a type system like Elm's to constrain the valid states of your application and make your apps more robust and maintainable.
Elm - A delightful language for reliable webapps.Elm 0.19 Release NotesWebpackerElm 0.19 - Dead Code EliminationScala.jsThe reasoning behind removing user-defined operatorsMinesweeper for JavaScript EqualityWebAssemblyLinus Torvalds - "I am going to take time off and get some assistance..."Also Linus, on the importance of "trivial patches" as entry points for new kernal developersDerek Prior - Implementing a Strong Code-Review Culturethoughtbot code review guidelinesthoughtbot apprentice programHow Elm Slays a UI Antipattern"Making Impossible States Impossible" talk by Richard Feldman"Working with Maybe" talk by Joël Quenneville"Confident Code" talk by Avdi Grimm"Nothing is Something" talk by Sandi MetzThe Zen of PythonBreakable ToysJoel’s many posts on the Giant Robots blogStop Coding and Start Drawing