"sins" (aka, acknowledged language problems)

skaller skaller at maxtal.com.au
Sat Dec 25 19:16:41 EST 1999


Malcolm Tredinnick wrote:

> Everybody has their pet gripes, but few seem to stop using Python because of
> it (Perl's almost built in obfuscation was actually discouraging me from using
> it, to give an example of the other side of this coin).

	I have, at least for many purposes. I'll outline what I think
are the key gripes -- and what I'm doing about it.

	First, I like Python, mainly because it has a simple
syntax which can be both written quickly _and_ read afterwards.
This is unusual for a programming language.

	What I don't like are: it lacks the constructions
and concepts of modularity required for larger projects,
to provide early error diagnosis, and to make its paucity
of data structures comprehensible in the context of intended use.
It performs well at certain jobs, but is much too slow at others.
Extension in C is non-trivial, and building these extensions
highly non-portable. There's no decent standard GUI.
Finally, trying to convince Guido to fix some of these problems
is just too hard.

	What that means to me is that a larger project
like my interscript tool, just grinds to a halt as I lose
track of how the parts interrelate, and the client (also me, mainly)
loses interest as the performance drops to multi-hour
runs, or speed-up extensions fail to build correctly.

	My solution is not to abandon Python, however,
but to fix it. First, to abandon the C base as the implementation
language, in favour of something with better structure.
I chose ocaml. Secondly, to reimplement Python from that base,
so I could control the language myself -- much easier than arguing.

	This is how Viper arose: it aims to preserve the 
clean syntax of Python, but add extensions where I think
they're needed. It aims to provide compilation, to improve
performance where I think it is needed without resorting to C.
It aims to provide a superior implementation language, when I want
to extend it. And finally, it retains compatibility
with both Guido Python, the language, and CPython
extensions (although, I had not expected this would be
as easy as it turns out to be).

	So I haven't abandoned Python but embraced it:
it is the standard distribution I have abandoned.
It just isn't progressing in the directions I want it to
go anywhere near as fast as I want. But an actual implementation
of something demonstrably better is more likely to encourage
change in the standard distribution than any amount of argument.

-- 
John Skaller, mailto:skaller at maxtal.com.au
10/1 Toxteth Rd Glebe NSW 2037 Australia
homepage: http://www.maxtal.com.au/~skaller
voice: 61-2-9660-0850




More information about the Python-list mailing list