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

Re: New Lisp ?



Andreas Bogk wrote:

>>doing that in-line.  A CLOS-style object system does have type
>>annotations, at least at the method level (which is probably enough),
>>because they're necessary for dispatch.  
>>
> 
> Having type annotations for bindings gives the optimizer a lot of meat
> to work on.

I'm not so sure about that, given good type inference, and methods that 
are kept reasonably small.  In any case, it is a trivially small matter 
to add type bindings to let statements one they exist for methods.

>>As for conditions, I prefer
>>passing condition handlers as explicit arguments.  With proper tail
>>calls and limited use of call/cc to escape out of CPS, it works fine.
> 
> I don't think so.  Having to pass around handlers for all sorts of
> conditions is a nuisance.  This is something CL and Dylan got right,
> IMHO.

Chocolate and vanilla.  I would add that explicitly passing condition 
handlers around is a bit like explicit typing, becuase it prevents you 
from leaving conditions unhandled.

>>>Oh, and dynamism vs. performance tradeoffs like sealing,
>>>primary classes and limited types.
>>>
>>I think these are overhyped features which have been adaquately
>>addressed in Lisp/Scheme using either different implementations as
>>needed, declarations, etc.
> 
> The point is that you can start writing code without caring about
> performance.  Once the design has settled, you can sprinkle some
> adjectives here and there, and the code becomes fast, without having
> to re-implement performance-critical code.  I consider sealing to be a
> good thing.

I do this in Scheme today, and I don't even sprinkle adjectives here and 
there, by developing in a developer-friendly environment and then 
switching to a highly-optimized block compiler for tuning and production.