13 ms·
F# Survey 2015 Results
- _stephan 11y agoIf you have used F#, you can take the survey here: http://fsharpworks.com/survey.html http://fsharpworks.com/survey.html
- jarcane 11y agoIt's interesting to see that a lot of the respondents wrote basically the same thing I did: the documentation for actually making even a simple application in pure F# is basically non-existent.
- nbevans 11y agoThat's not true. There are loads of web learning resources for it.
- jarcane 11y agoI literally know of only a single pure F# application tutorial on the internet, Scott W.'s Calculator, and the style reads more like Java than any idiomatic FP code I've ever seen. 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.
- pjmlp 11y agoFrom Microsoft itself "Real World Functional Programming" - https://msdn.microsoft.com/en-us/library/vstudio/hh314518%28v=vs.100%29.aspx https://msdn.microsoft.com/en-us/library/vstudio/hh314518%28... Some higher level presentations - https://channel9.msdn.com/Tags/fsharp 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-Functional-Programming-Fundamentals http://channel9.msdn.com/Series/C9-Lectures-Erik-Meijer-Func...
- mineo 11y agoThis might sound a bit stupid, but I was looking into F# a while ago (26 days ago, if the timestamps of the few files I wrote don't lie :-) ) and now I'm wondering I could have found those things (especially RWFP because I usually don't like learning from videos) if I start on fhsarp.org? http://fsharp.org/about/learning.html http://fsharp.org/about/learning.html does not list them, and going from http://fsharp.org/about/index.html http://fsharp.org/about/index.html via the "Language Reference" link to https://msdn.microsoft.com/en-us/library/dd233181.aspx https://msdn.microsoft.com/en-us/library/dd233181.aspx doesn't list RWFP in the sidebar anymore.
- isaaca 11y agoI did a post last year on writing websites in F#. I personally recommend doing everything up to the API layer in F# e.g. restfully, and sticking to something like typescript on the client side. If you want a full F# end-to-end story check out something like Websharper or one of the F# <> JS cross compilers. https://cockneycoder.wordpress.com/2014/09/03/lightweight-websites-with-f/ https://cockneycoder.wordpress.com/2014/09/03/lightweight-we...
- jdh30 11y agoThere are 182 articles in the F# Journal. The F# News blog has had many applications on it: http://fsharpnews.blogspot.co.uk/2010/12/most-popular-f-samples.html http://fsharpnews.blogspot.co.uk/2010/12/most-popular-f-samp... So has Phil Trelford's blog: http://trelford.com/blog/ http://trelford.com/blog/ And many others.
- artmageddon 11y agoPerhaps there are now, but several years ago I felt that it was hard to come by.
- sago 11y agoRather than disagreeing, it might be helpful if you suggest a few complete (but simple) application tutorials written in F#. I'd be interested in that too.
- deleted 11y ago[deleted]
- tegeek 11y agoWhat do you mean pure F#? Majority of providers in FSharp.Data [1] are idiomatic F# code (also contains imperative & a bit of C#ness to use lib outside F#) 1. http://fsharp.github.io/FSharp.Data/ http://fsharp.github.io/FSharp.Data/
- jarcane 11y agoWhat I mean is writing a desktop application without falling back to using C# for all the front-end code and relegating F# to being a glorified DSL for data processing. 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.
- tegeek 11y agoA desktop app on Windows either uses WPF or WinForms. In either case F# doesn't stop at all. In fact I would say that building WPF desktop on F# is more intuitive than C#.
- louthy 11y agoopen 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 0
- tegeek 11y agoI would also like to add that F# is functional, imperative & OOP language. If any program uses any combination of these, it is still the F# code. But I agree there has to be more taste of "F#" since it is a functional first language.
- eggy 11y agoI love F#, and I was looking at Idris for a more functional program verification, theorem-proving language. Then I stumbled upon F* (Fstar) - https://www.fstar-lang.org/ https://www.fstar-lang.org/ It is like F# but uses the Z3 solver, and is very ML like.
- spikej 11y agoI find more trivial examples and exploratory code out there (using type providers, etc), than complete examples that show best practices -- at least for web development. I haven't come across any complete examples for simple web applications without too many dependencies that you can easily learn from
- fsloth 11y agoExpert F# 3.0 by Don Syme et all contains quite a lot of example code, including a simple web app using asp.
- fsloth 11y agoIt's the same learning path as other MS stuff - by the books- which are pretty swell. http://fsharp.org/about/learning.html http://fsharp.org/about/learning.html
- jast 11y agoHave you looked at http://fsharpforfunandprofit.com/ http://fsharpforfunandprofit.com/ ? This site contains lots of useful information and would be enough to get started. Another possibility is to read a few books, e.g., Expert F# 3.0, F# Deep Dives.
- jdh30 11y agoF# Journal articles walk through the design and implementation of dozens of different example applications including both client GUI and server with sockets and so on.
- donkeyd 11y ago> How would you classify your day job? - Data or anal I guess you gotta be anal to do data.
- stinos 11y ago:] Actually came here to ask if anal is really the typically use abbreviation of analysis/analytics/... For some reason I doubt it.
- aurora72 11y agoInteresting note from TIOBE about F# just yesterday: 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.
- sago 11y agoExcept that the April data is out now, and it dropped to 14, so 'about to sneak into the top 10' seems a bit premature, in hindsight.
- igouy 11y agoExcept that #14 is for April 2014. 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.
- aurora72 11y agoYes they are not recoverable but try google cache. Actually I've used google cache to bring back the headline article.
- aurora72 11y agoWell, they basically concern themselves with the ranking and when an unpopular lang hits an historical high or low, they make it into headlines. Just for the record, this month's headline (for the sake of Scala's position) 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.
- MichaelGG 11y agoThat hiring myth is a killer. Project I'm helping on would have been much better off with F#. But the CTO is very scared they wouldn't find "F# developers". Despite any C# dev worth hiring would not have a problem learning. Despite that his second hire just happens to know F# anyways. 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.
- IndianAstronaut 11y agoI have tried to convince my manager to let us implement chunks of F# code into our projects. It would make development times much shorter and reduce complexities in our application. Despite his personal interest in functional programming, he is still hesitant to incorporate it.
- saosebastiao 11y agoI've been working with the language for a few months. Overall, I love pretty much every single aspect of the language. I am even starting to feel like the few things that I would like to have aren't necessary (such as HKTs and ML-style functors). In terms of platform support, F# has done almost everything right (I feel like Scala made boat loads of bad compromises to support Java interop, which I don't find at all with F#). There are entire classes of frameworks for web and mobile development in C# that are made obsolete even by the simplest language-level features like Agents, ADTs, Computation Expressions, Active Patterns, Type Providers, etc. 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 :)
- muraiki 11y agoSomething that's kept me from pursuing learning F# is whether I need to know C# and/or Windows development, plus concerns about lacking access to Visual Studio. 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).
- deleted 11y ago[deleted]
- thanley 11y agohttps://sergeytihon.wordpress.com/ https://sergeytihon.wordpress.com/ is a good resource for F#
- jskonhovd 11y agoI have only used F# for a couple months, but I have a decent background in ML thanks to the Dan Grossman's incredible programming languages course. https://www.coursera.org/course/proglang 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://bluemountaincapital.github.io/Deedle/ http://fsharp.github.io/FSharp.Data/ http://fsharp.github.io/FSharp.Data/
- JackMorgan 11y agoI made a language safety score to help explain F# to myself and coworkers, and its helped make strong inroads with them. With the defaults, F# is as close to C# in safety as C# is to JavaScript. http://deliberate-software.com/programming-language-safety-algorithm/ http://deliberate-software.com/programming-language-safety-a...
- junkyarddog 11y agoI would say F# is much safer than C# as it has immutability by default, non-nullable reference types, Option types, units of measure, and stricter casting rules.