These pages document F#'s origins as a research project at Microsoft Research, Cambridge. You can find out all about the latest happenings with F# at the MSDN F# Developer Center.
Download F#, part of Visual Studio 2010 Beta1, plug in for CTP Update for Visual Studio 2008 or standalone compiler ZIP, for Mono and Windows
F# developed as a research programming language to provide the much sought-after combination of type safety, succinctness, performance, expresivity and scripting, with all the advantages of running on a high-quality, well-supported modern runtime system. This combination has been so successful that the language is now being transitioned towards a fully supported language on the .NET platform. Some of the reasons for this move are that F# gives you:
- succinct, type-inferred functional programming,
- interactive scripting like Python and other languages,
- the foundations for an interactive data visualization environment,
- the combination of type inference and safety, like that of ML,
- a cross-compiling core shared with the popular OCaml language,
- a performance profile like that of C#,
- easy access to the entire range of powerful .NET libraries and database tools,
- a foundational simplicity with similar roots to Scheme,
- the option of a top-rate Visual Studio integration, which is usable with the freely available Visual Studio 2008 Shell
- the experience of a first-class team of language researchers with a track record of delivering high-quality implementations,
- the speed of native code execution on the concurrent, portable, and distributed .NET Framework.
The only language to provide a combination like this is F# (pronounced FSharp) - a scripted/functional/imperative/object-oriented programming language that is a fantastic basis for many practical programming tasks.
F# was developed as a pragmatically-oriented variant of ML that shares a core language with OCaml. Unlike other scripting languages it executes at or near the speed of C# and C++, making use of the performance that comes through strong typing. Unlike many type-inferred, statically-typed languages it also supports many dynamic language techniques, such as property discovery and reflection where needed. F# includes extensions for working across languages and for object-oriented programming, and it works seamlessly with other .NET programming languages and tools.
For further information, see the MSDN F# Developer Center