On Thursday 04 February 2010 23:53:19 Base wrote:
> Hi John -
>
> Thanks for a very intersting response.
>
> Do you have any real experience in F#?

Yes. I consulted for Microsoft on F# twice, wrote both the first and the most 
recent books on F#, wrote and published the world's first and second 
commercial applications written in F# and am an editor and author for the 
F#.NET Journal.

> I am really interested in 
> hearing your opinion/thoughts on it relative to other functional
> languages (you appear to be quite well versed).

The main thing that sets F# apart from the other functional languages is that 
it is officially backed by a huge corporation: Microsoft. They have put a lot 
of time and money into F# (almost 10 years in the making and ~10 people on 
the F# team now) and it really shows. F# is comparatively polished with a 
nice IDE compared to other functional languages, although it still lacks 
support for some features that C# has like GUI designer integration and WSDL.

F# is really bred for interactive technical computing. They took the core of 
the OCaml language, which was known for being pragmatic and predictably 
efficient, and made it a lot faster and added the good features from other 
languages like Python and Haskell as well as new features like parallelism. 
F# has first-class interop with the whole of .NET and, in particular, because 
it is statically typed can easily be used to write components for C# users to 
consume.

> It looks very 
> interesting, but I am frankly having a hard enough time with Clojure
> to spend my time on trying to add more to my plate.

In the language zoo, F# and Clojure are very different (think C# vs Jython). 
However, Clojure is similar in an unusual methodological way from the point 
of view of functional programming: it is designed from the ground up to be 
pragmatic. Most functional languages (e.g. OCaml, Haskell, Scala) are 
designed by researchers for the purposes of generating papers and grant 
funding. Consequently, they usually either have no support or poor support 
for mundane but essential features like interoperability and they do not 
absorb good features from elsewhere (because it would not constitute 
research). In contrast, Clojure and F# are designed and implemented by real 
world programmers for real world programmers and are not afraid to borrow 
good features from other languages.

>From a business point of view, this pragmatism means a healthier and wealthier 
market of users who depend upon the language. That is reflected in the 
funding (the Industrial Haskell Group failed to garner a single new 
subscriber since its inception, the CAML Consortium garnered a dozen or so 
users over several years but could not even fund a single developer whereas 
Rich Hickey just had to ask his community to get complete funding and Steve 
Ballmer is throwing resources at Microsoft).

Having tried both the academic and the pragmatic languages, I must say that I 
really prefer not only the pragmatic tools but also the kinds of people who 
gravitate around them. I much prefer reading about real users and their 
experiences trying to apply technology to solve important problems, rather 
than reading endless articles about scalably parallelized Fibonacci functions 
and rigged language comparisons.

-- 
Dr Jon Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/?e

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to