[Haskell] Haskell in industry?
moran at galois.com
Tue Sep 14 15:59:44 EDT 2004
> 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.
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