I've gotten to know y'all a bit, so I would like to ask my question here. :)
I am fairly unfamiliar with Scala, having worked a chapter or 2 out of a scala book I bought. My understanding is that it is both an object language and a functional language. The only language I am extremely familiar with, that is this way, is Smalltalk. Smalltalk is a dynamic late-binding, strongly-typed language. My understanding is scala is a explicitly typed language, but does this mean it is a static, early-binding language?
Closures, and I suppose functions, must be or optionally could be compiled at runtime. Are they? I realize they capture their environment at creation-time (runtime), but does that mean the code gets compiled to byte code at that time, or is it possible to use a Mirror to compile it at runtime? It is extremely important to be able to do this, for me, and I am pretty sure it can do this. I mean, duh!
I think scala has immutable objects, is it so? Apria? so, my question: what about object references? Can they be mutable by choice? Here's what I need, and I need a language that supports it, and if that language is callable from java, then I can support this feature on the jvm, callable by java and groovy. I would rather they be implemented in scala, due to performance, unless scala already has the feature.
Mutability is required for a reference mutation from an eventual reference to a stable reference or a broken reference. It is useful to not require a wrapper around a mutable ref. Does scala have an any type, with polymorphic runtime dispatch?
Is there a cross-compiler that will convert java to scala?