[Types-sig] Interface files

Greg Stein gstein@lyra.org
Thu, 16 Dec 1999 11:24:55 -0800 (PST)


On Wed, 15 Dec 1999, Paul Prescod wrote:
> Greg Stein wrote:
> > 
> > I stated a preference for allowing this information to reside in the same
> > file as the implementation. i.e. I don't want to maintain two files.
> 
> The nice thing about having separate files is that it becomes instantly
> clear what is "interesting" to the compiler. We have no backwards
> compatibility constraints. We have no questions about what variable are
> "in scope" and "available". It's just plain simpler.
> 
> There is also something deeply elegant and useful about a separation of
> interface from implementation. 

In your opinion, sure.

I just got done telling you my opinion :-). And that is that separate
files are Not Nice. Elegant? Bah. It's extra files to deal with and
coordinate.

> Sure, you don't always want to be REQUIRED to separate them. I
> acknowledge that we will one day have to support inline declarations but
> I'm going to put it off unless I hear some screaming.

*SCREAM*

How's that?

> > I'll go further and state that we should not use a new language for this.
> > It should just be Python. (and this is where Martijn's __types__ thing
> > comes in, although I'm not advocating that format)
> 
> I think that that's an unreasonable (and unreadable) constraint. The
> language should probably be pythonic, but not necessarily Python. Python
> doesn't have a type declaration syntax and none of Python's existing
> syntax was meant to be used AS a type declaration syntax. It just gets
> too unreadable for quasi-complicated declarations. We need to support
> polymorphic and parameteric higher order functions!

Why in the heck should I have to go and code up a separate file? In a
separate language? That is nonsense. Really. And no, I'd rather not be
diplomatic here. Saying that we are going to use Yet Another Goddamned
Language is the wrong move.

I'm going to stop now. I could go on, but it probably would not be
productive.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/