Linspire/Freespire - Haskell for systems programming
The Linspire operating system is a Linux distribution
targeted for the consumer marketplace (formerly known as LindowsOS.)
Freespire is a
variant suitable for developers and experienced Linux users that was
announced in April, 2006. Since 2002, Linspire engineers have been
using functional programming in select tasks such as:
Much of this work was done in O'Caml, but as of April, 2006, we have
standardized on Haskell whenever appropriate. In both languages, the
static typing is a huge help, saving many hours of frustration when deploying to a
heterogeneous set of remote machines.
While O'Caml is an
excellent language with a very good compiler, it has some attributes
which have limited its use in our application:
- the linker records the
md5sums of libraries, which forces very tight dependencies between
Debian packages;
- difficult to do truly static linking;
- the libraries are not as complete as those in Haskell, which means
adding and maintaining libraries which should be more logically
included in the distribution;
- exceptions, while convenient, require great discipline to prevent
them from popping up unexpectedly from libraries and terminating
programs without any tracebacks.
These attributes could certainly be fixed, but there is a richness and
simplicity to Haskell that has made that effort seem futile. Really,
it is the positive aspects of Haskell that are driving the
adoption. Examples include:
- the hierarchical module system and import facilities make it easy
to manage and use a large set of libraries;
- Cabal makes supporting Linux packaging reasonably easy;
- Haskell's partially static linking is easy to manage with Debian packaging (at
the cost of some disk space);
- Haskell can easily do true static linking when required;
- the type system, and particularly type classes, make algorithm
reuse a reality;
- a vibrant community that is producing new advances weekly, both
theoretical and practical, with a minimum of noise;
- a programming style that promotes clean code, type signatures on
functions, documentation, etc.;
Above all, Haskell programs tend to be beautiful, which makes it easy to pick
up where you last left off working on them.
- Developers at Linspire who use FP: Clifford Beshers, David Fox, Jeremy Shaw, Sean Meiners
- Contact:
-
Clifford Beshers
Linspire, Inc.
9333 Genesee Ave, 3rd Floor
San Diego, California 92121
USA
Phone: +1 858-587-6700 ext 224
Email: clifford.beshers@linspire.com
- Number of users: > 10000
- In use: since 2002
- Languages used: Haskell, O'Caml
- Compilers:
Glasgow
Haskell, O'Caml
- Line count: > 50K.
- Availability: Linspire OS is available from , with most packages
available as source from the Linspire Click and Run Warehouse (see
the specifications page of any package for source links.) Freespire is expected to launch in
August, 2006 and all tools will be available in apt (Debian-style) repositories.