Friday, November 21, 2008

F# Tools and Libraries

Since F# is still in infancy, the number of associated tools and libraries is minimal when compared to more mature languages. However, the list is growing and will continue to increase as more and more developers get introduced to the language.

The following, is a list of tools and libraries compiled through various Google searches.  Since the line is sometimes blurred between a tool/library, I have generally relied upon the author's description to determine the correct category.

Tools:

fsunit - This is a testing (a.k.a. specifications) framework written in F# for F#.
F# SyntaxHighlighter Brush - This is an add on to SyntaxHighlighter, which allows F# code to be posted on a web page and displayed as it would in Visual Studio.
FS Web Tools - This is a set of tools to "author homogeneous client/server/database web applications".
AbsIL SDK  - Allows manipulation of .NET files and binaries.
F# MPI Tools - This is a message passing interface (MPI) tool that can be used to develop distributed memory applications.
FsCheck  - This is "a tool for testing F# code automatically".
PDF Toolkit  - This is a command line tool that allows manipulation of PDF files.
fsc.exe - This is the compiler that comes with the F# CTP.
fsi.exe - This is the interactive tool that comes with the F# CTP.
fslex.exe - This is a tool used to create lexical analyzers that comes with the F# CTP.
fsyacc.exe - This is a tool used to create parsers that comes with the F# CTP.

Libraries:

STM for F# - This is a software transactional memory (STM) library for F#.
FParsec  - This is an F# parser combinator library ported from Haskell.
Parallel Extensions Library - This library is not specific to F#, but lends itself nicely to the "immutable by default" approach.  It provides "a managed programming model for data parallelism, task parallelism, and coordination on parallel hardware unified by a common work scheduler".

Conclusion:


One of the major advantages that F# has over other functional programming languages is the .NET framework.  This allows almost any .NET tool/library to be compatible with F#.  In addition, a number of tools/libraries have been created specifically with F# in mind and that number will continue to increase.  Feel free to leave a comment linking to those that I have missed.




No comments:

Post a Comment