top | item 46953996

(no title)

olivia-banks | 20 days ago

I use OCaml, occasionally, especially for data/transpiler work. I've always wanted to try F#, but it being .NET sort of scares me away. I've always sort of admired the pragmatic beauty of the OCaml ecosystem--at least as much as one can call an ML-derivative 'pragmatic'--though I don't get that same feeling from F#.

Task expressions look neat though, and might give me a reason to try.

discuss

order

tombert|20 days ago

As somewhat of a functional programming nerd, and a perpetual user of Linux and Unix, I think F# is really very cool.

I am one of the happy few who has had paying work with F# when I worked at Jet and Walmart. I came in with primarily a Haskell background, and so I was expecting to hate it because I hate most things that Microsoft has attached its name to, but I ended up really liking it.

Just a note, while its syntax is similar to OCaml, its semantics are a bit different. You don't have the cool OCaml functors in the same way, but you do have Haskell-style "do" notation with monads, which is nice.

I haven't used OCaml in awhile so I can't go into a lot of detail on the differences between them, but the only things I really missed from Haskell are monad transformers and software transactional memory.

I definitely think it's worth playing with for an afternoon.

olivia-banks|20 days ago

From when I (tried to) learn Haskell, I thought `do` was cool, so that's interesting to hear. I'll give it a shot!

sieep|20 days ago

.NET is really good nowadays & does well cross platform, absolutely worth trying.

olivia-banks|20 days ago

I have to use it (C#) for a required class in college, and I've been pleasantly surprised. I'm always a little suspicious of platforms backed by large companies, but I think at this point that's sorta an unavoidable reality.

mulmen|20 days ago

Is it fully open source so it can survive being abandoned by Microsoft?

ibejoeb|20 days ago

It's a very practical ML-family language. It runs on Mac, Windows, and Linux. It doesn't really sacrifice anything, either. The last thing I delivered with it was a network health utility, which did UDP and TCP sockets and platform API calls very cleanly. It's really not a toy language. Distribution is cool too, because you can build for a system with the runtime installed or build a single-file executable. My suggestion: build a utility program with it for your own purposes and if you're productive with it.

olivia-banks|20 days ago

Interesting! We're building a bindings generator for a C++ library, and the current prototype is written in OCaml. I might shift it over to F# and see what's up.