Subject: Re: Python extension commands in git - request for policy change

From: "Eric S. Raymond" <[email-masked]>
Date: Sun, 25 Nov 2012 05:25:36 -0500

Johannes Sixt <[email-masked]>:
> Am 25.11.2012 03:44, schrieb Eric S. Raymond:
> > That, among other things, means up-to-date versions of Python are
> > ubiquitous unless we're looking at Windows - in which case Perl and
> > shell actually become much bigger portability problems.
> 
> You seem to ignore that more than a quater of users are on Windows[1].
> This is not negligible.

I'm not ignoring that at all.  There are questions of fact here:

Are Perl and a POSIX shell part of the stock installation of Windows?
I believe the answer is "no".  You are free to correct me, but if that's
true they don't have any obvious portability advantage over Python.
That means the 25% percent of Windows users are not actually a reason
to prefer them.

> Absolutely not. To achieve best portability, all code should move to C
> instead.

I wrote the (first) book on C portability.  I mean that literally -
"Portable C and Unix Systems Programming", Prentice-Hall 1987.  Please
don't feel insulted when I point out that over the last 25 years I
have probably forgotten more about this topic than you know.  Just
listen when I tell you that it is not at all obvious that raw C is the
maximally portable language.

It may very well be the case that some random scripting language (not
necessarily Python) achieves greater portability simply because its
maintainers get to pay more concentrated attention to the portability
of the environment bindings at the bottom of their C implementation than
we can.

In any case, I don't believe the difference in portability between raw
C and Python is large enough in either direction to be a reason to
favor either, and I speak as a domain expert on this issue.  This is
not Python advocacy talking; the same could be said of Perl or Ruby.

The real advantages of a scripting language are in maintainability and
expected defect rates, not portability.  The three relevant things we kbnow
from large-scale studies of software defect patterns are these:

1) Expected defect counts are predictable from LOC.

2) Moving to any given scripting language from C dramatically reduces LOC,
and thus expected defects over time.

3) Moving to any scripting language from C eliminates a class of
memory-management problems that dominate C defect statistics.
-- 
		<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>