David MacIver | 2 Dec 2008 16:28
Picon

Re: Re: Type Synonyms in Scala

Some examples (there are probably more, but these are the ones that spring to mind):

- structural typing could be made to not use reflection, raising it from the status of painfully slow to as fast as any other interface invocation.
- type erasure could be smote with a big stick giving us fully reified generics
- the traits implementation's support for separate compilation could be improved dramatically
- compiled code size could be reduced by a very large amount (probably up to 50%) by support for dynamically generated method handles.
- FunctionN, TupleN, etc. could be implemented in such a way as to allow arbitrarily large values of N.

Almost all of these could be done without the custom classloader (the reified generics one can't), but the custom classloader makes it dramatically easier both for the language implementers and the end users.

On Tue, Dec 2, 2008 at 3:18 PM, Ricky Clarkson <ricky.clarkson <at> gmail.com> wrote:
What possibilities?  I'd be interested to see whether it would be worth the extra deployment difficulty.

I suppose structural typing could be made not to use reflection, for example.

2008/12/2 David MacIver <david.maciver <at> gmail.com>

On Tue, Dec 2, 2008 at 2:54 PM, David J. Biesack <David.Biesack <at> sas.com> wrote:
> Date: Tue, 2 Dec 2008 12:50:43 +0000
> From: David MacIver <david.maciver <at> gmail.com>
>
> And to be clear, while I am perfectly happy to suggest that Scala should get
> its own classloader,

Requiring a Scala classloader would necessitate a *lot* of deployment
scenario validation (especially when integrating with Java; think J2EE,
OSGI, Java module system JSR 277, javax.tools, etc.), where interaction
and integration with existing framework classloaders can be cumbersome
at best.

Perhaps. But these are problems that are already being solved in the contexts of other JVM languages: JRuby (in particular JRuby + Glassfish showcases a lot of potential issues as being very surmountable), Groovy, Clojure, etc. and it opens up a lot of possibilities.



Gmane