Re:Scala Native
by acjohnson55 on Wednesday May 11, 2016 @10:36PM
(#11680965)
And as the original author of Scala.js pointed out in a Scala Days talk today, unrestricted reflection means that it's impossible to do dead code elimination, which is a non-starter for real-world use.
I've got at least 30 enterprise applications that disagree with your "nonstarter" assertion. Dead code can only exist in real world code.
Re:Scala Native
by acjohnson55 on Thursday May 12, 2016 @02:07AM
(#11681646)
I'm talking about within the main use case, which is front-end web development. I guess some folks might be cool with 10MB+ JS apps, but I don't think that would be terribly popular, and certainly not popular enough to bother with imitating Java reflection in JavaScript.
Re:Scala Native
by paulddraper on Wednesday May 11, 2016 @11:43PM
(#11681174)
Well, Proguard does whole program optimization.
You have to specify the symbols to preserve explicitly.
Macros should always work, reflection is harder as some information needs to be retained at runtime (either via Java reflection or additional data – which can both be problematic in Scala.js).