I'd like to complete my thoughts:
Flex is a framework, not a runtime, not a language (except for MXML maybe).
The strenght of flex is the features, the architecture, the components, etc.
So i see 3 area of work to ensure a bright future for flex as a multi
target SDK.
1- the modularity of the architecture:
Everyone seems to agree on that one. For multi target strategy, we
need to be able to disconnect some parts of the framework unsupported by
some specific targets.
As we need to be able to have a lightweight SDK when we don't use
every features of it.
The break of UIComponent seems also needed to be able to more
easely change the rendering layer. Maybe i am wrong?
Did some work or discussions have already been done on this? as it
seems there is a consensus on this point.
2- rendering layer.
In a multi target strategy, we cant rely on the flash player
Display list rendering anymore.
We need to target new layers like straling2D? openGLES, HTML5 Canvas...
What does it mean to do so exactly? what is the amount of work?
Some research has been done to try to target starling2D, what is
the state of it? what are the remaining issues?
3- the transcompilation, or the trans coding of the framework.
as targets have different languages, and some have interpreted one,
and some targets don't allow plugins, we can't rely on a VM anymore.
the sdk has to be transcompiled to several bytecodes or interpreted
languages.
Falcon will be very helpfull for that.
The first step already undergo is the MXML support, FalconJS is
already on his way to be donated. let's see what the next step will be.
Next runtime bytecode?
Questions are:
- Do we have a clear view of what tie the Flex SDK to the Adobe's
runtime, and need to be handled for a multi target strategy? in the
rendering layer but also everything else?
If we identify clearly what are the difficult points, it would be more
easy to take decisions, of what can be dropped (like e4x) and what need
a solution.
It seems that the work on FalconJS has already given a good start on
such information.
Can we have a clear list of such issues?
- How difficult is it to change the rendering layer? Is the current sdk
architecture a break to make it easely possible to do? Do we have to
rewrite from scratch a Display list system without all the optimization
that Adobe put on the flash player one? Does starling2D give a good
solution for that purpose?
- Is it realistic to think about using Falcon to change the codebase
language of flex to another? I mean to transform flex from an AS3
framework to another language framework of the community choice, like
Dart, or C# or whatever. And be able to work on this generated code, not
only for transcompilation purposes.
I mean we may need it in a near future to ensure a successfull multi
target strategy. (im still not sure of this need though but im trying to
see if its a realistic option to keep in mind)
Its still more realistic than talinkg about starting a new framework
from scratch.
As a conclusion:
There were several discussions about the multi target essence of flex,
and HTML5 target especially. but no conclusion has been given. no clear
view of what it means to change target and get out of flash player runtime.
Lets use this flash player Next subject to clarify it.
I think that getting a better understanding of what commiters have in
mind regarding those subsjects, would give away some of the frustration
(see 'Is Apache model killing this project?' discussion). I'm not
talking about roadmap, but at least a vision of what flex future should
be, and what it needs to get there.
And giving more precise informations of what the difficult points are,
what is possible and what is not, would get the whole subject broke in
several smaller projects, in which some little groups (or even
individuals) of the community could get confident enough to work on it.
Flex is a big beast, so the answer "do it yourself and we will check it
later" will get us anywhere. We'r not talking about a new component, but
big architectural choices and changes.
IMO the community needs some clarification, and some smaller issues,
smaller projects, but included in a global consistent strategy, to be
able to contribute.
That was also my answer to the 'Is Apache model killing this project?'
discussion.
Thanks
Regards,
Le 19/10/2012 14:59, sébastien Paturel a écrit :
Thanks Gordon for asking about the nature of Flex.
Flex is a RIA sdk and not a gaming SDK, ok thats quite obvious.
But flex must be multiscreen ! and if flex don't run on all screen it
has no future!
What has put Flex in a difficult position last month is the fact that
HTML5 could not be targetted!
What has kept Flex alive is to be able to create apps for iOS and
Android with the same mature framework.
And what can give a bright future to Flex is to be able to target as
much screens as possible, again, including HTML5.
So lets define a multiscreen strategy here!
Today:
Flex is multiscreen because it runs on Adobe's Flashplayer and AIR.
One of its big strenght is to be able to create apps for Desktops
(starting from flash player 10 which has unbeatable ubiquity thanks to
the monopoly of flash player on the video streaming area), smartphones
and tablets, including iOs AND android.
but it can't run on HTML5. Its not a big deal yet because HTML5 is not
mature enough (performances) and the user usage is not much on the
webapp area yet, so native apps is the place to be for now.
It can't target linux well since AIR runtime will not target it
anymore, and flash player is not quite stable. Its sad but its not big
deal as an economic point of view, as theres not much users on it.
Thats what makes Flex still a rationnaly good solution nowadays, even
in an HTML5 hype world.
Tomorrow:
If there is new mobile hardwares smartphones and tablets, Adobe will
probably target it with its runtimes, but according to its new
strategic shift it will be with the new gaming runtime only!
So flex won't run on those new hardwares even being based on Adobes
runtimes, if we do not port the framework to this new runtime
architecture! Am i wrong?
It would kill Flex for mobile, as a viable commercial solution.
So if the port to new Adobe runtime is a manageable amount of work
(threw starling2D), i think we should do it for this reason.
If we need to change architecture of flex sdk for it (more modularity
and break the UIComponent as everyone wants to), lets start with it
anyway.
In that case Flex would still rely on Adobes runtimes for multiscreen,
but being inline with the new Adobe strategic shift so it would give
the project more time to be able to run on Adobe's free runtimes.
And being based on a stage3D renderer, would make the future shift to
openGLES more easy. Am i wrong?
Near future:
IMO the goal is that:
Flex target openGLES and native runtimes of all mobile hardwares. My
personnal dream is to be able to target all screens including smart
TVs and gaming consoles (but for RIA apps dev)
Flex target HTML5 which has become mature and viable for serious RIA.
In conclusion,
The first priority for flex IMO is to stay multiscreen.
targetting HTML5 is big priority but in a long term.
targetting new coming mobile hardwares is big priority in short term!
The final questions are:
is it really a more rapid solution to target Next Adobe's runtime as a
first step before being able to target any new mobile native runtimes
(threw openGLES directly) or not?
And what we need to change first in the framework to make it possible?
Do flex need a language port to stay multiscreen? stay with AS3? AS4?
Dart? Haxe? etc.
I'm eager to read your thoughts and arguments, pro and against.
Thanks
Le 19/10/2012 01:28, Gordon Smith a écrit :
Yes, the community has to figure out what the essence of Flex really
is. To me, it's an rapid-development application framework, the
combination of a procedural language with a declarative language, and
a widely-deployed runtime that can support RIAs. The runtime of the
future for RIAs seems to be native code for mobile devices and
HTML/Javascript for browser apps. The best procedural language is
anything that can be compiled to these runtimes. MXML is a perfectly
good declarative language for UIs.
- Gordon
-----Original Message-----
From: Michael A. Labriola [mailto:labri...@digitalprimates.net]
Sent: Thursday, October 18, 2012 4:07 PM
To: flex-dev@incubator.apache.org
Subject: RE: ASC 2.0 and Falcon
PS I don't think Apache Flex needs to stand for what Flex is today
though, and this is where innovation in the future needs to happen
in this project.
+65535