Silk: why we use Haskell
blog.typlab.com
blog.typlab.com
To answer some of your questions a little more directly (I hope someone like dons with a more encyclopaedic knowledge can pitch in here):
* As a language, Haskell is both very stable and very cutting-edge. This is because GHC (the only Haskell compiler people use seriously for production, at least as far as I'm aware) supports both the Haskell '98 standard, and the more recent Haskell 2010 standard—but it also supports a large number of language extensions [1] such as type families, existential types, GADTs etc. So
* In terms of scalability, some of the recent benchmarks for Haskell-based web servers have been very impressive. Whether or not this translates into real-world performance is something we'll see as more people start using them in production. Recent improvements to the GHC I/O manager make the case for Haskell more compelling in this regard than it used to be.
* It's pretty easy in Haskell to write wrappers around C libraries, such as OpenSSL. There are also moves to implement more of these core parts of any web stack in pure Haskell, although getting them to feature-completion is a process that will take time.
A couple of recent reads spring to mind: a Stack Overflow discussion [1] where Alex Payne asked about Haskell tools to make programs production-ready, and Johan Tibell's article [2] on which Haskell libraries one should use.
[1] http://www.haskell.org/ghc/docs/7.0.3/html/users_guide/ghc-l...
[2] http://stackoverflow.com/questions/5808825/what-are-the-best...
[3] http://blog.johantibell.com/2011/04/haskell-libraries-you-sh...
* The language standard specifies Unicode strings
* The Haskell Platform library standard adds support for Unicode IO based on packed text buffers
* OpenSSL is provided via the venerable hopenssl library
And there are many happy web users, such as Janrain, Galois, typLab, Bump, Deutsche Bank and others.
The ecosystem is in a pretty nice place now.
(Also applies to cofounders and the application itself.)
(and before someone corrects me, yes I know sometimes you can't do that, and yes I know that in that situation you usually have to choose practicality over fun)
What you're familiar and comfortable with is one of the most important considerations in language/platform choice.
Even more predictably, not a single word on more pragmatic reasons to choose Haskell as a startup, such as: web and networking support, logging, database access, etc...
The odds of a startup succeeding are already vanishingly small, why make it even harder on yourself by picking an exotic language that's all but unknown in the work force?
<shakes head>
The idea isn't to get rid of effects but to quarantine them, separate them from simple functions into "procedures". This means you get to have real functions in Haskell, and they truly are easier to compose together than what other languages call "functions" but are actually procedures.
As for concurrency, Haskell is really in a unique spot, where you can get the performance of threads and the simplicity of processes: the immutability of everything not explicitly created for inter-thread communication gives you the same safety of IPC, but the shared memory gives you threads' performance.
I think the benefits outlined on the page may not be specific to web development, but they definitely apply to it too.
I haven't seen Tony Morris abuse anyone in the community, and the IRC channel is an amazing combination of immense knowledge and patience with newbies.
Seriously? Here is the latest example on scala-debate, just two months ago, where he went so far off the deep end that Martin himself had to step in and tell him to cool down:
http://groups.google.com/group/scala-debate/browse_thread/th...
He dishes this kind of abuse on a regular basis on lists, irc (especially #scala) and sometimes even on his own Twitter feed.
Anyway, back to the topic at hand: yes, I know the theory behind immutability and isolation and how it can enable easier parallelism. I have yet to see practical examples of that in Haskell and convincing stats that show a boost in performance compared to more traditional approaches (such as Java+nio or even Scala actors).
My questions still hold regarding Haskell's adequacy in production, e.g. with regards to database, logging or continuous integration, and I'm not the only one: Alex Payne recently expressed the same concerns on SO:
http://stackoverflow.com/questions/5808825/what-are-the-best...
The principles of the channel require this, http://haskell.org/haskellwiki/IRC_channel#Principles -- if an op has treated you unfairly, please let us know, and we can correct the situation.
Having met Tony many times, I'd just like to say that he's a very good teacher and a nice guy.
He is extremely condescending towards those that don't get it, especially when they don't display sufficient humility about their lack of knowledge. You have to go "I'm sure you're right, but I would think that you could do such-and-such" to avoid pissing him off. As soon as you say "I think that's wrong, because of this-and-that", then you run the risk to get shat all over with comments of the "you don't get it and you don't want to learn"-kind, even though you're engaging in conversation that wouldn't lead to a flamewar with most other people.
He is a decent teacher for those that can look past his purist rants and are sophisticated enough to ignore the antagonizing that's going on, but he could do much to disseminate his knowledge more effectively to a wider public, without losing anything of the value of his message. It's an awful waste :/.
On the other side, you should read the blog post he put up an hour ago (possibly in response to this thread):
http://blog.tmorris.net/three-and-a-half-friggin-years-later...
PS: This is why I sometimes demonstrate low tolerance for stupidity and/or failure or refusal to entertain the possibility of thinking. People get hurt. No, I am not sorry.
(for context he is very good at squash and hurt himself while playing)
"I have formed the opinion that medical specialists are no more equipped to make a medical diagnosis than lay-people."
You would think someone with a reasonable intellect would refrain from making such sweeping generalizations, especially when their own judgment has been clouded by negative empirical evidence.
No, really, he's deranged. Quite a waste indeed.