Friday, May 24, 2013

Elevator pitch for Haskell short enough for an elevator ride

Greg Hale has written an "elevator pitch" for Haskell. While it is certainly a good piece of advocacy, it is quite long, and therefore not an elevator pitch. The idea of an elevator pitch is something you can deliver in the 30 seconds or so that you find yourself sharing an elevator with a potential investor.

I've been looking for an effective Haskell elevator pitch for some years now, but the only thing I was able to come up with was just that you can deliver software better, faster and cheaper because you need fewer lines of code. This just sounds like hype.

However I think I've now got something better. Here it is:

Conventional languages make the programmer construct both a control flow and a data flow for the program. There is no way to check they are consistent, and anytime they are inconsistent you get a bug. In Haskell the programmer just specifies the data flow: the control flow is up to the compiler. That simplifies the program, cutting down the work and completely preventing a big class of errors.

5 comments:

Franklin Chen said...

No mention of types? Haskell's type system is the most interesting thing about it.

Tracy Reed said...

Franklin,

By the time we explain types the elevator will have arrived, the door opened, the exec we are pitching to will be out of the elevator, across the parking lot, and in his car on the way home to his wife. So no mention of types.

Paul Johnson said...

Tracy is quite right. The prospect for an elevator pitch doesn't want to hear about interesting type systems, they want to hear about getting software faster cheaper and better. Of course the Haskell type system does lead to that, but the explanation of why doesn't fit into an elevator pitch.

Also, most people on the edge of the software world (and quite a lot who are deep inside it) think they know what a strongly typed language is; its like Java. Simply getting past that is no easy task. Better to have a message that says "different, but in a good way". That is what saying "no control flow" achieves.

Anonymous said...

After your pitch, won't the investor just go "I see, ok, that sounds great. Oh this is my floor, see ya later!" ? :)

greg said...

For bringing the elevator pitch down to 30 seconds, I like this idea of letting the programmer worry about data flow while the compiler works out the control flow. Reminds me of, "Imperative programs are long sequences of steps that the programmer has to understand in order. Functional programs are collections of facts that are all always true." The latter manages to avoid some jargon, too.

I'm in complete agreement that my 'elevator pitch' doesn't fit the definition. But I'm kind of left not knowing what else to call it :) Coffee with laptops pitch?