Case sensitivity - serious question; no answer expected

Alex Martelli aleax at aleax.it
Thu Feb 27 06:31:25 EST 2003


Jedi Master Yoda wrote:

> On Sun, 23 Feb 2003 16:55:11 -0800, Erik Max Francis <max at alcyone.com>
> spouted:
>> Indeed.  This is a semireligious issue in that neither side will ever
>> come to a consensus, even if neither side can articulate their reasons
>> for their beliefs.  As such, Python is now a case sensitive language and
>> thus it makes very little sense to try to change that (which we've heard
>> from even those that would prefer case insensitivity).
> 
> Correct me if I'm wrong, but would not the terms of the Python license
> permit anyone who wanted, to release their own, case-insensitive Python?

Yes, like all other open-source licenses, Python's allows forking, too.


> Such forks have happened before in the open-source world. I'm not
> seriously suggesting that anyone do this, but the possibility seems to
> render such discussion pointless.

I think you're seriously mistaken.  Suppose for the sake of
argument that Python has a wart that will cost me (a utility
equivalent to a present amortized value of) $7,500.  Now, for
discussion to be pointless, it would have to be the case that
the (similarly computed) cost of discussion is > $7,500 above
the cost of non-discussion; AND the cost (ditto) of forking
is < $7,500 above the cost of non-forking.

When computing the cost of forking, be sure to include all
relevant factors, including the social stigma that open
source communities apply to those responsible for forks in
general, as well of course as the huge inherent loss due to
"network effects" (in the economics sense, of course).  And
when computing the cost of not entering a discussion, once
somebody has decided to start it, be sure to include the
potentially large externalities of leaving falsities and
fallacies unchallenged, which may increase the likelihood
of new readers becoming convinced of/by them.


> Don't like [insert Python 'wart']? So change it, and release your own
> version. We'll see which one wins out. Anything else is just
> hand-waving, surely.

Are you truly totally ignorant of the issues connected to
forking, "network effects", and so on, or are you trolling?

Charitably assuming the former, I'll summarize the "network
effects" mechanism.  In many cases, the utility of each user
of X increases monotonically (in the range of interest) with
the total number of users of X.  The classic example is the
telephone -- if you have the only telephone in the world it
is no use, if there are a total of two telephones (and some
cables linking them;-) you can at least communicate with one
other place which is already of some modest use, if the
(interconnectable) telephones are three the number of your
potential interlocutors doubles and the utility to you of
your telephone increases, and so on.

In many cases network effects are indirect, due to enhanced
infrastructure -- the utility of my car is not _directly_
increased by the existence of other cars (on the contrary,
road-clogging etc works the other way 'round), BUT the
existence of at least some cars around encourages other
people to open (for example) gas stations in several places,
which DOES increase my car's utility to me by allowing me
to use it for longer trips and more comfortably than if I
had to carry all of my fuel around.

A similar case of such indirectness is that if X is widely
used, know-how about X will also spread -- and people with
such know-how may count as "infrastructure", whenever I may
need advice about X, or want to hire X experts, etc.


So imagine a tool X that has 1,000,000 users today.  A
group forks X into X', a hypothetical modification that is
hypothetically so good as to split the group of existing
users 50-50 *AND* attracts tens of thousands of new users
too -- so that X' ends up with 600,000 users while old X
is left with 400,000.  Is that a success?  Not necessarily!

Due to network effects, it's QUITE possible that the
utility of 600,000 users PLUS the inherent utility of the
modification is VASTLY inferior to the utility of the
original 1,000,000 users (even assuming the inherent cost
of performing the mods, publicizing it, etc, should be
negligible).  By splitting one large community into two
middling ones, forks can easily do more harm than good
when network-effects are considered.  Indeed some sense
of that may be seen in your presumption that ONE version
will "win out" -- that all users will flock to one or
the other so that, after perhaps a transient, there will
be no split in the community.  That might be the case
under certain well-specified conditions -- but it need
not be, since the value of network effects is so different
to different economic actors and in different situations.

Consider the various flavours of BSD derivatives, for
example -- or, the number of political parties in Italy
(where complicated election laws do not make it as much
of a killer, necessarily, to split/splinter a party, as
it would be in many other countries)... Christian
Democrats ruled the roost as one big, internally quite
fractious, party, for many decades -- then they forked,
and are now reduced to many tiny parties, with a total
vote and influence far lower than Democrazia Cristiana
used to have... but leaders of the various splinters
prefer each to rule their own tiny fief than to go back
to the compromise and give-and-take needed to rebuilt
one big broad-church party.  Forks are not easily healed,
sometimes, partly for reasons of personal animosity that
forks are quite likely to engender -- in the open source
world just as much as in other political arenas;-).


Alex





More information about the Python-list mailing list