F# for the C# Developer - F#, the .NET Runtime, and Aesthetics - Scott Arbeit - NDC Porto 2023

  Рет қаралды 3,332

NDC Conferences

NDC Conferences

Ай бұрын

This talk was recorded at NDC Porto in Porto, Portugal. #ndcporto #ndcconferences #dotnet #developer #softwaredeveloper
Attend the next NDC conference near you:
ndcconferences.com
ndcporto.com/
Subscribe to our KZbin channel and learn every day:
/@NDC
Follow our Social Media!
/ ndcconferences
/ ndc_conferences
/ ndc_conferences
F# is a beautiful programming language, but learning F# when you're already familiar with C# can seem like a big task. In this session, we'll take examples from real-world F# code, and see what that code decompiles to in C#, giving you an essential low-level bridge between the languages through the .NET Runtime and IL byte-code.
While some basic functional constructs will be shown, the goal of this session is not to teach category theory and monads; it's to show how functional constructs in F# get translated into C# constructs that you're already familiar with. We'll highlight the benefits of using F# to "say" those things in succinct, robust, beautiful ways that help you write clear, maintainable code, and show how to bring some of those constructs back into C#.
At the end, you'll have an appreciation of some of the ways F# lets you write beautiful, expressive code that takes full advantage of everything .NET has to offer. Even if you never write F# yourself, this session will give you tools and new perspectives on C# that you can start applying to your projects right away for better, cleaner, easier-to-test code.

Пікірлер: 15
@antyadev2876
@antyadev2876 Ай бұрын
Very good talk about F#. F# needs more love.
@obilykua
@obilykua 13 күн бұрын
Hi Anton. Few years ago I wanted to work with you on F# and applied to trading company where you worked. Unfortunately some HR had some weird requirements that I decided to ignore. Couple years later I started working for Microsoft and had privilege to be consulted by Scott Arbeit to use F# with DAPR cloud agnostic microservices. However you, Anton also inspired me to use F#. I just exited how small world may be specially when you are fun of F# :)
@michielnass4836
@michielnass4836 12 күн бұрын
F# is awesome, great talk!
@WillEhrendreich
@WillEhrendreich Ай бұрын
Yeeeeeaaaaaahhh, moar #fsharp. Let's go. Keep it up, let's see the good stuff.
@obilykua
@obilykua 13 күн бұрын
Great talk, Thanks Stott.
@TheRedbeardster
@TheRedbeardster Ай бұрын
Very nice to see a picture from Russian folk fairytales :)
@pierre9368
@pierre9368 Ай бұрын
So what for you need F# if C# is fine & cool?
@stefano_schmidt
@stefano_schmidt Ай бұрын
I wish I had this F# in my C# (would like to handle errors as values, rather than throwing exception left and right😅)
@chrisnuk
@chrisnuk Ай бұрын
There are a few libraries that give you that functionality. If you don't want to add third-party libraries you could return a tuple or create data structures that do the wrapping. If you go the latter route you'll probably start writing Source Generators to avoid writing more code and if you do, look at the source code of the third-party libraries. There are some very good ideas 😀
@konstsh2240
@konstsh2240 Ай бұрын
In F# it is not that flawless actually, out of the box you will have to wrap everything in Result functions, which will quickly become annoying. Somebody will say that you should use computation expressions for that, but the amount of builtin CE's in F# is very limited, there is no ones for Result and Option types, and CE's do not compose, so if you find yourself in need to operate in async of result or result of async you will have to go and look for specific CE. Also there is no custom bindings like in OCaml or error propagation operator like in Rust to just stay on happy path without CE's. So my impression was that though it is an interesting approach and F# talks mention it all the time the actual state of language doesn't provide enough support for one to feel confident enough with that choice.
@FilipCordas
@FilipCordas Ай бұрын
Good luck with living with unmaintainable mess. Biggest f# project used by Walmart is being rewritten to Java because one of the biggest companies in the world couldn't find people to fix bugs on it because it was such a mess.
@obinnaokafor6252
@obinnaokafor6252 Ай бұрын
f# errors are bunch of reference types wrapped in result. and f# is not really that good to be sincere
@michielnass4836
@michielnass4836 12 күн бұрын
@@konstsh2240 Async is for IO, not for the domain. Scott Wlashin has a great video on that. Yes we have to wrap everything and that can feel tedious but when it's time to refactor, it's a bliss.
@FilipCordas
@FilipCordas Ай бұрын
Didn't fast f# guy switch to Odin?
@WillEhrendreich
@WillEhrendreich Ай бұрын
He did switch his fastest portions to Odin. He writes the glue code/shell in fsharp still. Odin, by it's nature, is just so much better at the low level hardware and memory control that it blows away anything dotnet can accomplish. But fsharp is just about the best development experience a dev can get, as far as I can tell.
Get old, go slow, write code! - Tobias Modig - NDC Porto 2023
52:39
NDC Conferences
Рет қаралды 9 М.
Lies Developers Tell Themselves - Billy Hollis - NDC Porto 2023
1:00:50
NDC Conferences
Рет қаралды 7 М.
LA FINE 😂😂😂 @arnaldomangini
00:26
Giuseppe Barbuto
Рет қаралды 19 МЛН
【獨生子的日常】让小奶猫也体验一把鬼打墙#小奶喵 #铲屎官的乐趣
00:12
“獨生子的日常”YouTube官方頻道
Рет қаралды 26 МЛН
Writing async/await from scratch in C# with Stephen Toub
1:06:02
Programming Language Extension Without Obfuscation (BOBKonf 2024)
14:22
You can't do that with JavaScript! - Espen Sande-Larsen - NDC Porto 2023
58:30
Don't throw exceptions in C#. Do this instead
18:13
Nick Chapsas
Рет қаралды 245 М.
Опасная флешка 🤯
0:22
FATA MORGANA
Рет қаралды 516 М.
Как открыть дверь в Jaecoo J8? Удобно?🤔😊
0:27
Суворкин Сергей
Рет қаралды 880 М.
Самый маленький игровой ПК
0:46
ITMania - Сборка ПК
Рет қаралды 533 М.
Broken Flex Repair #technology #mobilerepair
0:55
ideal institute aligarh
Рет қаралды 15 МЛН