
Ask HN:  Anyone using Haskell in production? - iamelgringo
If so, what projects/products?  I'm curious to know what jobs you found that Haskell was awesome for and other languages couldn't keep up.
======
plinkplonk
I am using a Haskell/C combo for a distributed (on a "supercomputing" cluster)
Machine Learning (commercial, non academic) project. About 20k lines of
Haskell. A couple of 100K lines of C (Most of this will be moved to Haskell
over time). Works like a charm.

As to why Haskell, I have not yet found any other language that combines its
expressiveness and raw speed.

~~~
rbxbx
While kind of you to share this datapoint, the fact that there are 5 times
more lines of C than Haskell is a bit less than compelling. Especially
considering the fact that Haskell can achieve c-like performance (ie: not
necessarily a glue language).

Good on you for using it in production though, that's more than most of us
have achieved, I'm sure.

~~~
plinkplonk
"While kind of you to share this datapoint, the fact that there are 5 times
more lines of C than Haskell is a bit less than compelling"

Legacy Code (almost 10 - not 5 - times as much C than Haskell). Can't
transform it instantly, much as I would like to. (I did explicitly state that
most of this is being moved to Haskell).

Why should a pre existing code base preclude the use of Haskell in production
and be "not compelling"? I don't get it. But hey if it helps there's even a
few thousand lines of Fortran in there (accessed through a C interface). Even
less compelling now? ;-)

Fwiw, The 20,000 lines of Haskell would be (at least) equivalent to another
100,000 lines of code in C. So at least 1/3 d of my project is in Haskell. And
the ratio is increasing everyday. The OP asked for examples of using Haskell
in production. I _am_ using Haskell in production. I didn't see any "purity
constraints" in the OP's question. But maybe they were implicit who knows. I
am just throwing out what I do with Haskell.

If you find it "less than compelling", that's fine. My clients (the users of
the system) are delighted. Good enough for me!

~~~
eru
Thanks for explaining. I guess rbxbx was just curious, and did not think about
the possibility of legacy code.

------
vegai
I wrote a pure Haskell solution that implements a messaging middleware from a
proprietary legacy DB system to a network for activating mobile devices.

It was my first real Haskell project, and although I had lots and lots of book
knowledge about the language, the outcome was quite warty. Nevertheless,
Haskell delivered what it promised: the software was completed much faster
than a roughly comparable C product was before (by a better programmer than
me) and making changes to a finished product was very easy and safe and did
not cause new bugs.

Perhaps the worst problem was the lack of quality libraries for doing some
practical things, such as simple socket listening (I had to pretty much code
Haskell like it was C in that part), and I had some trouble (bad memory leaks)
from the curl library.

And even worser than worst was the problem that only one person got interested
enough in the language that he helped me with the project, and, although he
was able to produce working code in a month from zero experience, he ended up
disliking the language.

------
alrex021
Well-Typed, a Haskell consultancy, seems to do quite a bit of work exclusively
in Haskell.

For instance, they have developed an air traffic analysis tool for NATS[1]
which they briefly blogged[2] about.

[1] <http://www.nats.co.uk/>

[2] <http://www.well-typed.com/blog/39>

------
thesz
I used Haskell on my every job last 12 years to quickly prototype various
things to get problems exposed early.

This included: prototypes of image analyses (image registration), MIPS-alike
CPU prototype, Direct3D pixel/vertex shader assembler language analysis (data
flow patterns), prototyping various dynamic data flow CPUs, translator
Fortran-to-Lisp (for our colleague who prototyped compiler analysis in Lisp),
testbed for viodecontroller, VHDL-to-netlist translator (synthesable subset)
for our modeling system, simple GUI for some kind of IDE for modeling system,
DSeL for CPU model description.

I even tried to create integrator for "game physics" using infinite lazy lists
using ideas from
[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.4...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.32.4535)

Most of my pet projects start as a Haskell source. Often they get abandoned,
sometimes they evolve into something big.

This "pettiness" of Haskell projects play an important role: they can be
thrown away because they are cheap, and they can evolve into something pretty
big - easily.

------
rryan
<http://www.galois.com/>

------
eru
Citrix is using Haskell for XenClient. Drop me an email, if you want to know
more. My team at Citrix is using OCaml for XenServer. Both teams are in
Cambridge, UK.

We are looking for people.

------
satoimo
Barclays Capital uses Haskell to describe equity derivative instrument
payoffs: <http://lambda-the-ultimate.org/node/3331>

------
robinhouston
Here is the section on commercial users from the most recent Haskell
communities report:
[http://haskell.org/communities/05-2010/html/report.html#sect...](http://haskell.org/communities/05-2010/html/report.html#sect7)

------
dirtyaura
My co-founder uses it for scripting and we do a little data manipulation on
our game dev toolchain with it.

We were planning to use it a lot for a server-side code, but as my Haskell is
rusty, we decided to go mainly with Python.

------
Locke1689
I think jrockway is if he wants to comment. Financial services seem like one
of the few industries that can get away with it.

~~~
barkmadley
what is there to get away with?

~~~
loup-vaillant
Lack of training and lack of awareness. Here at work (in France), probably
less than 3% of programmers ever used Haskell or ML. Less than 10% knows they
even exist. And no-one would be willing to train a team so these languages can
be used in a new project.

Now, financial software may get away with those because they don't really have
a choice: they are a narrow field, with a critical need for correctness.

Conversely, you could say that most projects get away with ignorance. They use
sub-optimal languages, for the very short term benefit of not training people.

~~~
SkyMarshal
I'm shocked, shocked to hear there's such little ML going on in France. After
discovering OCaml and its progenitor INRIA, I've always just assumed that MLs
and functional programming was more of a European thing, especially since
they're more oriented toward proofs and program correctness, which I also
thought was more a characteristic of European CS and software engineering. But
no?

~~~
tuos
One workplace != France != Europe

~~~
loup-vaillant
2 workplaces plus a good deal of acquaintances, in fact. In my niche (custom
technical or scientific software, mostly for the government), I'm 99%
confident that ML makes less than 0.1% of currently written code. 80% of my
colleagues even never heard of ML.

------
Periodic
My site isn't production ready yet, but I'm writing my back-end in Haskell.
It's exposing a REST API via HappStack to the RoR front-ends.

What stops me from using Haskell for the front end is that I'm familiar with
RoR (and so my prototyping is fast) and I haven't been amazed by any of the
templating systems in Haskell yet.

------
T_S_
I am using Haskell to simulate data for a machine learning system. The project
has other components we are planning to implement in Haskell.

You may fight hard with the compiler to get your program to compile, but after
that "it just works". Also functional programs are bite-sized, so making
changes feels easier.

------
dons
See also:
[http://haskell.org/haskellwiki/Haskell_in_industry#Haskell_i...](http://haskell.org/haskellwiki/Haskell_in_industry#Haskell_in_Industry)

------
baguasquirrel
Dammit... Avoid success at all costs?

