Python development time is faster.
Harry George
harry.g.george at boeing.com
Mon Nov 13 09:49:54 EST 2006
"Chris Brat" <chrisBrat at gmail.com> writes:
> I've seen a few posts, columns and articles which state that one of the
> advantages of Python is that code can be developed x times faster than
> languages such as <<Insert popular language name here>>.
>
> Does anyone have any comments on that statement from personal
> experience?
> How is this comparison measured?
>
>
> Thanks
> Chris
>
Personal experience takes two forms.
1. Broad experience with languages, such that doing a single project
in a new language gives a sense of the relative power and
ease-of-use. Everyone I know who is a strong Python supporter took
that route. There was an Ahh-Ha experience part way into the first
project. This includes folks who could charitably be called
curmudgeons, and people who are truely fluent in, say, C++ or Lisp.
For these people the main success factor is that "it just works".
You spend time on new functionality, or experimenting with
alternative algorithms, not on debugging. Of course, we work in a
regression-test-driven world, so we don't pile up a lot of untested
code and then hope for the best. Python facilitates that
test-early-test-often approach with its modularity and fast
edit-run cycle.
2. Write the same thing in 2 or more languages. Due to machine
migrations and project redirections I have done that with
perl-and-python, java-and-python, modula3-and-python,
lisp-and-python. In all cases, python was the second language, so
there is some learning curve to be adjusted for (i.e., I understood
the semantics better). However, since I've done some
perl-and-perl, and lisp-and-lisp, I can maybe make that adjustment.
The result was that python was relatively faster-to-develop. I
can't give a specific speedup factor, but I sure can say Python is
now my default language. The success factors were:
a) Once you get the hang of the language (a weekend?), you can
write without reference to the manuals. Or if you do reference, it
is a quick lookup. No struggling to figure out how to code
something. Or to decypher what a line of code actually does.
b) The project doesn't bog down as you add features. The language
can accomodate new paradigms, patterns, or major functionality. If
you do need to refactor, that is easy too.
c) Peer code reviews are easy -- both you and the reviewers can
understand the code's intent at a glance.
--
Harry George
PLM Engineering Architecture
More information about the Python-list
mailing list