incubator-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Raju Bitter <rajubit...@googlemail.com>
Subject Re: [PROPOSAL] Flex for Apache Incubator
Date Thu, 22 Dec 2011 10:04:52 GMT
Leo,

I agree with you that Flex is different in that it's targeting a
proprietary VM. That's why I think it should be a goal of Apache Flex
to create an alternative runtime, next to Flash/AIR, and it should be
part of the proposal. Since I'm not an ASF member, I can just hint to
it, it's up to the ASF members to make that decision.

But I still think not everyone is aware of what "Flex" really means,
and which products/standards/trademarks are related to it:

What is Flex? Flex creates files which run in Flash Player
Ted Patrick, one of the former platform evangelist working for Adobe,
had a good post on Flex back in 2008, titled "What is Flex?"
http://ted.onflash.org/2008/01/what-is-flex.php
"At the heart of Flex is the ability to create SWF files that run in
Adobe Flash Player. Distill all the features down and really it is a
development paradigm that compiles to SWF."

The importance of ActionScript for Flex
I would say that the key components of Flex as a technology stack -
with regards to Apache Flex - are:
1) Flex ActionScript and MXML compiler
2) ActionScript programming language and standard
3) ActionScript bytecode format SWF
3) ActionScript Virtual Machine 2 (in Flash Player and Adobe AIR runtime)

With the current proposal, the ActionScript and MXML compiler would be
part of Apache Flex. But what about the rest of the key ingredients:

ActionScript
Adobe has a trademark on ActionScript. The Mozilla Tamarin page says:
"ActionScript™ is the name used for Adobe's implementation of the
language specification. Adobe is in the process of developing a
licensing program that will allow developers, whose code passes a
designated test suite, to say that their application or implementation
is ActionScript-compliant." If that is still valid, it means that an
open source implementation of an ActionScript would have to be
licensed by Adobe to be compliant.
ActionScript itself doesn't seem to have a license attached to it (I
could not find any information).
All MXML code in Flex is first being compiled into ActionScript 3, and
the compiled into an SWF file, or binary libraries. Therefore
ActionScript 3 is the single core language of Flex. Since there is
nothing said in the Apache Flex proposal about ActionScript 3, I would
say that Adobe maintains the right to change ActionScript at any point
in time, and that Adobe will still own the ActionScript trademark.

ActionScript Bytecode Format (SWF)
SWF is an open spefication:
"The SWF file format is available as an open specification to create
products and technology that implement the specification."

The SWF format for the ActionScript Virtual Machine 2 can be found
here, there's a copyright on the spec:
http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/swf/pdf/swf_file_format_spec_v10.pdf
"Copyright © 2006-2008 Adobe Systems Incorporated. All rights
reserved. This manual may not be copied, photocopied, reproduced,
translated, or converted to any electronic or machine-readable form in
whole or in part without written approval from Adobe Systems
Incorporated."

Changes to the SWF bytecode format
"NOTICE: THIS PUBLICATION AND THE INFORMATION HEREIN IS FURNISHED “AS
IS”, IS SUBJECT TO CHANGE WITHOUT NOTICE, AND SHOULD NOT BE CONSTRUED
AS A COMMITMENT BY ADOBE SYSTEMS INCORPORATED."
That means, the SWF standard is not binding, an Adobe could change the
SWF format without notice at any point in time. For Apache Flex that
would mean, Adobe would legally not have to notify Apache of changes
to the SWF format.

SWF versions
Each major player release introduces a new version of SWF (normally
adding some APIs, e.g. enhanced text rendering with the Text Layout
Framework in Flash Player 10, native JSON support in Flash Player 11).
The SWF specification carries the version number 10, it's not clear if
there is a document available for the SWF 11 specification.

The AVM2 (Flash Player or Adobe AIR)
Adobe provides an overview document for the AVM2 at
http://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf
The Flash Player and AIR support proprietary technologies which are
built into the player, and accessible out of Flex applications. One of
the those technologies is included in the RTMP implementation of Flash
Player (encrypted Real Time Media Protocol RTMPE). The RTMP protocol
specification has been published by Adobe, but RTMPE not.
http://www.adobe.com/devnet/rtmp.html
"By downloading the RTMP specification, you are agreeing to the RTMP
license. To benefit customers who want to protect their content, the
open RTMP specification does not include Adobe's unique secure RTMP
measures, nor does the license that accompanies the specification
allow developers to circumvent such measures."

