F# VS VisualFSharp

Compare F# vs VisualFSharp and see what are their differences.


Please file issues or pull requests here: https://github.com/dotnet/fsharp (by fsharp)


The F# compiler, F# core library, F# language service, and F# tooling integration for Visual Studio (by dotnet)
Our great sponsors
  • JetBrains - Developer Ecosystem Survey 2022
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Less time debugging, more time building
F# VisualFSharp
19 47
2,191 3,151
0.2% 2.1%
0.6 9.7
7 months ago 3 days ago
F# F#
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of F#. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-05-28.


Posts with mentions or reviews of VisualFSharp. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-16.
  • Help with trying to get a .NetFramework project running in VS2022
    2 projects | reddit.com/r/fsharp | 16 Apr 2022
    Have you tried the workaround listed here? https://github.com/dotnet/fsharp/issues/12239
  • How to install Homebrew package manager on Steam Deck to compile software and install command-line programs without disabling the read-only partition (allowing the installation to persist on SteamOS updates)
    3 projects | reddit.com/r/SteamDeck | 28 Mar 2022
    ([email protected] bin)$ brew install --build-from-source mono ==> Downloading https://github.com/mono/mono/commit/3070886a1c5e3e3026d1077e36e67bd5310e0faa.patch?full_index=1 Already downloaded: /home/deck/.cache/Homebrew/downloads/77885651b42fb3b50e405e300ab4dce5d65e10eac8ee6b8d956b5240b58adcb3--3070886a1c5e3e3026d1077e36e67bd5310e0faa.patch ==> Downloading https://raw.githubusercontent.com/Homebrew/formula-patches/03cf8088210822aa2c1ab544ed58ea04c897d9c4/libtool/configure-big_sur.diff Already downloaded: /home/deck/.cache/Homebrew/downloads/195208ba31cadc265ea97bb8aad4e78caab1200daf4d855e6c839b5f987f92db--configure-big_sur.diff ==> Downloading https://raw.githubusercontent.com/mono/mono/a22ed3f094e18f1f82e1c6cead28d872d3c57e40/packaging/MacSDK/patches/fsharp-portable-pdb.patch Already downloaded: /home/deck/.cache/Homebrew/downloads/81c9245ab2b5c07a5bc87a8792e374b22a652c14be27b73aa21c1948f1273464--fsharp-portable-pdb.patch ==> Downloading https://raw.githubusercontent.com/mono/mono/a22ed3f094e18f1f82e1c6cead28d872d3c57e40/packaging/MacSDK/patches/fsharp-netfx-multitarget.patch Already downloaded: /home/deck/.cache/Homebrew/downloads/13d3ba5313c9e2b60ebfa4c40d5039269485e75aa41fcf301cc55458382fcb29--fsharp-netfx-multitarget.patch ==> Downloading https://github.com/dotnet/fsharp/commit/be6b22d11ae996b2d9b8e0724d9cf05ad65a0485.patch?full_index=1 Already downloaded: /home/deck/.cache/Homebrew/downloads/c3d6a94f53c828d6ad7b5a563682a6de3d388644f3a33f1ea55ec28fa461e24b--be6b22d11ae996b2d9b8e0724d9cf05ad65a0485.patch ==> Cloning https://github.com/dotnet/fsharp.git Updating /home/deck/.cache/Homebrew/mono--fsharp--git ==> Checking out tag v11.0.0-beta.20471.5 HEAD is now at 03283e07f Merge pull request #10172 from dotnet/merges/main-to-release/dev16.8 HEAD is now at 03283e07f Merge pull request #10172 from dotnet/merges/main-to-release/dev16.8 ==> Downloading https://raw.githubusercontent.com/mono/mono/3070886a1c5e3e3026d1077e36e67bd5310e0faa/packaging/MacSDK/fsharp-layout.sh Already downloaded: /home/deck/.cache/Homebrew/downloads/85ab59b70661632962989d0527aa31b2a720c49968d45f368ff0a1fa190159b0--fsharp-layout.sh ==> Cloning https://github.com/mono/msbuild.git Updating /home/deck/.cache/Homebrew/mono--msbuild--git origin/HEAD set to xplat-master refs/remotes/origin/xplat-master ==> Checking out revision 70bf6710473a2b6ffe363ea588f7b3ab87682a8d HEAD is now at 70bf67104 prevent exception for increasing priority (#5547) HEAD is now at 70bf67104 prevent exception for increasing priority (#5547) ==> Downloading https://download.mono-project.com/sources/mono/mono- Already downloaded: /home/deck/.cache/Homebrew/downloads/6092400166df5dee225b09670c68fa3aa400319e8871facaff0106aa143419fb--mono- ==> Patching ==> Applying 3070886a1c5e3e3026d1077e36e67bd5310e0faa.patch patching file packaging/MacSDK/fsharp-layout.sh ==> Applying configure-big_sur.diff patching file configure Hunk #1 succeeded at 10928 (offset 2195 lines). ==> ./configure --prefix=/home/linuxbrew/.linuxbrew/Cellar/mono/ --enable-nls=no Last 15 lines from /home/deck/.cache/Homebrew/Logs/mono/01.configure: checking whether we are using the GNU C++ compiler... yes checking whether g++-11 accepts -g... yes checking dependency style of g++-11... gcc3 checking for a Python interpreter with version >= 3.2... python checking for python... /usr/bin/python checking for python version... 3.1 checking for python platform... linux checking for python script directory... ${prefix}/lib/python3.10/site-packages checking for python extension module directory... ${exec_prefix}/lib/python3.10/site-packages checking dependency style of gcc-11... gcc3 checking for gawk... (cached) gawk checking how to run the C preprocessor... /lib/cpp configure: error: in `/tmp/mono-20220328-41596-77f8ae/mono-': configure: error: C preprocessor "/lib/cpp" fails sanity check See `config.log' for more details READ THIS: https://docs.brew.sh/Troubleshooting
  • How does F# (and SML?) handle end-of-line inference?
    1 project | reddit.com/r/ProgrammingLanguages | 20 Mar 2022
    It will be in here somewhere but you’d need to dig: https://github.com/dotnet/fsharp/
  • Hot-reload in Fun.Blazor
    3 projects | dev.to | 27 Feb 2022
    I know csharp got hot-reload for blazor for a while, I also keep tracking on the fsharp issue and hope there is some miracle which can happen. But there is no progress here. So I decide to have a look for what I can do. To make dotnet watch work directly is too hard to me which required a lot of knowledge about FSharp.Compiler.Service and the IL format which csharp roslyn is using for patch the program for hot-reload.
  • F# Weekly #8, 2022 – 20 years of #dotnet, .NET 7 Preview 1
    1 project | reddit.com/r/fsharp | 19 Feb 2022
    Better F# exception message formatting by default (same as if you override it and use %A) https://github.com/dotnet/fsharp/pull/12736
  • F# 7 hopes and wishes
    1 project | reddit.com/r/fsharp | 14 Nov 2021
    ] toggle in F# https://github.com/fsharp/fslang-suggestions/issues/919#issuecomment-905013334 which can guarantee AOT/linker compatibility - Reference assembly output https://github.com/dotnet/fsharp/pull/12334
  • Data Access in Fsharp
    8 projects | dev.to | 12 Nov 2021
    If you get a message like "warning FS3511: This state machine is not statically compilable." don't worry it is being tracked in https://github.com/dotnet/fsharp/issues/12038
  • What I wish I knew when learning F#
    10 projects | news.ycombinator.com | 14 Oct 2021
    You can simply contribute to https://github.com/dotnet/fsharp/, the maintainers are very friendly to new contributors in my experience (though the codebase is old and often quite hard to understand).
  • FSharp.Core 6.0 released
    1 project | reddit.com/r/fsharp | 22 Sep 2021
    It looks like FSharp.Core 6.0 has been released on Nuget. However, I haven't seen an announcement and there's no mention of it in the current release notes. Is there any official information on this?
  • The Very First Post
    11 projects | dev.to | 10 Sep 2021
    The F# Programming Language: I consider F# as the functional-oriented sibling of C#. This language offers a nice introduction to statically-typed functional programming. It offers a really nice ML-like syntax, as well as some features like type providers (a way to define a schema for data such as a database table, JSON file, etc.).

What are some alternatives?

When comparing F# and VisualFSharp you can also consider the following projects:

ClojureCLR - A port of Clojure to the CLR, part of the Clojure project

Roslyn - The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.

julia - The Julia Programming Language

Nemerle - Nemerle language. Main repository.

FunScript - F# to JavaScript compiler with JQuery etc. mappings through a TypeScript type provider

language-ext - C# functional language extensions - a base class library for functional programming

ocaml - The core OCaml system: compilers, runtime system, base libraries

IronScheme - IronScheme

scala - Scala 2 compiler and standard library. For bugs, see scala/bug

Bridge.NET - :spades: C# to JavaScript compiler. Write modern mobile and web apps in C#. Run anywhere with Bridge.NET.

ring - Safe, fast, small crypto using Rust