prototyping (was Re: Python vs. C++ Builder - speed of development)

Alex Martelli aleax at aleax.it
Sun Feb 2 10:59:28 CET 2003


Andy Freeman wrote:
   ...
> At some point, you're going to have to stop inventing data that might
> support your theory and come up with a theory that is consistent with
> the actual data.

+1 QOTW.


> If you're working in a domain where you're not spending much time
> programming, a better programming language/environment/whatever can't
> make any difference.  However, many of us don't have that luxury.

I'd put a distinguo: if "you're not spending much time programming"
NOW, it's not necessarily the case that a better language (&c) "can't
make any difference": it _might_ enable you to spend MORE time
programming and enhance your overall results.

Let me "invent some data" to illustrate;-).

Hypothetic example: say I'm doing analysis together with a customer.

Each time we determine what he thinks he need for some subpart, I
can either write it down as a specification (say that takes me
20 hours) OR code it up as a prototype (say that requires me to
code 100 Function Points' worth of functionality).  For each next
pass over the issue, it takes me and the customer 20 hours to
go over it and be ready for the next pass (specification or
prototype) if we work on a specification; 5 hours if we work on
a prototype.

Now, the only variable left is: what is my productivity with
the language I use for prototype coding.  Call that P in units
of function points per hour.

Then, each pass takes: 20 + 20 = 40 hours of my time if I work
with specifications (let's assume the customer's time is free,
silly but a simplification;-).  100/P + 5 hours of my time if I
work with prototypes.

Clearly, if I start with a language such that P==2, I'm better
off not doing ANY coding -- the prototypes would take 55 hours
per interaction, so I'll write specs and only take 40 hours.

But if I switch to a language with P==4, then suddenly the
picture changes -- the prototypes now take 30 hours, the specs
still 40 hours, per interaction, so it's prototyping time.

So, even though I WAS working in a domain where I wasn't
spending any time coding, a better programming language could
and did make quite a difference -- with it, I've enhanced my
total productivity by over 30% (and I now spend 5/6 of my
time coding) [net of 0-th iteration considerations]...


Alex





More information about the Python-list mailing list