Saw the notification and instantly clicked play! You have such fascinating guests!
@erikslorenz
3 жыл бұрын
Thanks Scott. I love learning a bit about the functional languages. I like that they creep into other languages for the things they excel at. Go with generics...literally day one I'm writing my own map reduce filter library
@RichardBrightwell
3 жыл бұрын
Fascinating to listen to this exchange. Thanks, Scott and Don!
@michaelwplde
3 жыл бұрын
Overall fascinating conversation, caveat nullness. But, hey, no one's perfect. Cheers, keep up the good work, SH!
@tonfilm
3 жыл бұрын
Thanks for the resources, it is great to see that F# is doing so well, definitely gonna have a look at computed list expressions! Big fan of Don Syme and what he has achieved. Years ago, F# was a big inspiration for VL, our visual live-programming language for .NET that we use in vvvv gamma. VL is also statically typed with automagic type inference and it also concentrates on data and has object-oriented features. Unfortunately, we couldn't keep nullness out of it because it references nugets and .NET assemblies directly (I wonder how F# deals with that?). It would be interesting to hear what a C#/F# programmer would make of it. So far, we don't have many users from a professional computer science background, maybe someone is up for a language discussion on our forums or matrix channel? Gonna watch the session with the python designer now...
@TheAndreArtus
2 жыл бұрын
F# allows nulls at the boundaries, it's just dispensed with as soon as possible. You can pass it to methods/functions from external APIs and it's general practice to either wrap in an Option or partition out the nulls as soon as possible so it does not pollute the rest of the code.
@MrKlimcio
3 жыл бұрын
I tried F# once. I did not go far, but I wished for C# to have the capability of declaring operators and a pipeline ;-)
@johnsimon8457
2 жыл бұрын
that's kinda what linq is, but that was kinda grafted onto the language. If a language is functional from day 1, pipelines are first class, they make it easy. I compare it to using a library like ramda in javascript compared to elm or purescript. Much more ergonomic exprience
@MrKlimcio
2 жыл бұрын
@@johnsimon8457 During the last 6 months I actually figured out that you don't need a pipeline in C#, you just need more extension methods :-) Now I'm worried with performance, cause extensions methods are just static methods :-)
@kienphan6436
2 жыл бұрын
Thank you for this!
@haha-hk9tx
3 жыл бұрын
Is anyone else seeing those lines or is my phone broken? 😂🤔
@shanselman
3 жыл бұрын
Ya his webcam is apparently a 90s VHS camera
@davidanthonyburton2253
3 жыл бұрын
Ha ha 🙂 lol !👍
@mellejobs7412
2 жыл бұрын
I have been interested in F# for its use in financial apps
@danielcroft7231
3 жыл бұрын
Hi Maybe you can help me. After creating a fillable form and emailing it the form windows were not interactable. Could you tell me what would cause this?
@danielledeveloper8352
3 жыл бұрын
Very in-depth interview! Love the detail ☺️ #NewSubscriber
@IRCtrader
3 жыл бұрын
Hi scott Please talk about bosque in hansleminutes
@AndersJackson
2 жыл бұрын
Should really go to the source, that is Ocaml. And yes, Ocaml (F#) is a much better language then GO, C# etc. Because if you don't manage data correct, you will not get that past compilation. Ocaml can generate byte code, but also native code and even Java Script, which will be typed checked. And as with F#, there are no NULL, and that is one of the biggest and most costly bug in Computer Science. You can look up the presentation from one of the Algol language designers which regret that it was allowed into the language. The really cool is the module system and code is composable and that you have Currying, that is when you call a function with to few arguments, you get a function back. Really powerful. And Ocaml is functional, object and procedural language. And OCaml now has parallel support from the start.
@levmatta
3 жыл бұрын
What books were mentioned? Also links to the sesion mentioned ?
@shanselman
3 жыл бұрын
Links in Desc and also at www.hanselminutes.com/799/learn-f-to-write-succinct-performant-and-correct-code-with-don-syme
@MladenMihajlovic
3 жыл бұрын
Don Teaches Guido F# | #dotNETConf: Focus on F#: kzitem.info/news/bejne/xmiAn4R9fF98ZHo
@michaelwplde
3 жыл бұрын
7:45 So, with that statement, 'nullness is a disaster for writing correct code'. But whose standard? By that argument, then remove the null keyword from the dotnet or language spec altogether, right. Of course, that's not likely to happen, now, is it? Measured by 'bugs', unit tests, integration tests, etc... Not having to do with nullness.
@ObserveRecordRepeat
Жыл бұрын
in my opinion: talking about any language without code examples is useless
@michaelwplde
3 жыл бұрын
7:00 Strongly disagree. Null may be intentional. That's what the operators are there for. Never ever let someone tell you one ought not to reason about nullness, or expectations one way or another about a thing 'being there'. 7:30 Wow, nulls corrupt? No they do not. It's what you DO with that, how you REASON about it, that is the issue. Again, lean into the operators for best experience.
@PhilBachmann
3 жыл бұрын
Yes people are allowed to reason about what a Null means in a particular context, but they may all reason differently - hence the problem. F# allows (indeed kinda forces) a programmer to state unambiguously why something is not there (eg. missing/error/uninitialised) and other programmers reading that code can't help but benefit from that.
@michaelwplde
3 жыл бұрын
@@PhilBachmann Clarity is always helpful. But it is not in the language designers' purview to dictate to an architect his/her intent. That's my poteition on that debate. Leave it to the teams to reason about it. We have the tools, operators, etc, to get the job done. That is sufficient.
@PhilBachmann
3 жыл бұрын
@@michaelwplde I think Don Syme couldn't agree more that it is "Not in the language designer's purview to dictate to an architect his intent" - which is why he says C#/Java and the rest are wrong to shove null down your throat.
@anonymousmokona8541
2 жыл бұрын
There is nothing intrinsically wrong about the concept of ‘null’. The issue being tackled here is ‘encountering null where it was not meant to be’. Instead of having pretty much everything be nullable, it’s an opt-in thing and can be expressed when intentional (via the Option monad) - nullability of a value is encoded into the type system and thus proper handling of those ‘maybe null’ values is enforced. The fact of the matter is that more often than not it is not intentional and people just forget about the fact that a value might be null. And this ‘unintentional nullability’ creates bugs and pollutes the code with unnecessary null-guards and assertions.
@michaelwplde
2 жыл бұрын
@@anonymousmokona8541 Yeah, no. My beef with that agenda is simple; the compiler does not have the contextual knowledge to make that decision. That's what I have my team for, to use their GOD given minds and make smart choices, use the appropriate operators, etc.
Пікірлер: 31