[Haskell] Haskell in industry?

Andy Moran moran at galois.com
Tue Sep 14 15:59:44 EDT 2004


Hi Heribert,

> The questions they are asking include:
>
> *	Are there any references for using Haskell in industry?

Every project (bar two) that Galois has ever done has used Haskell.  We've 
delivered tools, written in Haskell, to clients in industry and the U.S. 
government that are being used heavily.  Three examples: Cryptol, our DSL 
for cryptography (with an interpreter and a compiler); a GUI debugger for a 
specialized chip, and a tool for easily embedding new syntax in the 
client's own language (sort of a suped-up Happy + OCaml's P4).

As for references, as I write this, I'm also writing a talk for the 
Commercial Uses of Functional Programming (CUFP) workshop, entitled 
"Haskell in an Industrial Context" :-)  (CUFP will be held this Saturday in 
conjunction with ICFP.)  My talk focuses on the challenges that Galois' 
faces due to our use of Haskell, and some ways we (with lots of help) might 
overcome those challenges.

> *	Can Haskell code be integrated with .NET, in case the department
> should decide to base more of its software on this platform?

I'll let others handle this one in more detail, but I believe Sigbjorn 
ported his Hugs .NET support to GHC too.

> *	Will Haskell programmers be available 5 years from now to do the
> rather boring work of maintaining a then-legacy system?

This a fair question, and one we've been asked. So far the only answer we've 
come up with is "We sure hope so". It does seem likely, given that Haskell 
is being taught in lots of Universities. But what if Simon and Simon decide 
they'd rather build C# compilers? There's a gathering momentum in the 
Haskell community, but would it be enough? This is one of the biggest 
worries for the viability of Haskell in the long term.

> *	Can't much of the simplicity of the Haskell code also be reached by
> just switching from C++ to something like Java or C#?

It depends on how you quantify "much". There are benefits to moving to Java 
or C# from C++ (cleaner type systems, cleaner semantics, better memory 
management support). But languages like Haskell give you a lot more 
besides: they're much higher level, so you get more productivity, you can 
express more complex algorithms, you can program and debug at the "design" 
level, and you get a lot more help from the type system. These arguments 
have been made time and again though, and they're also pretty subjective.

At Galois, it's also a big bonus that Haskell is close to its mathematical 
roots, because our clients care about "high assurance" software. High 
assurance software development is about giving solid (formal or 
semi-formal) evidence that your product does what it should do. The more 
functionality provided, the more difficult this gets. The standard approach 
has been to cut out functionality to make high assurance development 
possible. But our clients want high assurance tools and products with very 
complex functionality. Without Haskell (or some similar language), we 
wouldn't even be able to attempt to build such tools and products.

Cheers,

Andy

-- 
Andy Moran                                         Ph. (503) 626 6616, x113
Galois Connections Inc.                                 Fax. (503) 350 0833
12725 SW Millikan Way, Suite #290                     http://www.galois.com
Beaverton, OR 97005                                        moran at galois.com



More information about the Haskell mailing list