5 ms·
Not to mention the recent performance gains from adding Span<T> in .NET Core 2.1. I've used F# in a few professional projects before and that language is certa
by cbHXBY1D 8y ago
Not to mention the recent performance gains from adding Span<T> in .NET Core 2.1.
I've used F# in a few professional projects before and that language is certainly underrated. I used to work in Microsoft's DevDiv and everyone knew it was criminally underfunded. I think if it had OCaml-style modules and Microsoft threw more weight behind it could take off big time.
- nicoburns 8y agoIndeed, it was learning Rust that led me to being interested in learning C#, and Span<T> is basically the equivalent of Rust's &[T] slices, which are super useful for avoiding copies. It's pretty cool that C# has things like these and stack-allocated structs, which let me carry over a lot of the performance optimizations I might use in Rust.
- platz 8y agoDon Syme will never allow ocaml-style modules
- Scramblejams 8y agoWhy not?
- dunefox 8y agoI think it might make interop harder.
- clausok 8y agoDon Syme, on omitting ocaml-style modules from F#: In addition, there was the question what not to implement. A notable omission from the design was the functorial module system of OCaml. Functors were a key part of Standard ML and a modified form of the feature was included with OCaml, a source of ongoing controversy amongst theoreticians. The author was positively disposed towards functors as a “gold standard” in what parameterization could be in a programming language but was wary of their theoretical complexities. Furthermore, at the time there were relatively few places where functors were used by practicing OCaml programmers. One part of the OCaml module system – nested module definitions – was eventually included in the design of F#. However, functors were perceived to be awkward to implement in a direct way on .NET and it was hard to justify their inclusion in a language design alongside .NET object programming. The Early History of F# https://fsharp.org/history/hopl-draft-1.pdf https://fsharp.org/history/hopl-draft-1.pdf
- AdeptusAquinas 8y agoAdding it to dotnet core by default certainly helps I think. I didn't start learning it until recently, but when I did having it part of the tools I use every day was awesome.