Case-sensitivity: 3 years is a long time

Andrew Kuchling akuchlin at mems-exchange.org
Sun May 21 12:20:55 EDT 2000


Courageous <jkraska1 at san.rr.com> writes:
> I guess we can all threaten to rebel, hack into Guido's personal
> computer, and replace all his own personal python code with
> randomized capitalization of everything....

We will still have the 1.7/1.8 source code, and if case-insensitivity
proves intolerable, someone will step forward and continue to maintain
the old code base.  This will be made easier by the clarity of
CPython's implementation, as anyone who's poked around in the
internals will tell you.  It would simply be a code fork.

And I'm not too worried about what GvR predicts for the Python of the
year 2002.

	Consistency requires you to be as ignorant today as you were a
	year ago.  -- Bernard Berenson

Remember O'Reilly's _World Wide Web Journal_?  In 1997 they had an
issue on scripting languages.  If you go back to GvR's paper in that
issue, 5 pages, or a quarter of the article, was spent talking about
Grail.  The vision for Grail wasn't that it would become your
day-to-day browser, but instead that it would be a testbed for trying
out new protocols, since it was (and still is) easier to implement
them in Python than to hack them into Mosaic by writing C code.  

Reality had other ideas, and people didn't really care about adding
new protocols; instead everyone built things on top of HTTP, because
then you wouldn't need a specially modified browser.  The last version
of Grail was released in April 1999, and by then it had been clear for
a while that Grail was irrelevant; Fred Drake made the final release
more as a fun project than because there were crowds of users
clamoring for it.

2 years is half an eternity in this business, and lots of things can
change between now and 2002, when GvR fires up Emacs on a file named
py3k-lang-spec.txt.  Possibilities include: 

	* CP4E succeeds despite case-sensitivity, thanks to a helpful IDE
	* CP4E's funding gets pulled
	* GvR loses interest in CP4E
	* GvR changes his mind about this issue

	* Subsequent studies disagree with the Alice group's
	  conclusion that case-sensitivity is a problem

	* Python 1.x's installed base explodes in size, making it
	  impractical to make any backward-incompatible changes at all

	* Other Python3K ideas such as optional static typing are
	  implemented in Python 1.x, and Py3K becomes unnecessary.

	* Other Python3K ideas such as optional static typing are too
 	  difficult to resolve, and they never come to closure.

	* Some new macro-like language mechanism is introduced into 
	  Python, making it easy to make the language case-insensitive.

	* Someone invents a better new language, and all the Python
 	  community switches to it.

	* Aliens arrive and suck out everyone's brain.

Lots of things might happen between now and then.  View Py3K as what
it is, a placeholder meaning "Guido's last, best hope for making
backward-incompatible changes".  What those changes are is unknown,
and, I suggest, unknowable; we know what GvR is thinking about *now*,
but that may have little relation to what he's thinking 2 years from
now.

So, continue making your opinions on the issue clear, though I think
GvR has a good idea that most current Python users dislike the change;
but don't fixate on this issue or let it stop you from deploying
Python today. 

(And, for the record, I think building case awareness into the IDE,
and not changing the language, is the way to go.  Throwing away
semantic information is almost always a bad idea; I suspect that, as
the weight of case-sensitive protocols and formats grows, the
impendance mismatch between a CI language and the C-sensitive world
will grow.)

-- 
A.M. Kuchling			http://starship.python.net/crew/amk/
    "All we know for sure is that we don't know anything for sure."
    "That is a particularly foolish thing to say, John Constantine. Light and
darkness, life and death. These things are eternally certain."
    -- John Constantine and Dr Occult, in BOOKS OF MAGIC #1



More information about the Python-list mailing list