Why python???

John J. Lee jjl at pobox.com
Fri Sep 5 21:01:21 EDT 2003


"Michael Peuser" <mpeuser at web.de> writes:
[...]
> "Alex Martelli" <aleax at aleax.it> schrieb im Newsbeitrag
> news:NO66b.30883$R32.926812 at news2.tin.it...
> > Michael Peuser wrote:
[...]
> > Moore's Law is working in favour of higher level languages even harder
> > than it's working in favour of free but highly efficient OS's.
> 
> There are two aspects:
> (1) More power for same price - this works in favour of 'complex software'
> (2) Same power for less money - this works in favor of 'cheap software'

And?  What is your point?  In both cases, the more bangs per buck, the
greater the economic advantage that accrues to Python when compared
with, say, C++.

[...]
> > > So it comes to the question: What does the common programmer know? This
> is
> >
> > Not necessarily.  If common programmers only knew machine language,
> > it would still be cheaper to use any available high-level language,
> > say COBOL, even if you needed to supply training for it (it's not
> > hard to teach COBOL to somebody who knows assembly, anyway -- the
> > reverse is harder).
> I am on your way; maybe they more probably would be trained for some "macro
> language". This is no 'paradigm change'. Most C++ programmers (I know what I
> say!) write C programs.

That's certainly true of switching to C++ from C, because C++ is a
hideous hairy beast of a language.  OO in Python is easy to learn by
comparison, because you don't have to think about all that other stuff
-- the C++ language details that are pressing because they're the
things stopping you from getting your work done in the short run.

Python is an order of magnitude easier to learn than C++, but it
brings really significant programmer-efficiency benefits.  As a
result, the argument about training simply doesn't stand up: the costs
are lower than the benefits even on a short timescale.


> > Similarly, using Python can lower costs even
> > if you factor in training costs (again, teaching Python to good
> > Cobol programmers is quite easy -- other higher-level languages may
> > not be _quite_ as cheap in these terms, admittedly, but still the
> > economics aren't _hugely_ different).
> 
> This argument is valid for:
> - OOP ("Reuse will reduce costs")
> - RAD
> - XP
> - Design-for-testing
> - Rigid configuration control
> - state any new thing you like
> 
> The fact that  a better world is possible does not mean you get it.

True (with the definite exception of 'state any new thing you like'!),
but I get the impression most places don't even try.  Obviously, OOP
*has* swept the industry, and presumably most commercial development
makes use of version control.


> Python is by no means a "perfect" alternative to  - lets say: DOT-NET and
> #  - the advantages are difficult to see for persons in power or - I
> mentiones the tool costs - are of minor relevance.

Well, there's our point of disagreement, I think.  Certainly, they're
difficult to see for persons in power -- that's mostly their fault,
though ;-)

Total costs are exactly the issue -- the contention is that use of
languages like Python really does have a significant impact on that.


> I should as well like to discuss your aspect of programmer's productivity.
> This is an important  factor. However all investigations show that
> programmer's productivity is an unmeasurable quantity.

How would an empirical investigation show such a thing?  Financial
constraints certainly make such studies rare, and the large number of
variables make them difficult, but it's far from impossible.
Small-scale studies have been done -- I remember at least one
(reference, anybody?), and it certainly supported the position that
C++ and C are, by a fat margin, less programmer-efficient than
higher-level languages: Perl, Python, etc.  Larger-scale studies would
simply cost more.

On top of this, I think it should be noted that science is far from
limited to such empirical studies.  In fact, that kind of study is
really the dregs of science, at the same sort of level as
epidemiology.  Epidemiology, in the long term, isn't a fraction as
useful as real understanding of the processes of life, which has as
much to do with theory as experiment.  In the absence of that, our
common-sense counterpart of that kind of theoretical understanding,
backed up by what little empirical research that exists so far, and
(just as importantly) by the anecdotal experience of people who've
suffered both Python and other languages, is actually the best
knowledge we have.  These common-sensy bits of knowledge aren't merely
matters of opinion, they're backed up by experience and sound argument
from people like Alex.  Far from perfect, but the best knowledge we
have is the knowledge we should be using!


> It certainly has to
> do with what the programmer likes to do. If he or she would like to program
> in Python everething would be fine. However most or today's programmers like
> to do what is called "mainstream" (circular reasoning, I know)
[...]

Yes, and that reasoning is only valid when you remember that it's
merely shorthand for "mainstream languages give us access to
well-supported library code, well-stocked labour market, etc. etc.".
When you take those things into account, Python still frequently comes
out on top.


John




More information about the Python-list mailing list