[Haskell-cafe] HSpec vs Doctest for TDD

Erik Hesselink hesselink at gmail.com
Thu Jun 26 13:01:05 UTC 2014


That is a good description of my feeling right now as well :)

Erik

On Thu, Jun 26, 2014 at 2:59 PM, Tom Ellis
<tom-lists-haskell-cafe-2013 at jaguarpaw.co.uk> wrote:
> I feel like I'm reading a Monty Python sketch.
>
> On Thu, Jun 26, 2014 at 01:50:18PM +0100, Alois Cochard wrote:
>> I'm not replying to you nor Michael Orlitzky.
>> I'm replying to Richard A. O'Keefe.
>>
>> You can see that by looking at which message was quoted below my actual
>> response.
>> I hope it will make things clearer, because I'm actually not arguing at all
>> against what you are saying :-)
>>
>>
>> On 26 June 2014 13:44, Erik Hesselink <hesselink at gmail.com> wrote:
>>
>> > On Thu, Jun 26, 2014 at 2:24 PM, Bob Hutchison <hutch-lists at recursive.ca>
>> > wrote:
>> > >
>> > > On Jun 26, 2014, at 3:10 AM, Erik Hesselink <hesselink at gmail.com> wrote:
>> > >
>> > >> On Wed, Jun 25, 2014 at 5:47 PM, Michael Orlitzky <michael at orlitzky.com>
>> > wrote:
>> > >>> On 06/25/2014 11:24 AM, Francesco Ariis wrote:
>> > >>>> On Wed, Jun 25, 2014 at 02:45:37PM +0200, Mateusz Kowalczyk wrote:
>> > >>>>> While I disagree with initial view that testing is useless, I
>> > certainly
>> > >>>>> disagree with this approach too. There are plenty proof-assistants
>> > using
>> > >>>>> type-checking to prove programs correct. That's not to say Haskell
>> > >>>>> itself is suited for such task. If you have a type system strong
>> > enough,
>> > >>>>> classical tests are no longer required because you can encode all the
>> > >>>>> properties you need in types proving at compile time that your
>> > program
>> > >>>>> is in fact correct.
>> > >>>>>
>> > >>>>
>> > >>>> For non-believers, here is a blog post that opened my eyes on the
>> > matter [1].
>> > >>>>
>> > >>>> [1] http://lambda.jstolarek.com/2013/12/data-is-evidence/
>> > >>>
>> > >>> None of that helps if you write the wrong program. Your program may
>> > >>> typecheck, but if you're expecting "42" as output and your program hums
>> > >>> the Star Trek theme instead, the fact that it correctly does the wrong
>> > >>> thing won't be much consolation.
>> > >>
>> > >> The same goes for any kind of testing, though. All these (writing the
>> > >> program, giving types for the program and testing the program) are
>> > >> different ways of specifying the same thing. The benefit from doing it
>> > >> twice in different ways, is that it's unlikely that you'll do it wrong
>> > >> twice *in the same way*.
>> > >
>> > > So, tell me about QuickCheck… why is this thing thought so highly of?
>> > (this is a rhetorical question, I don’t need an answer :-)
>> > >
>> > > The problem isn’t really the unexpected humming of a song. It’s
>> > answering 43 when you’re expecting 42.
>> >
>> > Are you replying to me, or Michael Orlitzky? Because I'm not sure what
>> > point you're making. I'm not arguing against the use of tests *or*
>> > types. I'm just saying neither is going to give you complete
>> > guarantees, but using either one is already much better than using
>> > none.
>> >
>> > Erik
>> > _______________________________________________
>> > Haskell-Cafe mailing list
>> > Haskell-Cafe at haskell.org
>> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>> >
>>
>>
>>
>> --
>> *A\ois*
>> http://twitter.com/aloiscochard
>> http://github.com/aloiscochard
>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe


More information about the Haskell-Cafe mailing list