Alex,

Wow! Awesome email, if nothing else then only by weight of the bytes ;-)

I'm not sure you entirely get what I'm trying to do, but keeping an open
mind I'm looking for ways to combine the two approaches. You seem to be
suggesting that VF2JS can exist as an option in FlexJS. We need to explore
that idea to see if we might be able to make it work.

1) Currently, FlexJS has it's own AS framework, without any of the Spark/MX
components. VF2JS needs those; remember, VF2JS let's users develop their
SWF apps in the classic SDK, like they are used to. Do you suggest we merge
FlexJS into the current SDK?

2) The FlexJS JS implementation uses data arrays to represent MXML. This
means that class member names are stored as strings. The GCC can't rename
strings. In order to match the strings to the actual properties, the
properties cannot be renamed either - you can't match 'myComponent.width'
to 'a.b' ;-) This is why all public properties have the @expose annotation.
But here is the kicker: using @expose prevents the GCC from doing a
significant amount of optimisations. In VF2JS I'm planning on doing away
with the data arrays so we get to use the full force of GCC optimisation
and minification, and can do away with the client side dynamic object
creation from the array.

3) I'm liking the idea of having FalconJX detect the namespaces it is fed
and use that information to decide the compile path. That way if it reads
Spark/MX, it would use the VF2JS JS framework, if it reads Basic/Core, if
would go the FlexJS route.

4) The organisation of the JS frameworks would need some rethinking. FlexJS
also uses the 'flash.display' and 'mx.core'/'mx.states' namespaces. We
don't want collisions there.

5) The reason I'm hiding the AS SWC because I don't want to bother the user
with having to use different xmlns. It would be sweet though to have Falcon
do the switching on the fly, so we get compiler feedback about portability
during development, e.g. using a compiler argument indicating you want to
also be able to cross compile your code to JS. That way the shim SWCs could
still be that, shims, but I like the idea of adding metadata to indicate JS
(un)availability.

6) We need to rethink the naming convention. I like FlexJS, it should stay
for the name of the AS to JS project. But the various frameworks need
different names. On the AS side, after we 'merge', I guess there are 4:
Flex (the regular SDK, used by the VF2JS approach), FlexJSUI, FlexJS and
MXMLCClasses. On the JS side, there would be lots and lots, some of them
(possibly) colliding: see point 4). What is your view on the organisation
of these various aspects, especially given that (see point 1) we might
merge FlexJS into the regular SDK?

That should be enough food for thought ;-) Let's see if we can make this
work!

EdB



-- 
Ix Multimedia Software

Jan Luykenstraat 27
3521 VB Utrecht

T. 06-51952295
I. www.ixsoftware.nl

Reply via email to