3 ms·
Never played with OCaml, but I spent the past few days learning about F# (my understanding is that it inherits a lot from OCaml). Tooling seemed great: I used J
by emacdona 1y ago
Never played with OCaml, but I spent the past few days learning about F# (my understanding is that it inherits a lot from OCaml). Tooling seemed great: I used JetBrains Rider; VSCode and Visual Studio are also options. Support seemed great: good official docs; good book choices. Ecosystem seemed great: entire .Net class library.
I’m been on the JVM for 20+ years, but an opportunity came up to leverage some of my other experience to get some CLR work… and I dove in.
- sealeck 1y agoF# tooling is much, much better than OCaml's
- akkad33 1y agoI used to fiddle with F#, its tooling is good, but it's interweaved with too much dotnet c# cruft and also there's the dark shadow of Microsoft. I wish it had zero cost abstractions like Rust because most things you write in F# is also slower than C#
- rpeden 1y agoF# has diverged from OCaml a bit, but they're still very similar. I mentioned in a top-level comment that F#'s "lightweight" syntax is basically what I want when I use OCaml. I know ReasonML is a thing, but if I'm writing OCaml I don't want it to look more JavaScripty - I prefer syntax like "match x with" over "switch(x)" for pattern matching, for example. I know some people dislike the way F#'s newer syntax makes whitespace significant, and that's fair. But the older verbose syntax is there if you need or want to use it. For example, something like let things = let a = 1 in let b = 2 in let c = 3 in doSomething a b c should still work in F# like it would in OCaml.
- yawaramin 1y ago> F#'s "lightweight" syntax is basically what I want It's actually not that far off. For definitions that don't need to be self-referential you can use 'and': let things = let a = 1 and b = 2 and c = 3 in do_something a b c
- rpeden 1y agoThank you! I knew this, but of course blanked on it when I came up with an Ocaml example. There are a few other places I prefer F#'s syntax, but overall it's not the reason I'd pick F# over OCaml for a project. It's usually mostly about needing to integrate with other .NET code or wanting to leverage .NET libraries for specific use cases. Can't lose either way - they're both a please to work with.