top | item 44400829

(no title)

hyper57 | 8 months ago

Loved using OCaml for a compiler course at uni when I was a student. But I've always felt that the tooling side is pretty rough, especially on Windows. Opam recently added Windows support, but it involves installing MinGW, and when following the official docs https://ocaml.org/docs/installing-ocaml#install-platform-too... the process breaks down with an error when trying to install utop due to a path separator error, which one has to fix manually (at least that was the case last time I tried). By comparison, installing Python or Rust on Windows is a breeze.

discuss

order

emacdona|8 months 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.

rpeden|8 months ago

F# 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.

sealeck|8 months ago

F# tooling is much, much better than OCaml's

akkad33|8 months ago

I 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#

lor_louis|8 months ago

Even in Linux, I'd say the tooling is a bit rough, dune and the new lsp are going in the right direction though.

jact|8 months ago

Dune is a very powerful and good build system — it can do some very magical and useful things. The only problem is most of these useful features are very poorly documented…

BrawnyBadger53|8 months ago

The sluggishness of setting up new opam switches is definitely limiting in my experience