I read a paper.
Curt Sampson "Experience Report: Haskell in the Real World Writing a Commercial Program in Haskell", draft of submission to ICFP 2009
This paper is not for theoretical purpose but for practical one even though the title includes the purely functional language Haskell.
I have been using Haskell for 3 years, but for draft or experimental one, not for actual production. In contrast Curt Sampson, the author of the paper, used Haskell for production code int the real world.
The paper in short
Curt Sampson is an experienced Java programmer, who knows C and Ruby as well.
He got interested in functional programming languages due to Paul Graham indirectly.
He wrote a financial application in Haskell for his client in the spring of 2008, instead of in Java.
"We explained that, for us, switching languages every few years was a normal technology upgrade,"
He looked for a language which provides concise yet expressive code, so that his client can read and modify them.
It's important not to have to change his tool for new language; e.g. Smalltalk needs special environments.
- He decided to use Haskell instead of OCaml or Scala, because:
- Once he considered to use OCaml, but the syntax was not clear enough for him; Double semicolons and lack of overloaded functions mattered.
- Once he considered to use Scala, but he got dissapointed to know that it couldn't run native code.
Haskell codes are readable even for non-programmers.
He wrote his own parser library, to offer stateful parsing with ByteString in contrary to the standard library Parsec.
Haskell needs fewer lines of test code than Ruby.
Haskell is more portable than C++ even when his application involved interfacing with the Microsoft products. GHC has a good FFI.
Lazy evaluation causes two problems, threads and space leaks. GHC's profiler helps solving the problems, but not enough.
Conclusion: Haskell is the ultimate language.