967 karma · joined November 7, 2012
As for use in production, I agree that it can be a fair barometer for "utility", but I strongly disagree that it's a good measure of "quality" (as in, technical design choices). We live in a path-dependent world rife with network effects, so quality per se just doesn't matter all that much, and non-technical factors like "being backed by a major corporation" can matter a lot. I'm sure there's more Visual Basic in the wild than Go, but I'd hardly use that to argue that it's a superior language, or that Go proponents are "abstract language tourists".
[1] http://research.microsoft.com/en-us/um/people/akenn/generics...
And to your last sentence, use in production is not a good measure of language quality (except in a tautological sense), because many non-technical factors strongly affect popularity.
To your later question, while F# and OCaml share a common core, there's lots of F# code that won't compile as OCaml and vice versa, and units of measure are one such example. The syntax for measure-annotated types is not valid OCaml syntax.
By being built into the language, units of measure in F# work naturally with type inference (and definitions can be measure-generic), so:
let weirdOperation (x:float<_>) (y:float<_>) = x * x + y * y * y
will be inferred to have type x:float<'u ^ 3> -> y:float<'u ^ 2> -> float<'u ^ 6>Note also that this blog post is about accepting contributions to the Visual Studio IDE components for F#, not for the language itself (which has been open source for many years, and has already been accepting contributions from the community for a little while).
expanse -> expense
[1] http://research.microsoft.com/apps/video/default.aspx?id=194...
[1] https://twitter.com/migueldeicaza/status/452099923157065728