Hacker News new | ask | show | jobs
by Associat0r 4739 days ago
Why over OCaml?

* Easy multi-platform targetting and platform bindings without fuss.

* Mature and supported BCL and 3rd party libraries

* Access to the .NET ecosystem tooling like profilers, debuggers etc

* Easy to use Native FFI without having to write boilerplate C stubs

* Active Patterns

* Built-in Units of measure without perf cost.

* Built-in support for Unboxed Structs with Layout control and operator overloading

* Unboxed floats, not just for 64 bit ones syntactically present in arrays

* Built-in control over inlining

* 32 bit ints not 31

* Type Providers allowing typed access to untyped data and much more

[F# 3.0: Data, Services, Web, Cloud... at Your Fingertips] (http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV338)

http://www.navision-blog.de/2012/03/25/typed-access-to-json-...

http://www.navision-blog.de/2012/03/22/wpf-designer-for-f/

http://blogs.msdn.com/b/dsyme/archive/2012/08/03/access-stat...

* Built-in support for runtime code quotions, with code inspection

* Built-in support for runtime reflection

* OOP abstractions without perf loss

* Built-in support for Operator overloading

* Polymorphic print function

* Mature Multicore friendly runtimes

* mutable local variables on the stack

* Cleaned up offside-rule indent based syntax with optional OCaml style override.

* Partial application of Discriminated Unions like List.map Some [1; 2; 3]

In OCaml you have todo List.map (fun x -> Some x) [1; 2; 3]

* Methods on Records and Discriminated Unions

* Extension Methods

* Built-in syntax for Array slicing

* Built-in syntax for sequence based for loops

* Built-in syntax for List / Array range construction like [1 .. 10]

* Extensible computation expression syntax for more than just monads.