In this episode, I talk with Shriram Krishnamurthi. We cover his introduction to functional programming, Racket and #lang, Static vs Dynamic Typing, Bootstrap and Pyret, How to Design Programs, and much, much, more.
Our Guest, Shriram Krishnamurthi
ShriramKMurthi on Twittershriram on Githubcs.brown.edu/~sk/ Shriram’s University of Brown Pageparentheticallyspeaking.org Shriram’s Blog/Essaysblog.brownplt.org Brown PLT Blog
Announcements
Strange Loop 2022 is taking place September 23rd and 24th in St. Louis, Missouri. Visit thestrangeloop.com to keep up to date and to register.
RacketCon is back in person for its 12th year. Hosted at Brown University in Providence, Rhode Island, RacketCon will be October 28th-30th. Visit https://con.racket-lang.org/ for more information.
Some of you have asked how you can support Functional Geekery, in that vein, Functional Geekery now has a Patreon Page.
If that is one of the ways you would like to show your support, you can find out more at https://www.patreon.com/fngeekery.
Topics [@1:31]
Welcome ShriramBrown UniversityPLT Scheme FamilyHow To Design ProgramBootstrapPyretHow Shriram got into programmingMITStructure and Interpretation of Computer Programs“From then, it was just like unicorns, and I’ve been in the future ever since.”Dan Friedman storyRice UniversityMatthias FelleisenMatthew FlattRobby FindlerWhy Shriram didn’t work with Matthias in Grad SchoolBob HarperPractical Foundations of Programming LanguagesDaniel JacksonAlloyMoshe VardiDynamic vs. Static Typing and Shriram’s view on TypesPyret as an optional typing experienceHaskellPerspectives from a Programmer versus a Verification Person at heartTeJaS: Retrofitting Type Systems for JavaScriptGradual Soundness: Lessons from Static Python“We do not fully understand programmer thought processes.”“What would happen if we tried to crowd-source language design?”“Give people the language they want.”#langtyped/racketPlait languagePLAIRetrofitting types systems onto existing dynamic languagesRustPyret built with types in mind from the beginning“We want you to live in a rich world of expression, not an impoverished world […] of data types you can count on one hand.”How To Design ProgramsLittle SchemerSICP as a magic trick“It’s almost like the dual of SICP.”“Go ahead and type. Let’s see what you can do.”Making traceability as central as possibleKathi FislerData-Centric Introduction to ComputingBootstrapEmmanuel SchanzerTrying to introduce computing to schoolUsing exiting teachers to teach computing in existing disciplinesTeaching students by them creating a video game as a way to teach mathKathi Fisler’s presentation at LambdaDays 2021All of Bootstrap’s programming is purely functionalPyret as a no-research languageFocus on the user experience“There are teachers that have built up a pedagogy around the use of error messages.”“I’m left-handed, and I sometimes joke it’s [parenthetical syntaxes] the same sort of thing.”Building as a language that runs in the browser for zero hassleWeSchemeTool and Language Building’s relation to Racket“If you were deeply conservative, you wouldn’t be using Racket.”ScribbleLaTeX“These are the same people who, if their programming language didn’t give them separate compilation, they would just be up in arms.”Mystery LanguagesThe Curse of LispThe Bipolar Lisp Programmer“We have lost track of this very foundational fact, that programming is a kind of super-power. It’s the ability to make worlds and to sort-of bend things to our will, that is almost scary.”Roman Numbers #langRacket is a language as a serviceFrTimeTranslated FrTime to JavaScript, resulting in Flapjax“Everything is a language.”RacketCon 2022Making a pitch for “our ignorance.”
As always, a giant Thank You goes to David Belcher for the logo design.