To release, or not to release

pdcawley on 2002-04-25T08:51:28

So, I have this Perl Scheme interpreter.

On the plus side, it has:

  • Tail call optimization
  • Working define
  • Working lambda
  • Working if
  • Working set!
  • Working car/cdr
  • Working cons
  • Working quote
  • Working lexical scoping and closures
All of which means it's Turing Complete and could, in theory be used to implement the rest of scheme. (Must make readc and peekc available at the scheme level so you can implement a read/eval/print loop...)

On the downside it has:
  • No docs.
  • No tests.
  • No cond
  • No I/O
  • No scheme->parrot compiler (which is sort of the point of it...)
The no tests thing is faintly embarrassing given that I'm generally really keen on tests. Must poach a scheme test suite from somewhere. Until now let's pretend that this is a spike.

So, do I bundle it all up in a tarball and stick it on a website somewhere? Or do I just offer tarballs to anyone who asks with the usual 'patches welcome' caveats? Or do I keep it close and release it when it's a little tidier.


Tests

acme on 2002-04-25T09:08:00

You need to have tests. I shouldn't have to tell you this as you used to be keen on XP but how can you possibly know that your code works and that you haven't broken stuff if you don't have any tests?

;-), Leon

Re:Tests

pdcawley on 2002-04-25T09:13:37

Well, yes. I know. I've got this far just doing the 'I wonder if that works' thing. For true XP goodness I should now throw it away and start again from the tests, but I'm not going to do that. I'll just have to write a bunch of tests.

Re:Tests

pne on 2002-04-26T05:48:42

(Score:-1, Flamebait)

So... what you're saying is that XP is good in theory, but when some aspect of it becomes inconvenient because it's a lot of work, nobody really sticks to it?

Or, to phrase it a little differently, "Do as I say, not as I do -- I can't be arsed to follow the XP model 'properly' but I still think you should because it's great and makes your code better"?

(No ad hominem intended; those were just a couple of the thoughts that went through my mind when I read that.)

Re:Tests

pdcawley on 2002-04-26T21:48:30

No offence taken. But I'm not enough of an XP zealot that I won't do personal work because there's nobody sat at the keyboard with me.

Actually, I'm still not sure how I'm going to write anything but acceptance (scheme level) tests for this thing, most of the structural classes are really simple; mostly there to to bounce double dispatched calls off and writing tests for accessor methods is one way of driving yourself mad.

The lack of tests is why I'm still uncomfortable about releasing it; it's a spike that didn't get stopped soon enough. (The perils of programming without a Pair.)

Re:Tests

chromatic on 2002-04-28T20:35:56

...writing tests for accessor methods is one way of driving yourself mad.

Hmm, I'm sensing a repetitive, mind-numbing task here. Could this be automated somehow? :)

Re:Tests

pdcawley on 2002-04-29T08:35:46

To what end? If your accessors are failing then your more meaningful test are going to show this up pretty bloody rapidly.

AHA!

chromatic on 2002-04-25T14:45:28

I knew you were listening!

release often, release early

TeeJay on 2002-04-25T11:50:45

I've released stuff without tests..

sure I've tested it, but people have come back with patches and errors. On the whole people would rather have it and fix a bug or two than not have it.

hth,

A.

Give out what you have!

jdavidb on 2002-04-25T15:29:28

Put what you have on a website somewhere. Let other people worry about if they need all that other stuff. Only add it if you want it.