[Types-sig] RE: [meta-sig] The Types-SIG is comatose. Let's retire it.

Paul prescod@prescod.net
Fri, 3 Dec 1999 13:38:05 -0600 (CST)


On Fri, 3 Dec 1999, Jeremy Hylton wrote:
> 
> If you're going to develop a static type system to describe Python
> programs (optional or otherwise), then I think you can't punt on all
> the things you want to punt on.

Forever, no? For a first draft? Yes. Type systems can be extensible. C 
didn't forsee objects but C++ added them and C++ doesn't support 
parameterized types (at first) but added those two. 

I'm always torn on these design issues between trying to get it all right 
the first time and doing it incrementally. There are big risks either way 
but insofar as we never get anywhere when we try to do it all at 
once...that seems like the bigger risk.

> > * interfaces are not an issue
> Yes, they are :-).

Not in Visual Basic. :)

> > * parameterized (template) types are not available
> They need to be.

At some point, yes. For us to be able to say that foo is an integer and 
bar is a string, no. A lot of people would LOVE to have that level of 
type safety.

> > * names are type checked, not expressions
> Expressions need type checking, too!  

Maybe someday...

or let me say that I'm all for expressions being type *checked* but not 
for a syntax for declaring the type of an expression. I'm not in favor of 
a "cast" or "assert-type" statement in version 1 of our type system.

> > * the goal is a optional static type system for version 2. 
> 
> What exactly is the deliverable.  Saying an "optional static type
> system" is a bit vague.  What is it specifically?  A formal
> specification of the type system?  A stand-alone utility that reports
> type errors?  A new compiler?

A formal specification of the type system that Guido likes enough to say: 
"yes, this will be the basis of Python 2's static type checking. Now go 
improve it and build on it."

> If this is a type system for Python 2, it seems that the best a SIG
> can hope for right now is a specification of the type system.  Since
> Py2 design hasn't even started.

Agreed. I was only talking about a document that could serve first as 
an RFC and then later as a specification.

 Paul Prescod