Again, I'm in favor of an Apache Flex project, but based on this
information I would suggest to find answers to the following
questions:

1) ActionScript
  a) Is it acceptable for Apache to have Adobe own the ActionScript
trademark? What does that mean for Apache Flex?
  b) If the Apache Flex project would create an open source
ActionScript VM, it seems that would have to be licensed by Adobe?
  c) Is it acceptable for Apache if Adobe can change the ActionScript
language without approval from Apache Flex?

2) SWF / ActionScript Bytecode
  a) The current version of Flash Player is 11.1.102.55. The SWF
specification only covers SWF10, not SWF11. Does Adobe have an updated
version of that specification, and would Apache Flex have access to
it?
  b) If the SWF format is the only format supported by Adobe Flex, is
it acceptable for Apache if Adobe can change the format without
notice?

3) ActionScript Virtual Machine
  a) Since there seems to be no open source implementation of the
current AVM available (question: is Tamarin still compatible with the
Flash Player AVM2?), a future decision of Adobe to discontinue Flash
would leave Apache Flex without a runtime environment. Is that
acceptable, or would it be useful to have an agreement that in such a
case Apache would be given access to the latest AVM source code by
Adobe (to be clear: not Flash Player, just the AVM built into Flash
Player). That would enable the Apache community to develop an SWF AVM
on its own.

I know this message is very long, but I think these topics need some
clarification.

Raju


2011/12/21 Leo Simons <mail@leosimons.com>:
> Hey folks,
>
> I had to think about this a bunch. We don't have anything like this at
> apache today.
>
> On Tue, Dec 20, 2011 at 9:37 PM, Greg Stein <gstein@gmail.com> wrote:
>> On Tue, Dec 20, 2011 at 15:30, Raju Bitter <rajubitter@googlemail.com> wrote:
>>> (..) Adobe Flex is quite different from most Apache projects (...)
>>> it looks like the output of the compiler can only be used with Adobe-owned
>>> proprietary software at the moment. (...)
>>
>> As I mentioned above, I don't see this as a problem whatsoever. (...)
>
> Just to pick this apart...
>
> * Flex helps you make apps that target the flash player (or the AIR runtime...)
> * There is effectively one implementation of flash player (supporting
> the v10 SWFs that come out of flex...)
> ** which you get from adobe or someone that has an agreement with adobe
> ** which comes with very restrictive licenses [3]
> *** basically you probably can't even *use* it if you want to
> implement a flash player yourself [4].
> * This flash player plays SWF files (and FLVs..).
> ** SWF has an "open spec" that isn't very open at all [1,2].
> * Flex does not produce SWF files all by itself. It uses the Flash SDK
> and the AIR SDK (and some other bits)
> ** which you have to get from adobe and which come with very
> restrictive licenses.
> * Adobe could unilaterally change the license for the flash player,
> the SWF format, and/or the prerequisite SDKs, and flex would become
> essentially useless.
>
> Analogies to .Net or Java (or oracle databases) don't make much sense
> to me. Instead if I had to come up with an analogy, it would be
> something like having an apache http server that you could only
> install on windows, and run only if you already had IIS, and that
> would then host websites that you could only view if you had internet
> explorer.
>
> I don't understand why it's useful to have such a project at apache.
> But, apparently, a lot of people do want to work on it, and flex is
> obviously useful to a lot of people.
>
> So is there a problem? I guess not. As long as the Apache Flex website
> makes all this clear enough and no-one makes a PR mess out of it or
> anything like that, I don't see any actual problem with the proposal.
> I can't say I'm enthusiastic about it, but I don't have to be.
>
>
> cheerio,
>
>
> Leo
>
> [1] http://en.wikipedia.org/wiki/SWF#Licensing
> [2] http://www.adobe.com/devnet/swf.html
> [3] http://labs.adobe.com/technologies/eula/flashplayer10.html
> [4] http://en.wikipedia.org/wiki/Gnash#Adobe_Flash_Player_End_User_License_Agreement
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
> For additional commands, e-mail: general-help@incubator.apache.org
>

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscribe@incubator.apache.org
For additional commands, e-mail: general-help@incubator.apache.org


Mime
View raw message