Samuel Gélineau からの返信その1(翻訳)

Sure, I am happy to help!


  1. Do you think Haskell is underrated as an industrial, professional programming language by IT project managers?

Yes, definitely. There are a few aspects of Haskell which makes it look like a bad choice:

  1. Only a small fraction of companies use Haskell. This has a few consequences:
    • Haskell does not look like a safe choice, in the "nobody has ever been fired for buying IBM" sense.
    • Service providers who expose an API are unlikely to provide.
  2. Haskell bindings for that API. Only a small fraction of programmers are familiar with Haskell. This has different consequences: It looks like hiring Haskellers might be a challenge. For any given domain, fewer people have written Haskell which deal with this domain, so we are less likely to find existing libraries for this domain.
  3. Haskell is very different from conventional languages like C++, Java, and JavaScript. As a consequence:
    • Senior employees who are comfortable with conventional languages might not be willing to make the jump.
    • Junior employees might only have used conventional languages in school, so training them to use Haskell effectively might take a while.


1. 少数の企業しかHaskellを使っていません。例えば”IBMを買ったとしても誰も解雇されない”というように、結果としてHaskellは安全な選択とは思えなかったのです。

  • APIを提供するサービスがHaskellバインディングを提供することは考え難い。

2. 少数のプログラマしかHaskellを知らない。結果として、
- Haskellerを雇うのは大変かもしれません。
- どんな分野でも、既存のHaskellライブラリは少ない。

3. Haskellは従来の言語と大きく異なります。C++,Java, JavaScriptなど...。

- 結果としてAPIを提供するサービスがHaskellバインディングを提供する事は考え難い。
- ベテラン勢は、従来の言語で満足ならあえて挑戦する気にならないかもしれません。
- 若手は、学校で従来言語しか使ったことがないかもしれません。
- 従ってトレーニングに時間がかかるかもしれません。


I think that a few of those objections are unfounded, but unfortunately some of them are true downsides, which have to be weighted against Haskell's advantages.


  1. The number of companies which use Haskell is indeed very small, but it is growing. We're seeing a lot more job postings on the Haskell subreddit and on Twitter; in the past, each such posting was celebrated as proof that Haskell is finally breaking out into the industry, whereas today they are so common that people have started to complain about them!
    • Choosing Haskell is still a bold choice at the moment. For example, a friend created a startup and chose Haskell for the backend, but he knew that this choice would be considered a risk by investors, so he had to make safe choices everywhere else, for example he picked JavaScript instead of PureScript or GHCJS for the frontend. So this is indeed a downside.
    • At work, we are writing Haskell bindings for a third-party API, because we couldn't use the Java API they provided. So this is another real downside.
  2. The number of programmers who are familiar with Haskell is small, - but it is growing too! People no longer assume I said "Pascal" when I say "Haskell", and even Java programmers have heard of Monads.
    • The reason the small number of available Haskellers makes it seem like hiring is going to be difficult is that with popular languages, it is often necessary to interview a large number of candidates before finding one which is worth hiring. But as Paul Graham explains in The Python Paradox those who bother to learn the good-but-not-yet-popular languages are those developers who are passionate about their job and really care about the quality of their tools. Python was not nearly as ubiquitous as it is today when Paul Graham wrote his essay. If he wrote this essay today, I'm sure he would have called it the Haskell paradox instead. Anyway, it's not just an essay, I found it to be true in practice: at work, we're hiring both Haskell and JavaScript programmers, and while we have had many more JavaScript applicants than Haskell applicants, our Haskell positions were a lot easier to fill than our JavaScript positions.
    • As for libraries, the days in which you were likely to have to write your own library are long gone. Nowadays, when people complain about libraries, it's because they have looked at six existing alternatives and still aren't happy or couldn't decide which one to pick, etc.
  3. It is true that Haskell is very different from conventional languages, and that's a good thing! You can't improve on the status quo without being different from the status quo.
    • Unfortunately, it is true that senior developers who are comfortable with conventional languages might be unwilling to adapt. I have encountered circumstances in Java and C++ projects in which Haskell-inspired techniques would have been a great fit, but I have never been able to convince my otherwise-reasonable colleagues to adopt them. Another time, a Java programmer was helping us with a Scala program, our tech lead tried to show him how to make his code more functional, that led to a debate, and then to a verbal fight :( Of course, different people will react differently, so introducing FP to an OO-trained team isn't guaranteed or even likely to end in tears, but it's a possibility which needs to be considered.
    • About training time: yes, if someone is only familiar with conventional programming languages, then learning another conventional programming language will be easier and faster than learning a wildly dissimilar programming language such as Haskell. This is just as true for junior programmers as for senior programmers. However, the extra training time is worth it: as John Wiegley explains, all languages have a cost, but in the case of Haskell most of the cost is paid upfront, while learning the language, instead of having to pay continuously while using the language.


1. Haskellを使う企業は実際少ないですが、増えてもいます。



2. Haskellを選択することは、今でも勇気が必要です。例えば、友人が起業してHaskellをバックエンドに使いました。




3. Haskellを知ってるプログラマは少ないがやはり増加傾向にあると言えるでしょう。


今彼が書くとしたら、“Haskell Paradox”と呼ぶと思います。現場でも当てはまります。仕事で、我々はHaskellとJavascriptのプログラマを雇っています。JavaScriptは人気の言語であるため、募集する人はHaskellよりずっと多いですが、Haskellに応募する人は優秀な開発者が多く、少ない応募者の中から求める質を満たす応募者を探しやすいのです。
4. Haskellが従来の言語とだいぶ違うのは、確かです。
5. 残念ですが、従来言語で満足なベテランが適応しようとしないのは本当です。JavaとC++で、Haskellのテクニックがうまくいきそうな状況に当たったことがありますが、同僚の説得にうまく言った試しがありません。
6. 同僚は他の点では、とても賢い人達でしたよ。JavaプログラマがScalaのプログラムに協力しようとしてくれたこともあります。技術リーダーが彼にどうやって関数的な書き方をするか見せてあげようとしましたが、それは議論になり、ついには言い争いになりました :( 

実は余計ではないんです。John Wiegleyが言うように、全ての言語を学ぶにはコストがかかります。Haskellは先払い。他の言語は、月払いと言えるでしょう。