F#

Functional-first, multi-paradigm. First appeared 2005; ml and functional; analytics, backend services.

Record

First appeared2005
FamilyML and functional
Paradigm emphasisFunctional-first, multi-paradigm
TypingStatic, strong, inferred
MemoryTracing GC (.NET)
ExecutionBytecode + JIT
Primary domainAnalytics, backend services
DesignersDon Syme, Microsoft Research
Referencehttps://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/
Last verifiednot yet checked against its source by a human

Dates are first public release or publication, not the start of internal development. Colour on the typing and memory tags encodes kind, never rank.

Back to top

Influence

Haskell1990OCaml1996C#2000No indexed descendantF#2005
Figure 1. F# in the influence graph: recorded ancestors on the left, languages that record it as an influence on the right. Every node links to its own record. Edges name indexed languages only, so an empty side means no indexed relative, not none at all. Source: languages.json.

Back to top

Within the ML and functional

Algebraic data types, exhaustive pattern matching, and inference-driven typing. The source of most type-system features adopted by mainstream languages since 2010.

Language First appeared Typing Memory Execution
ML 1973 Static, strong, inferred Tracing GC Compiled or interpreted
Erlang 1986 Dynamic, strong Per-process GC Bytecode VM (BEAM)
Haskell 1990 Static, strong, inferred Tracing GC AOT compiled
OCaml 1996 Static, strong, inferred Generational GC AOT compiled or bytecode
Elixir 2012 Dynamic, strong Per-process GC Bytecode VM (BEAM)
Gleam 2019 Static, strong, inferred Per-process GC Compiled to Erlang or JavaScript
Unison 2020 Static, strong, inferred Tracing GC Interpreted or compiled

7 other languages in this family, ordered by first appearance. F# itself is omitted. Source: languages.json.

Back to top