Why is Haskell used so little in the industry?
flyingfrogblog.blogspot.com
flyingfrogblog.blogspot.com
Point in case, here is his list of disliked submission on Reddit: http://www.reddit.com/user/jdh30/disliked/
Ignore this guy.
The more general trend is frightening. People apparently think that it's acceptable to judge a programming language based on the personal life of an advocate. I see this a lot; "perl6 sucks because audreyt used to be a boy" and "perl sucks because larry wall goes to church". Now we have "haskell sucks because of something about dons' phd".
WTF?
Flag, ignore, run ..
Anyway, let's briefly entertain each argument.
Lack of compelling examples: there is a whole book, Real World Haskell, and there are 2000+ modules on HackageDB that you can read. There is darcs. There is xmonad. There is GHC. Etc., etc., etc. If you want to read real Haskell code, it's one click away on any documentation page. This argument is bullshit.
Lack of success stories: I like: http://neilmitchell.blogspot.com/2007/05/does-xmonad-crash.h.... What is more compelling than "I used a theorem prover to ensure that my GUI app can't crash"? I know "industry" likes stories about some happy CTO that decided to use Foo and improved revenues 8 percent. But the reality is, nobody actually cares about this. People use languages because they know them and like them. Why did I introduce Haskell at the bank where I work? Not because of some happy CTO story. I did it because I was confronted with a problem to solve, and decided that I would be best able to solve it with Haskell. I was right; the project was a success. I don't get to work on it much anymore because it never breaks. Fail!
User unfriendly: apt-get install ghc6. cabal install whatever-from-hackagedb. Easy. It's even easier on Windows and OS X -- download the Platform, click the icon, done. I run a production app on Windows (sadly), and installing Haskell is so trivial I don't even think about it.
Commerce unfriendly: Industry likes source code, not proprietary products where the vendor dies and you are left with a codebase that can never be fixed. Perl is widely accepted in industry, and nobody has ever made any money selling closed-source libraries. There are a few closed-source Java, C#, and C++ libraries around, sure, but who cares? If you like them, buy them. If you don't, don't. This is irrelevant.
Ill advised: lies. Plain and simple. Haskell might have been a so-so choice for real work back in Hugs days. It was slowish, the FFI was meh, and there were no libraries. Now GHC is one of the fastest programming language implementations available (like, faster than C++ and Java, sometimes). It's FFI is great -- I had never done FFI work before a recent project (I always avoid Perl's XS, although I am pretty good at that now too...). I read the docs, I typed some stuff into the REPL, and in a few hours, I had a binding that was less crashy than the underlying library. It was wonderful. Anything that saves time and makes software more reliable is good for industry. Oh, and it's fast. And I can interactively develop. And I can write property-checking tests.
If this is bad for industry, I am very out of touch with industry.
Bad science: OK, I'm tired of reading this tripe now.
I know I've said it like 8 times, but this article is bullshit. Never have I felt more confident in using that word.
The reason why Haskell is little-used in industry is because it's little-used in industry. People join a team and use whatever language the app is written in. When they decide to write something unrelated, they say, "well, I have this whole team that knows Foo, and I'm really good at Foo, so I'll use Foo". Eventually someone introduces a new technology, and then people start feeling that way about the new technology. Then they change jobs, and spread the feeling. Before you know it, everyone is using Bar instead of Foo. (Examples: Perl. Java. Perl supplemented and replaced C and Bash, and Java replaced C++. Because some guy decided he wanted to. Then they stuck.)
I use Haskell in industry. Worry about what you want to do, rather than what everyone is doing.
("But wait!" you cry, "How will I ever hire anyone to maintain this?" Dunno. My team can't find any C++ or Java developers, despite offering pretty interesting work and pay that's at the top of the industry. There just aren't very many programmers -- hiring a programmer for any language is hard.)
(Incidentally, if anyone's hiring haskell interns, consider this a shameless self-plug)