As far as the supply of programmers is concerned, if a software developer is TRULY talented, then they will be able to learn a new language in a couple of days, and learn a new paradigm (such as functional programming) in a couple of weeks. I say this as a person who has moved from imperative programming to object-oriented programming to functional programming over my career. And I have used so many languages that I have difficulty even enumerating all of them. They range from machine language, to various assembly languages to FORTRAN, COBOL, C, Visual BASIC, Java, Python, Ruby, Scala. The hard part of programming is not the coding. It is the DESIGNING. If you do the design part well, then the code flows from your fingers naturally, and you end up doing very little debugging, especially if you practice TDD which forces you to debug problems within 15 minutes of creating them.
My opinion rarely resonates with HN because HN is full of programmers who are well into the top 5% of programmers. The last thing any of those fine folks want to hear is anything bad about their favorite language, be it Lisp or Haskell or Clojure or $SOME_OTHER_LANGUAGE_IM_TOO_DUMB_TO_USE.
I'm the dumbest guy on our programming team. I'm also the lead. My main service to the company is to try and keep the code base debuggable. I do that by limiting clever things as much as I can.
Haskell strikes me as very clever. It's sold as if it will produce less buggy code; I've not seen real world evidence that that is so and I highly doubt it is impossible to write bad Fortran in Haskell.
So perhaps the reason that Haskell hasn't taken over the world is that it seems to be something that "smart" people like and more average people don't understand. Any business that doesn't worry about how they are going to support their products (and hence their source base) down the road isn't going to survive very long. The rockstar leaves and everyone else starts rewriting his code.
This story is as old as the hills, it's been the same way ever since there have been programmers. A really great programmer can get the job done in any language and a true rockstar will write code that even I could understand.
It is not. You should check it out some time. For purposes of this post I will pretend haskell and ghc are one in the same (ghc is the most popular haskell compiler). Haskell is built around a very simple, straightforward core language (shockingly enough called "core"). There is massive resistance to adding anything to haskell that can not be expressed in core and would require changing it. Haskell values simple, powerful abstractions that can be widely re-used. Haskell has not taken over the world because it doesn't want to. Python has not taken over the world either, I doubt many people would claim it is because python is too hard or too complex. Taking over the world does not appear to have any correlation with being a good language.
A lot of what HN perceives as good I perceive as a problem that I will be left to solve.
I'm old, I'm over 50, got kids, spend a fair amount of my pile of ability each week trying to coach those kids in hockey.
Still working on the company, still trying to make money, still trying to keep it going. Every time someone shows up with something like Haskell I either beat it out of them or I fire them.
I'm sorry but I don't have the energy to deal with your new cool language. I've got a company to keep going, a life to live, I just want to take care of our customers and do it in a way that the next guy can understand and support.
Haskell might be God's gift to programming, I don't care. My job has nothing to do with making people like you happy. I've got customers I need to take care of, Haskell doesn't help. I've got employees I need to take care of, Haskell doesn't help (we are weird in that we've been around for 15 years and most of my guys are still here, we're all getting old and when you get old all that clever shit starts to look like stuff you can't support).
We recently added some pretty complex stuff to BitKeeper, basically a file system and a VM system. For a frigging source management system. In user space. Life is hard enough in C, you want to toss Haskell into that mix? Really? Come interview with us and you'll run screaming from Haskell and everything like it.
If you don't care about new technology and would rather focus on your owns hockey, that is fine, but please don't go on the attack(1). It demotivates people who want to innovate with new "clever shit"
1. It was not a direct attack, but I would consider making a point against something then purposely ignoring an experts defense in at least the same category