[Haskell] Haskell as a disruptive technology?

Paul Johnson paul at cogito.org.uk
Wed Mar 29 16:28:32 EST 2006

Sorry to have been out of the discussion for so long.  I've just 
upgraded to Fedora Core 5.  Multimedia and the proprietary NVidia 3d 
driver have yet to be added, but at least email is now up.

Robert Dockins wrote:

 > FWIW, I'd like to voice my agreement with this view.  The hardware 
manufacturers are
 > hard at work building the perfect niche for Haskell -- all of 
commodity desktop computing!
 > Moore's law is still packing more transistors onto the silicon, and 
it seems like people have
 > run out of ideas for what to do with them, so they just start 
duplicating cores ;-)   All we
 > have to do is be ready for it when it arrives.  When people see that, 
using Haskell, they
 > can write programs using 1) fewer man-hours with 2) fewer bugs which 
3) scale effortlessly
 > to highly parallel hardware to beat the pants off 
C/C++/Java/what-have-you, they'll be
 > beating down the doors to get it.

Sorry.  I really wish I could agree, but I don't.  Like I said earlier, 
it doesn't matter how good your technology is, if you go up against the 
incumbents you will lose every time.  Here is how I see it playing out:

1: People start to complain that effective use of multicore CPUs is very 
hard.  The trade press editorialize on the problem: is this the end of 
the computer performance revolution.

2: Sun and Microsoft bring out support for STM in Java and C# 
respectively.  The trade press editorialize on this wonderful new 
technology.  Haskell may get a mention as the original prototype, "but 
now its ready for mainstream use".

3: The Java and C# support turns out to be unsafe, partial and 
inefficient.  Long articles are written in the trade press about how to 
make sure your programs use it properly.  Programmers with proven 
experience in these flavours get big pay rises.

4: We sit around wondering what happened.  "Its not fair: we had this 
years ago and done right.  Why is everyone using the broken stuff?"

I've seen this happen before, with Eiffel.  From around 1989 I was 
telling people that Eiffel was the way to go.  It was better than C++ in 
every way, and garbage collection was a great win.  Nobody would try 
Eiffel.  They said GC was inefficient, and anyway real programmers 
didn't need it.  Then Java came out, and a couple of years later a 
project manager who had previously ignored my enthusiasm about Eiffel 
told me how great it was to have GC in Java, and how few bugs they were 
getting as a result.  I managed a weak smile.

Getting good concurrency support on SMP is important, of course.  But 
its not going to beat Java and C++ on their home turf.  That is the 
point of disruptive technologies: they start out in a niche and then 
spread.  First find a niche.

One of the lessons Clayton Christensen draws from his study of 
disruptive technologies is that the market for them is unknown and 
unknowable.  As a rule you don't identify and analyse it, you notice it 
by accident and have the agility to exploit it.  One example from the 
book: Honda initially tried to sell its motorcycles by competing head-on 
with incumbents like Harley Davidson.  They got nowhere, but when the 
frustrated marketroids took their sample bikes out on the sand dunes for 
some fun, friends asked where they could get one.  So the marketroids 
got a few as a favour to their friends.  And *their* friends asked for 
some too, and it eventually dawned on Honda that there was a whole new 
market for light recreational sport bikes that their model was just 
right for.

So it is with Haskell.  I've spent some time looking for niches where 
Haskell might fit.  I've got a couple of ideas (test harnesses and 
experimental simulations), but if I or anyone else laid out a marketing 
programme based on those ideas then it would very likely be wrong in 
some important way.  What we need to do is to look for lots of similar 
sorts of software: marginal opportunities that are poorly served by the 
big incumbents, but where Haskell can shine.  When you find something 
like that then push Haskell and see if it fits.  If you win then spread 
the word, and get your new converts to do the same *in their 
speciality*.  Then we will be going places.


More information about the Haskell mailing list