F# Survey 2015 Results
docs.google.com
docs.google.com
My disappointments so far are super frustrating though. Like Jarcane, I've found quantity of documentation to be an issue. Most tutorials assume that you a) already know C# and b) are using VisualStudio, and the whole ecosystem is still very Windows-centric. It is nearly impossible to learn the language without an IDE, and all of the non-VS IDEs are pretty crappy in terms of F# support. The whole msbuild or whatever it is behind the scenes doing the building is completely opaque and incomprehensible. The compilation order issue (you basically have to tell the build system the order of compilation, with no cyclical dependencies) is pretty difficult to understand and sometimes very difficult to work with. It also makes code organization very unintuitive (you can't put code in directories?!).
All in all, it is pretty frustrating, but at least they got the language right. The frustrations will likely go away in time, so I'm willing to put up with them for now. Maybe I'll get good enough at the language to actually fix them :)
I'm learning Scala now and found that it's relatively approachable without knowing Java, but Clojure was definitely easier to approach from the "never used Java" perspective. But it seems like F# is a much bigger leap to make for someone with no MS stack experience than Scala/Clojure for someone with no JVM experience.
It seems like Scala and F# are the only real choices for typed functional languages in relatively common use in industry (in comparison to Haskell and OCaml).
Learning on anything other than Visual Studio will probably be challenging. You know you can get full Visual Studio 203 for free now? https://www.visualstudio.com/en-us/products/visual-studio-co...
[1] http://blog.zolomon.com/development,emacs/2015/03/25/emacs-o...
There's scattered bits here and there elsewhere, but none actually present a complete picture of the process. They wind up resembling, as one survey respondant suggested, feeling like the old "how to draw an owl": Step 1) draw the eyes, Step 2) Draw everything else.
"Real World Functional Programming" - https://msdn.microsoft.com/en-us/library/vstudio/hh314518%28...
Some higher level presentations - https://channel9.msdn.com/Tags/fsharp
Then there are the Erik Meijer teaching FP series, even though they are based on Haskell, given their ML common roots is also a good series to follow.
http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Func...
http://fsharp.org/about/learning.html does not list them, and going from http://fsharp.org/about/index.html via the "Language Reference" link to https://msdn.microsoft.com/en-us/library/dd233181.aspx doesn't list RWFP in the sidebar anymore.
https://cockneycoder.wordpress.com/2014/09/03/lightweight-we...
The F# News blog has had many applications on it:
http://fsharpnews.blogspot.co.uk/2010/12/most-popular-f-samp...
So has Phil Trelford's blog:
And many others.
Majority of providers in FSharp.Data [1] are idiomatic F# code (also contains imperative & a bit of C#ness to use lib outside F#)
Microsoft doesn't believe anyone wants to make apps in F#; Visual Studio doesn't even come with templates for it. You're expected to use F# to write libraries like Fsharp.Data, and write your app code in C#.
If I wanted to code in C#, I'd code in C#, but I don't.
open System.Windows.Forms
[<EntryPoint>]
let main argv =
let form = new Form()
let button = new Button()
button.Text <- "Click me"
button.Click.Add (fun _ -> MessageBox.Show "Hello" |> ignore)
form.Controls.Add button
Application.Run form
0https://code.msdn.microsoft.com/site/search?f%5B0%5D.Type=Pr...
My "WPF Image Cropper" sample might be interesting to you - pure F# WPF via XAML type provider. I am not a GUI dev, though, so it's probably crap design :)
And then there is also WebSharper http://websharper.com/
I haven't come across any complete examples for simple web applications without too many dependencies that you can easily learn from
There was also concern that "valuation of the company might tank due to use of non-standard code".
I think these are incorrect ideas. I'd take some pay cut to work on F# code instead of C#. Everytime I write anything in C#, I keep thinking how easier and shorter it'd be in F#. Just this week, we lost a whole day to a mutation bug:
inputParam.Bar = Baz // oops, now we just updated the callers notion of that .Bar property
Yeah, we coulda caught it in code review. We could have tried to make things readonly, but C# 5 still doesn't have a simple readonly record concept like F#.I'd guess that if you advertise an F# job you're going to get more good replies, because people want to work on F#. And you can still leverage someone's knowledge of .NET, the frameworks and libraries and all that. So it's less risky than using, say, Haskell, where you're all alone - F#'s still compiling and consuming IL even with all its magic on top.
When I was 7 years younger, I predicted that obviously F# will take over at least 20% of C# development 2010 - it was just too awesome for people to ignore. There was no reason _not_ to use it apart from legacy or bad management, but no one could ignore such benefits. I have, uh, recalibrated since.
(The biggest technical hurdle I had was frameworks that didn't target .NET, but targeted C#. They'd depend on undocumented output of the C# compiler expression trees. Those were a bit of a pain to fix, but not too hard. Another annoying thing is the MVC teams decision, since C# doesn't have tuples, and dictionary creation syntax is too clunky, to pass arbitrary types as parameters (@Html.Foo(new { this="is", just="some", anon="type" }). Then they go using reflection to inspect the properties of the type. That's just dumb and has caused tons of bugs. And would have been avoided had C# a nice way to write lists or tuples or something. But the MVC team wanted it to "feel like Ruby". This isn't _hard_ in F#, it just looks as bad as it is.
March Headline: All time high for F# at position 11
Microsoft's programming language F# is about to sneak into the top 10. It is not clear why F# is gaining popularity. Possible reasons might be the F# web-programming framework WebSharper and the promotional work of the F# Software Foundation as Tomas Petricek (author of "F# Deep Dives") stated in an interview about 2 weeks ago.
The Tiobe score for F# improved by +0.23% (which might be from March 2015 to April 2015).
afaict the data tables for previous months are unavailable, and not recoverable from the Internet Archive because of the way the data is displayed.
April Headline: Java back at the top!
Java is back at the top of the TIOBE index after one and half year. Androids ongoing success is probably the major reason for Java's revival. The Java language has been in slow decline for many years now, mainly due to its waning foot print in the enterprise server back end market. Since October last year the increasing demand on Java Android programming has exceeded this decline, thus pushing Java more than 3% during this period. Another interesting move this month concerns Scala. The functional programming language jumps to position 25 after having been between position 30 and 50 for many years. Scala seems to be ready to enter the top 20 for the first time in history.
I guess you gotta be anal to do data.
https://www.coursera.org/course/proglang
I would say that if I can use F# Data or Deedle on a project, I will. Those tools totally make it worth learning a little F#.
http://bluemountaincapital.github.io/Deedle/ http://fsharp.github.io/FSharp.Data/