The F# Path to Relaxation [video]
youtube.com
youtube.com
Computation expression and type provider are awesome features, and the language itself is really fun and easy to write/refactor/understand (this mean code work as expected at first run usually) and help you write correct code
an good "why f#' http://fsharpforfunandprofit.com/why-use-fsharp/
More info
- user groups list http://c4fsharp.net/groups.html
- browser http://www.tryfsharp.org/
- more info fsharp.org
- open source http://github.com/Microsoft/visualfsharp (vs stuff) or http://github.com/fsharp/fsharp (cross plat)
The .Net ecosystem is great. I hope more shops adopt F# in the future.
That's exactly what I have found to be true as well. I spend practically all of my coding time implementing things rather than trying things. That has spilled over into my use of C#, JS and Python too.
I'm hoping I can slowly introduce F# at work, until one day, a few years later we look at all our code and realize it's mostly F#.
I've taken the advice of F# For Fun and Profit (http://fsharpforfunandprofit.com/series/low-risk-ways-to-use...) and started writing various tools in F#.
More and more places that use C# are opening up to using F# where it makes sense. So any time you see C# in a job description that sounds interesting it's worth asking about F#.
Apart from that, multithreading in OCaml is a bit like on its on Python, IIRC, with GIL taking the sting out of it. But I am sure the researchers in France and elsewhere would bring true multithreading / multicore support to OCaml sooner rather than later.
More on what OCaml gets right: https://realworldocaml.org/ (which seems to be down right now).
F# as well, via mono -aot, NGEN and the upcoming .NET Native toolchain.
> But I am sure the researchers in France and elsewhere would bring true multithreading / multicore support to OCaml sooner rather than later.
This is being worked on. "OCaml 2014: Multicore OCaml"
It also has functors (they let you parametrize a module over other modules), which F# doesn't, and you can do AST rewriting at compile-time via PPX (don't know if F# has anything like that). On the other hand, F# has access to the .NET ecosystem (which is admittedly larger than the OCaml one, though it suffers from enterprisitis), and has some nice goodies like type providers.
- consume and produce .net libraries (everything c# can do except NullReferenceException)
- type providers, explore and use an api, strogly typed but easier than dynamic (example http://blogs.msdn.com/b/dsyme/archive/2013/01/30/twelve-type... or http://fsharp.github.io/FSharp.Data/library/Freebase.html or http://fsharp.github.io/FSharp.Data/library/CsvProvider.html)
- computation expression, easier to create like attempt/maybe and some builtin like async/query
- concurrency and async (battle tested multicore/threading/async using .net runtime)
- light syntax as default, like python (whitespace). ocaml like syntax can be used but is not idiomatic
- .net runtime and mono, really good vm
- overloading operators (operators are function), so + instead of multiple function like + and +.
try it
- user groups list http://c4fsharp.net/groups.html
- browser http://www.tryfsharp.org/
- more info fsharp.org
- open source http://github.com/Microsoft/visualfsharp (vs stuff) or http://github.com/fsharp/fsharp (cross plat)
There are two "Javascript transpilers" available, WebSharper and FunScript, both capable of compiling a large subset of F# to JavaScript. WebSharper offers a very attractive "server mode" as well. And the new - soon to be released - version 3.0 of WebSharper makes that into a very large subset and supports features like source maps as well.
In short, F# and OCaml are similar but distinct languages. Both are interesting and worth looking into, each in its own right.
So, not really.
Both can do oop Syntax differ a bit. F# is whitespace significant like python by default, or ml like with and option
Saying ripoff in languages's design is stupid