~/talk

F# Code I Love

Talkat NDC Sydney 2019 · 2019-10-14..10-18· [functional-programming, dotnet]
slides:none on file

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

  1. 0:00Start
  2. 4:36What Makes a Good Programming Language
  3. 8:54What Is F Sharp
  4. 17:55Simon Cousins
  5. 20:39F-Sharp Advent Calendar
  6. 21:23Examples of F-Sharp Code
  7. 21:44Foundations of the F-Sharp Language Design
  8. 29:18Functional Programming
  9. 32:53Composition
  10. 33:34Giraffe
  11. 35:29Back Pipe Operator
  12. 38:10Objects
  13. 39:01Problem with Object-Oriented Programming
  14. 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
  15. 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
  16. 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
  17. 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
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.