
Curt Sampson wrote:
I've been hearing that having lots of libraries is an insurmountable advantage, and you're doomed if you give them up, since long before I took up Haskell. It's mostly myth promulgated by people driven by fear. I'm sure it's the case in some shops that they have lots of people who can glue libraries together but can't program, and they somehow manage to produce applications this way, but even that I suspect is not so frequent a situation as you'd think.
The real insurmountable advantage is not in the quantity (nor quality) of the libraries, it is in the *particular* libraries. Shops which are only using libraries for basic data structures and for glue work are able (and not infrequently willing) to switch to another language provided it has a library ecosphere ---which Haskell with Cabal/Hackage most certainly does. The glue workers are not the ones most unwilling to switch. The real demographic that's unwilling to switch are those who are using a particular high-performance library. The reason they won't switch has nothing to do with the language, and everything to do with the countless man-years invested in that specific library. To pick some examples familiar to me: the Joshua SMT toolkit[0], the MALT parser[1], NLTK[2], GMTK[3], etc. Not all of these are Java, some are Python, some are Perl, and some are C++; but bridgework is annoying and most people stick to the original language. These libraries keep client developers near because they are not replaceable. Data structures, network stacks, XML parsing,... everyone has these. But the high-performance state-of-the-art libraries tend to be written once and tweaked ever after. The conversion of the Moses translator (Python) into the original version of the Joshua translator (Java) was a non-trivial undertaking and it earned a few publications along the way ---just for converting it to a different yet similar language! And, of course, a number of man-years and publications have been invested in it since then. [0] http://joshua.sourceforge.net/ [1] http://maltparser.org/ [2] http://www.nltk.org/ [3] http://ssli.ee.washington.edu/~bilmes/gmtk/ -- Live well, ~wren