1 people like it.

Most popular F# tools and libraries

Analyze results of the fsharpWorks annual F# community survey to figure out what are the most popular F# tools and libraries. The snippet does some minimal data cleanup, but more work is needed to get precise results!

// F# Survey 2016 results:
// http://fsharpworks.com/survey.html
let libraries = (Long string with all the data)

// Some people use space separated, some comma separated, so we
// split each line using both space and comma and using just comma;
|> Seq.map (fun line -> line.Split(' ',','), line.Split(','))
|> Seq.collect (fun (bySpace, byComma) ->
  // Append names with space and names without space
  let withSpace = byComma |> Seq.filter (fun s -> s.Contains(" "))
  Seq.append bySpace withSpace)
// Trim, count and sort by frequency
|> Seq.map (fun s -> s.Trim())
|> Seq.countBy id
|> Seq.sortBy (fun (_, c) -> -c)
|> Seq.take 25
|> Seq.iter (fun (l, c) -> printfn "%s (%d)" l c)

// Non-noise items from the printed results:
// - fake (86)
// - paket (74)
// - fsharp.data (53)
// - power (34) + tools (34)
// - ionide (31)
// - fscheck (31)
// - suave (31)
// - fparsec (24)
val libraries : string

Full name: Script.libraries
Paket, FAKE
F# Power Tools
Fsharpx Fparsec
FSharp.Data Unquote
Fparsec, Fake
F# power tools, Akka.Net, Fsharp.Data, Ionide
fsharp.data, paket, mbrace, F# power tools, FParsec
Paket Fsi Fscheck
FSharp Power Tools FSharp.Data Accord.Net (OK, that is a .NET one, but...)
FAKE, Paket
vim-fsharp, Ionide, Mono, FParsec
FAKE, AKKA.fsharp, Chessie, Sqlprovider, fspickler
Ionide, Forge, Suave, FSharp.Data, FSharp.SqlClient
Fsharp.data Fsyacclex/lex Fss
Paket Fake
Visual F# Power Tools for Visual Studio FsCheck Unquote
FSharp.Data for the different data providers are awesome. F# Power tools for Visual Studio.
Fscheck unquote
FAKE Ionide-fsharp
FsUnit Visual F# PowerTools Canopy WebSharper
Paket, FAKE, Suave, FsCheck, Ionide
Fake Paket
FAKE Paket FSharpPowerTools FsCheck FSharp.Formatting
FAKE Fsharp.Data FAKE
Ionide, paket, fake, fsharpx
Chessie.ErrorHandling changed my life coming from C#
Paket FSharp.Data Chessie
FSharp PowerTools
fscheck fake paket
FAKE Paket FSharp.Formatting FsCheck FsEye
FsXaml FSharp.Control.Reactive FSharp.Data FSharp.Charting FsUnit
Paket Fake FSharp Typeproviders for Json, Html, Sql
Fake Canopy
Iodide, FAKE, Paket, Chiron, Hopac
Vfspt Fsunit Fsharp.control.reactive Fsxaml Argu
FSharp.Data.SqlClient Type Provider Argu FsPickler Fake FSharp.Azure.Storage
visual F# power tools websharper
vim-fsharp, mono, fake, yeoman fsharp generator, ionide.
Suave, FsSql, Hopac, Fable, Ionide
Paket FAKE Suave Chessie FSharp.Data
FAKE Paket SQLProvider CSVProvider JSONProvider
Fsharp.data Freya Argu Paket Fake
FsCheck F# Power Tools Paket
Paket Fake MBrace
Suave.io FSharp.Data FsUnit Canopy JSONTypeProviders
F# Power tools Paket
VFPT Ionide
Ionide for Atom FSharp.Data FSharp.ViewModule
FSharp.Data Paket FSharp.Compiler.Service FSharp.Data.SqlClient
FSharp.Data Suave FParsec FSharpx Argu
FAKE Paket FSharp.Data Hopac
FSharp.Data RProvider FsLab FsReveal Suave
ExtCore SqlCommandProvider CsvProvider F# Power Tools
- Paket - FAKE - FsCheck - FParsec - FSharp.Data providers
Visual F# power tools FsUnit/FsCheck FSharpX Paket
Fable Ionide FSharp.Data
Suave Hopac YoLo Mono Xamarin Studio
Not sure as I'm a beginner
FParsec, Hopac, Suave
Fake, Paket, F# data
ionide and mono making it possible to develop in linux. Suave is a wonderful webserver library making it possible to create nice web applications without the need for IIS or the whole MVC/ASP.net framework FSSQL has been a nice database wrapper I have used because SQL Type Providers are far from ready for production, especially with non MS SQL Server databases. Very interested in Fabel and similar for replacement of client side javascript
Fake, packet, iodide, Chesapeake (Railway oriented programming), REPL
Paket, Fake, and ionide have been great for flexible workflows AsyncSeq comes to mind as a great idea and also a good learning tool for comp. ex.
FeldSpar VS Code Union Args Parser Try FSharp.org
Suave, MonoDevelop
paket xamarin (both studio and mobile dev)
Fs check, Type Providers, Rx
Ionide Fake Paket Mbrace
FParsec, FsData, FsCheck
Fake Paket Data Providers by Patreicek Marvel (internal library at jet.com)
F# Power tools
1. FAKE 2. Paket 3. AsyncSeq 4. Ionide
Visual F# Power Tools ExtCore FsCheck FAKE FsLab
FSharp.data Xplot
Newtonsoft.Json, FSharp.Data, Xamarin's F# support
FsCheck FParsec WebSharper (especially the Formlets) Hopac Streams
Gluon Suave Freya FAKE Paket
Visual F# Power Tools FSharp.Data.SqlClient FsXaml FSharp.ViewModule FSharp.Data (CSV provider)
Web Sharper Visual Studio Xamarin
Ionide, dotnet CLI
FAKE, paket
FParsec VS integration WebSharper
I'm not using F# dependencies, but C# dependencies work great!
FSharp.Data, PaketFsXAML
FAKE Paket Ionide
NCrunch, in general, has changed my life.
F# Interactive FSharp Power Tools
FsCheck FParsec Visual F# Power Tools Deedle Fake
Visual F# Power Tools FParsec Paket FAKE Fsharpx
Real-world functional programming
FAKE fsi
FAKE, Ionide, Paket, Mathnet Numerics, Ifsharp, XPlot.
F# Data Tools and Type Providers
I only use the built-in ones
F# Power Tools, FSharpx, FAKE, Paket, Foq
WebSharper FSharp.Data
- Fsharp.Data - MS sql type providers - FAKE - Websharper - MailboxProcessor
- Akka.NET - Hopac - F# Power Tools (VS extension) - Task Parallel Library / Rx - Deedle
VS 2015 Suave Paket Type Providers
PowerPack FParsec
Fsharpx FsCheck
Interactive window, C# integration.
FParsec VS integration Otherwise I'm fairly vanilla
FParsec Paket FAKE ProjectScaffold Suave
FSharp.Data.SqlClient F# Interactive WebSharper CSV type provider Paket
FAKE is really cool and I've been using it a lot for many different projects. I've not done a huge amount with F# yet as it's my first functional language so I'm still trying to figure out what to do with it.
The available unit testing frameworks and libraries.
fsi VS fsharp tools
fake F# Outlining
Visual studio FSharp power tools FAKE
Power tools
Charting Suave.io Vim
Paket FAKE Suave Akka.Net Fleece
- FSharpData - Fake - FsCheck - WebSharper - FSharpCompilerServices
FsCheck FSharpx.Extras Argv FSharp.Configuration FAKE
REPL, Emacs Integration, Paket, Forge
FSharp.Data FSharp.Data.SqlClient
Ionide Xamarin Studio FSharp.Data
None to be honest.
I mostly us FsLexYacc but i want to look more into Suave
Suave FsLab (and it's many member libraries) Ionide/FSI Interactive
FSharp Powerpack (RIP) Data CompilerServices
Visual studio 2015 Vfpt
Ionide F# Power Tools LinqPad F# support FSharp.Formatting Paket
FSharp.Control.Reactive Ionise F#, Fake,Packet for Visual Studio Code Fake Packet/Nuget
F# Power Tools F# Data
F# Interactive made it a lot more fun to script things
F# powertools
Akka Aether
1. LINQPad 2. Interactive coding
Fake, Suave, Paket, unquote
XAML type provider CSV type provider FSharp.Data
FParsec Z3
Suave, FSharp.Data, FAKE, Ionide, VSFSharpPowerTools
FsCheck, Unquote, FParsec, Suave, FSharp.Data type providers
Chessie FSharpx Paket Fake Sql Type Provider
FSI in Visual Studio Visual F# PowerTools Type Providers
FSharp.Data Ionide
Honestly, other than Visual Studio and a couple of emacs modes, I haven't really used any other tooling extensively. Most of the libraries I've used were just from C#.
FSI and the script file format is fantastic, but insta REPL ala LightTable/Clojure would be a game changer. Remote fsi support would be fantastic for targeting other platforms/environments.
Paket FAKE FSharp.Formatting FSharp.Configuration
Emacs fsharp-mode Fsharp.Data Forge will be on this list next year
Ionide FSharp.Data Paket FunScript Foq
F# power tools, Chessie, FsCheck, Websharper/funscript, Sql type provider
Visual F# Power Tools
F# power tool at home but it won't work on the solution at work WebSharper
The most effective library has to be FSharp.Data. It's incredibly handy. I like FSharpx.Collections for its NonEmptyList -- it really helps in precise modelling. I'm obviously a fan of FAKE as well as FsUnit for writing cleaner tests.
Fsharp power tools, suave, fsharp.configuration, fsharp.data, ionide
Visual F# Power Tools, FsCheck, Nessos Streams, Paket, Suave.io
FsCheck, Unquote
Suave paket FAKE
Visual studio FAKE FsLab Deedle FsUnit
Suave.io Paket
MathNet.Numerics RProvider FSPickler
FsCheck FsUnit
F# for Numerics and F# for Visualization.
FParsec, Alea GPU, OpenTK
Mathnet FSLab ParallelSeq
FParsec - parsing made fun
canopy Suave fsharp emacs plugin FSharp.Data FSharp.Data.SqlClient
Fsharp.data Fsharp power tools
F# plugin for Visual Studio 2015
FSharp.Data Chessie.ErrorHandling
Paket + FAKE, I want to use them all the time for all projects.
FSharp.Data Paket WebSharper
Sauve, Logary, FsCheck, F# Power Tools
FsXaml Math.net
VisualFSharpPowerTools Fake FSCheck FsLab MBrace
1. FSharp.Data 2. FsCheck 3. FSharp Interactive 4. Paket 5. Suave.io
Power Tools FSUnit NCrunch (not F# specific but awesome)
CSV and SQL type providers, Canopy, FsUnit, Paket, FAKE
FAKE FsCheck
ExtCore FsCheck VFPT (Visual F# Power Tools) FAKE
FsharpPowerTools Paket FAKE Deedle FsReveal
Vim-fsharpbinding Suave Extcore
FsXaml ProjectScaffold FSharp.ViewModule Math.NET Symbolics
Vs power tools, fake, paket, F# xamarin add in
FSharp.Data type provider FSReveal Paket Fake Azure storage type provider
FSharp.Data for type providers to xml etc.
F# syntax highlighting for Visual Studio
Parallseq FSLAB TypeProviders
ionide, try fsharp, akka.net
Fake F# Powertools Paket Suave FSharp.Data
Paket, FAKE, FSharp.Data, WebSharper, FSharp.Charting
F# Power Tools Unquote
FAKE, Paket, Deedle, FsLab
Fake FSharp.Data
suave, fake, the repl (fsi.exe)"""
System.String.ToLower() : string
System.String.ToLower(culture: System.Globalization.CultureInfo) : string
module Seq

from Microsoft.FSharp.Collections
val map : mapping:('T -> 'U) -> source:seq<'T> -> seq<'U>

Full name: Microsoft.FSharp.Collections.Seq.map
val line : string
System.String.Split([<System.ParamArray>] separator: char []) : string []
System.String.Split(separator: string [], options: System.StringSplitOptions) : string []
System.String.Split(separator: char [], options: System.StringSplitOptions) : string []
System.String.Split(separator: char [], count: int) : string []
System.String.Split(separator: string [], count: int, options: System.StringSplitOptions) : string []
System.String.Split(separator: char [], count: int, options: System.StringSplitOptions) : string []
val collect : mapping:('T -> #seq<'U>) -> source:seq<'T> -> seq<'U>

Full name: Microsoft.FSharp.Collections.Seq.collect
val bySpace : string []
val byComma : string []
val withSpace : seq<string>
val filter : predicate:('T -> bool) -> source:seq<'T> -> seq<'T>

Full name: Microsoft.FSharp.Collections.Seq.filter
val s : string
System.String.Contains(value: string) : bool
val append : source1:seq<'T> -> source2:seq<'T> -> seq<'T>

Full name: Microsoft.FSharp.Collections.Seq.append
System.String.Trim() : string
System.String.Trim([<System.ParamArray>] trimChars: char []) : string
val countBy : projection:('T -> 'Key) -> source:seq<'T> -> seq<'Key * int> (requires equality)

Full name: Microsoft.FSharp.Collections.Seq.countBy
val id : x:'T -> 'T

Full name: Microsoft.FSharp.Core.Operators.id
val sortBy : projection:('T -> 'Key) -> source:seq<'T> -> seq<'T> (requires comparison)

Full name: Microsoft.FSharp.Collections.Seq.sortBy
val c : int
val take : count:int -> source:seq<'T> -> seq<'T>

Full name: Microsoft.FSharp.Collections.Seq.take
val iter : action:('T -> unit) -> source:seq<'T> -> unit

Full name: Microsoft.FSharp.Collections.Seq.iter
val l : string
val printfn : format:Printf.TextWriterFormat<'T> -> 'T

Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.printfn
Raw view Test code New version

More information

Posted:7 years ago
Author:Tomas Petricek
Tags: survey , libraries