[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Strong Typing, Dynamic Languages, What to do?




Let me try to express in a nutshell why we do what we do. Perhaps it
becomes clear what people should really have. 

Scheme-style typing (uni-typed statically or dynamically typed; safe no
 matter what you choose first). It works great for getting small scripts
 off the ground and for teaching beginners. Then things evolve and, for
 human reasons, need static validation and static types. 

 Real-world evidence: Perl, Python and other monsters that are more less
 broken Scheme's and have a huge appeal. Entire business have been founded
 on these things, precisely for the reason I mentioned. Writing a script is
 easy. 

 The problem? Maintaining it for the rest of your life in that language is
 horrible work. 

So what do you want? A smooth, graceful transition of stable parts into a
statically validated version. 

How? We have experimented with a whole bunch of type systems for Scheme
(HM, SBA, Conditional Types, etc). Their explanatory capabilities and their
module-level performance matters most. So we're still doing research. 

We also need generalizations of types for Scheme modules. At a min, we
should be able to write down interface contracts. Hold your breath for 
Robby's contract system. 

Combining those two (soft typing/static debugging and contracts) should
produce the best of both worlds: lightweight scripting and evolution into
static typing.

-- Matthias

P.S. No, I don't pay much attention to performance. I have lived with High
Performance Fortran people for 15 years. Enough is enough.