You can even have very broad definitions of "non-trivial": it used to be received gospel on one programming board I frequent that Java was a terrible choice for a downloadable application. If you tried it your users would abandon you in the middle of their 120 terabyte download, your application would win awards for poor non-native design, and it would take approximately seven years to boot the JVM.
Then I made a few tens of thousands of dollars with Bingo Card Creator. (Which is written in Java. Further frustrating my efforts to win geek cred, the UI is in Swing.)
We don't hear much about the impossibility of making money with downloadable Java applications these days.
As for being full of bindings to languages written in other libraries, why is that a bad thing? In general, these libraries are common, cross platform, and thoroughly tested. Isn't code-reuse worth something?
Here's a breakdown by category: http://galois.com/~dons/images/chart-hackage.png
Science works, bitches.
you don't know anything about haskell, hackage, or anything related. stop commenting until you do.
Students in introductory programming classes write programs longer than that.
Get back to me when you've implemented KDE, Aqua, or Aero in Haskell.
xmonad is feature-laden
it is a small codebase not because it is trivial, but because the people who wrote it are kick-ass coders
I've heard that Haskell's space performance isn't great, but I don't know enough about the language to confirm or deny this.
I would recommend, if you're concerned with performance, using Ocaml. You can compile it down to native code, and its performance characteristics are comparable to C.
It seems like anybody can make these mistakes, and they are mostly invisible until one day your problem size is a little bit larger than normal and your program explodes and crashes.
In a strict language, you write an expression and it's perfectly clear when it will be evaluated.
With lazy evaluation to know if or when an expression will be evaluated you have to follow it through possibly many layers of function calls (which may have been written by somebody else) looking for a place where it needs to be evaluated. Along the way it may become embedded in other expressions which complicates the problem.
How do you know when an expression needs to be evaluated? I don't know if I'm smart enough to understand the answer to that question:
http://en.wikibooks.org/wiki/Haskell/Denotational_semantics#...
Why not do both? Preaching the Good Word can go hand-in-hand with practicing it.
Besides, I don't think I should need to spend all of my waking time coding; I already spend several hours a day doing that. Why can't I take a break to argue that Haskell's tools make the language more production focused than most people realize?
Am I out of line to expect some sophisticated Haskell programs to exist before taking this claim seriously?
is there as much haskell out there as c, perl, python? no. but if you want to be a pioneer you have to drive on a little dirt. but don't worry, we'll keep plugging away and in no time at all the haskell highway will be lined with HoJos and rest stops and miles of flat-top...we'll send you a postcard.
How about not.
Languages get adopted because they make new things possible/easier, not because they're good for re-inventing the wheel.
Of course, "make new things possible" is a tricky thing to make sense of. What new thing did Python make possible? Or Ruby? Or PHP? Or Perl?
I'm not sure about which features originated in dwm vs. xmonad (there seems to be cross-pollination of ideas between the two, so that's a good thing either way), and I haven't used house or camp.
Innovative does not mean valuable, or, more important, popular.
I proposed the theory that languages become popular because they make creating new things possible and/or easier.
If Darcs qualifies as such a new thing, the fact that it didn't help popularize haskell argues against my theory.
Maybe my theory is wrong. (I'd certainly patch it in certain ways.) Maybe Darcs doesn't qualify. Maybe Darcs didn't do the trick because no one knows about it.
So, let's flip the question. What has the Haskell community done that has been important in making other languages popular in the past? If they're not doing any of those things, why should Haskell nevertheless become popular? (Note that lots of "superior" languages never became popular, so if you're going that route, you get to explain why Haskell will be different.)
(XMonad is a much less significant example for Haskell's popularity, IMHO.)
It seems highly likely to me that Haskell's type system made inventing Darcs's theory of patches significantly easier. While a Darcs-like system could be written in C, designing the system as a whole was almost certainly aided greatly by Haskell's type checking and lightening of certain conceptual burdens through laziness.
When you have more non-trivial applications written in Haskell than a Haskell compiler and a DVCS it will be a lot more credible to talk about it being ready for 'Prime Time'.