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