Python vs. C++ Builder - speed of development

Brandon Van Every vanevery at
Sun Feb 2 08:16:41 CET 2003

Alex Martelli wrote:
> Brandon Van Every wrote:
>    ...
>> really do feel that most of my time right now is spent on design,
>> and that no
>> language would allow me to code any more rapidly than any other.
>> C++ just
> Python has the potential to make your design more productive, too.
> Whenever you have to choose between (algorithms, data structures,
> or more generally "approaches") A, B and C, Python makes it quite
> feasible to code them all and then choose between them on the basis
> of actual experience, rather than mere theories.

There's nothing remotely theoretical about my current C++ development.

>> If you Keep It Simple Stupid in C++, it ain't that bad.
> But you can't keep C++ all that "simple", really.

Yes you can, when you're solo coding.

> You cannot "simply not use" ``worry about who owns what'' in C++.
> SOME object X has to hold THE owning-pointer (e.g. auto_ptr) to
> another object Y, while other pointers to Y don't "own" it -- you
> have to KNOW when Y gets freed; or else you get to reimplement
> reference counting and/or other approaches to garbage collection,
> infrastructure which Python gives you in a much better developed
> and usable state.

I haven't written anything in my entire code base that uses reference
counting at all.  I do not live in a "I must spawn this zillions of times!"
world.  Not yet, at any rate.  I may need it later, but by then I will have
"poured a strong foundation."

> Of course you don't use nested functions in C++ -- it does not
> support them.  That's a _handicap_ of C++, by the way.

I've yet to design anything that needed nested functions.

> If you don't use templates in C++, that's your loss -- they're

It is not a loss when your overriding goal is to get 1 code path working
well.  I do not believe in a bazillion code paths, you can't optimize them
all.  I have a RISC mentality.  So first you get the 1 code path working
well, you do everything that you possibly can with it, and only much much
much later after the design is proven do you worry about templates.

I also don't believe in trying to solve everybody's problems in some
general-purpose way up front.  Solve the specific problem you're working on.
Don't start out writing templates, it's a bad impulse.  Make a template out
of something with proven utility, that you need to extend to a more general
case.  Templates should be code *reuse*, not code anticipation.

> And I do *NOT* believe you
> do not use any casts in your C++ code, _particularly_ if you
> make no use of templates.

At the stage of development I'm at, it's a true statement.  Well, I cast
some ints to floats to do various calculations, but I'm sure that's not what
you meant.  Really, there's nothing that needs any shoehorning in my current

Brandon Van Every               Seattle, WA

20% of the world is real.
80% is gobbledygook we make up inside our own heads.

More information about the Python-list mailing list