Production Pyrex Re: [Pyrex] Pyrex at Pycon

Paul Prescod paul at prescod.net
Thu Apr 1 16:36:40 CEST 2004


Greg Ewing wrote:

>...
> 
> I can't honestly make any such commitment, so I will have
> to decline.

Fair enough. I think you for your honesty in addition to your hard work 
on Pyrex and your generosity in sharing it with us. I won't push you to 
accept such a big job but I will disagree with you that Pyrex is any 
more or less of an experiment than any other open source project.

> I wouldn't really feel comfortable being BDFL of someone
> else's project anyway. The leader of that project is entitled
> to decide to follow whatever I decide for Pyrex, but I would
> be loathe to make decisions on anything before I've had a
> chance to try them out in Pyrex myself first.

I guess this is where we disagree. As BDFL of your Pyrex or the 
SourceForge Pyrex or any other open source project, you will make 
mistakes. Probably bad ones. Python's original type system (everything's 
an instance!) was a bad mistake that Guido is still digging himself out 
of. And then there is the division mistake. And the string module. And 
the old scoping... And...

At Pycon, I learned why C has x.y and x->y syntaxes when Pyrex is more 
elegant in only having one. Andrew Koenig says that the reason was that 
in the early days, C did no type checking on the -> operator. You could 
reference a ".foo" member on an integer if you wanted. So instead of 
deciding whether to dereference before accessing the member based on 
type, it asked the user to inform it. The other side effect of this 
typelenessness was that two structs could not have the same member name 
so you had to prefix them.

"Beguiled by the example of PL/I, early C did not tie structure 
point-ers firmly to the structures they pointed to, and permitted 
programmers to write pointer->member almost without regard to the type 
of pointer; such an expression wastaken uncritically as a reference to a 
region of memory designated by the pointer, while the member name 
specified only an offset and a type."

  * 
http://216.239.53.104/search?q=cache:3Jh1QG8Vqu0J:www.lysator.liu.se/c/chistory.ps+c+struct+typeless+member+prefix&hl=en&ie=UTF-8

PHP totally revamped its object structure between 4 and 5.

And I don't think it is any secret how radical the changes between Perl 
4, 5 and 6 were.

And then there is Apache 1 and 2.

And what's left in Linux 2.6 of Linux 1.0?

Remember dynamic scope in Lisp?

I believe that every open source project is an experiment. Every 
non-derivative programming language is an experiment. Every one has tons 
of mistakes that will need to be fixed in the long run. That's why I'm 
not afraid of making a production branch of Pyrex knowing that one day 
we'll look back and think that today's Pyrex is hopelessly naive or 
wrong in some way. The more users Pyrex has, the more feedback you'll 
get and the sooner you'll uncover the mistakes.

 >>In the early days of Python, Guido did 95% of the implementation.
 >
 >
 > Pyrex is still very much in that stage, or even earlier
 > (i.e. 100% implementation). It hasn't even reached version
 > 1.0 yet, remember!

 From my point of view, Pyrex is more mature than Python 1.0,
PHP 1.0, Perl 1.0, C 1.0, Linux 1.0. Given this I don't
know how you will be able to decide when you are ready to
call Pyrex 1.0 and allow other committers. But its your language:
I presume you have some particular feature set in mind for 1.0.

  Paul Prescod






More information about the Pyrex mailing list