F# Code I Love
summary
Claims that F# dramatically reduces accidental complexity: a C# project with ~8 devs takes five years and accumulates 3,000 null checks and 2,000 try‑catches vs 9 in an F# rewrite; an F# team of 3 devs <1 year finishes and ships with zero bugs. Tooling examples include the single‑DLL F# compiler service, Fable/SAFE for JS+server sharing, Giraffe and Fabulous for web/Xamarin, type providers for strong‑typed data access, and computation expressions for async and sequences.
AI-written summary · about
chapters (17)
- 0:00Start
- 4:36What Makes a Good Programming Language
- 8:54What Is F Sharp
- 17:55Simon Cousins
- 20:39F-Sharp Advent Calendar
- 21:23Examples of F-Sharp Code
- 21:44Foundations of the F-Sharp Language Design
- 29:18Functional Programming
- 32:53Composition
- 33:34Giraffe
- 35:29Back Pipe Operator
- 38:10Objects
- 39:01Problem with Object-Oriented Programming
- 45:26Third Set and You Absolutely Forget All about the Fourth Set and the Difference There Is Really between Object Programming and Object Oriented Programming F Sharp Absolutely Supports Object Programming Inspire You Can See from this that if the First Set and to some Extent the Second Set What Object Programming Is about There's a Major Part of the F Sharp Methodology and You and You Have To Be Good at Object Programming To Be a Good F Sharp Programmer but We Don't We Don't Really Embrace Object-Oriented Programming We Support Object Program but We Support Sequence Programming As Well Is It Support Async Programming There's Many Different Kind of Computational Structures That all Flow Together and Work Nicely in In in F Sharp and that Doesn't Mean You Have To Obsessively
- 50:29So It's a List Expression Where You'Re Computing a List as You Go It's a Bit like C-Sharp Enumerators Enumerator Methods but You Can Use It into the Expression like this in any Expression Form and You Can Use It To Create Arrays and on-Demand Sequences and and Other Other Structures so the Same Feature Is Used for Async Code so You'Ll See Here You Know the Server Is Async this the Client Is I Think that the Browser Is Async this with some Sort of Sleep in There and Then We Put those in Parallel and We We Run those Things and So these Act like Tasks
- 52:24And that Library Is after I'Ve Controlled on Acing C but There Are Many Other Examples of F Sharp Computation Expressions They'Re Used to all Sorts of Interesting Interesting Things Okay so Just To Finish Off if Good F Sharp Practice It's It's Not about Functional Obscurity It's about Writing Great Clear Coded Code That Could Be Debugged Commented Tested that His Profile Its Profile Is Performant under Ci and It Is Readable We Fully Embraced Software these All these Aspects of Software Engineering Methodology and Don't Ever Let People Think that It's About Just about Sort of Approach
- 55:24A Key Thing in the F Sharp Is that in the F Sharp System Is that the Cancellation Tokens Are Propagated Implicitly Okay so You Don't Have in C Sharp You'Ll Always Be Facing Is Very Nice but You'Ll Always See It's Explicit Plumbing of this Cancellation Tokens All the Way through It's Done Implicitly You Can't You Means It's a Whole Range of Mistakes You Can't Make with Regard to Cancellation That Does Come Up with with a Performance Cost in that There's a There's a There's a Two-Stage Process for Activating an F-Sharp Async You Compose Them and Then Activate Them and It Just Means that You Can't Quite Get the Same Level of Performance as You Can with Tasks So in Practice We Do Need Tasks
related talks
01h 08mWhy Every Day as a Developer Would Be Easier with F#
43mThe F# Path to Relaxation
01h 00mF# for the C# Developer - F#, the .NET Runtime, and Aesthetics
58mWhy you should use F#
50mWhat’s New in F# 5.0 & Beyond
25m.NET Languages PM and Friends Talk About F#
01h 01mThe F# Path To Relaxation
01h 01mF# as a Better Python
