4 ms·
I've previously used Ocaml at my last job and use Scala at my current one, it's interesting that F# (just judging from this blog post) looks more similar to Oca
by mcintyre1994 8y ago
I've previously used Ocaml at my last job and use Scala at my current one, it's interesting that F# (just judging from this blog post) looks more similar to Ocaml than to Scala - like they've more aggressively pulled out syntax and embraced partial application etc.
I'd always assumed F# was to C# what Scala is to Java - and I think that probably does represent their design goals, so I wonder what the different considerations were that led to them being relatively quite far apart.
- pjmlp 8y agoF# is the evolution of ML.NET developed at Microsoft Research.
- smcl 8y agoIs that right? I know they have a machine learning library called ML.NET ... but it seems weird to me that they’d recycle the name.
- jweir 8y agoML (Meta Language) vs ML (Machine Learning). It is confusing. When I hear ML, I think the language (cause I am "old"), but it is usually the process (Machine Learning) cause that is what is hot. https://en.wikipedia.org/wiki/ML_%28programming_language%29 https://en.wikipedia.org/wiki/ML_%28programming_language%29
- smcl 8y agoRight - I'm pretty familiar with Ocaml so the distinction is pretty clear on my end. I'm just a bit suspicious of this one thing in the comment I replied to.
- pjmlp 8y agoI got it a bit wrong. It was Caml.NET. https://www.microsoft.com/en-us/research/project/f-at-microsoft-research/ https://www.microsoft.com/en-us/research/project/f-at-micros...
- mcintyre1994 8y agoThat makes sense, thanks! :)
- tigershark 8y agoF# was actually OCAML for .NET. Until VS 2010 you had to actually use the #light attribute to be allowed to break the compatibility with ocaml.
- bunderbunder 8y agoBut F# tries to stay very close to its functional roots, and describes itself as "functional first". By contrast, Odersky has always been clear that Scala tries to be a pragmatic mix of things from OOP and FP. I also, personally, feel like F# has a tendency to be a bit more conservative about adding language features. For example, Don Syme has been very resistant to adding typeclasses to F#, because of how it would interact poorly with the rest of .NET. I love me some ad-hoc polymorphism, but, as someone who is currently working in a mixed Scala/Java codebase and frequently stumbles over the incompatibilities between Scala and Java, I've come to appreciate that decision in hindsight.