On 18/04/07, R Hayes <[EMAIL PROTECTED]> wrote:

One of the truly powerful things about Haskell is the short distance between
theory and practicality.  The problem is how to demonstrate this
convincingly.  The ability to prove a program's correctness is regularly
trotted out for show in this arena (or at least the lighter-weight claim
that programs that compile usually work).  I don't think that most
developers (and certainly not the OSCON crowd) are ready to drink that
kool-aid.  They *enjoy* debugging and are tired of the "static" vs.
"dynamic" debate.  But the ability to reason about programs has borne fruit
that I *do* think they will appreciate.  Because many of them care about
performance.

I completely agree with you there. Someone earlier in the thread
mentioned that QuickCheck almost in passing, but I think it should be
emphasised:

*QuickCheck is a really powerful way to work.*

The real pain in the butt with unit tests is having to write the damn
things. Especially for corner cases - if they were easy to reason
about they wouldn't really be corner cases, would they? QC allows you
to sidestep that neatly by generating a set of unit tests from a
specification. And often generating cases you *wouldn't* have thought
of yourself. Genius!

It does rely on a functional mindset, however. No state-fiddling going
on behind our backs. But maybe if you sell the idea first - create
hundreds of unit tests on demand without lifting a finger - then
people will make the leap of their own accord. Because let's face it,
selling referential transparency is a pretty dead loss ;-)

Salesmanship is about pointing out problems people have [1]. The
problem R Hayes identifies here is that theory is great in theory, but
in practise it's *too much work*. And short of creating a system where
even your QC properties are auto-generated (I live in eternal
hope...), this is a really important advances which people should
learn more about.


[1]: 
<http://weblog.raganwald.com/2007/01/what-ive-learned-from-sales-part-i.html>

Cheers,

Dougal.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to