What’s wrong with the Flash Platform?

When Microsoft bought FoxPro, leading database app of the day, in 1992, I remember, an intriguing question among programming community and geeks was whether MS will use the Watcom compiler, which was used for building FoxPro to that day, a compiler which was state of art at the time and better, or, use their own inferior MS compiler to build the next version of FoxPro… I never followed-up, and don't know the answer, still the question remains as a fundamental one. (FoxPro was later renamed as Visual FoxPro and died in 2007 at version 9).

A platform needs to be taken seriously. For quite some time Flash (whatever you meant by it) was seen as a toy for creating animations for the web, including the ones that made you look for the 'skip into' link and really annoying advertisements that hid content. Most of the time this was true.

Things improved in time, but it's always hard to change initial perceptions.

I'm now skipping pages of info that may bring the reader up to date with Flash history, for the sake of coming to my point.

I may be seeing what is not there… But I see the Flash Platform as the main platform of the future: OS-wise cross-platform, on both desktop and web, and on other devices… "Flash Platform" is not "Flash" (whatever you understand by it). You can't consider something as a platform just because you can write RIAs for it or it has a desktop component, or just because you have a few different editions. It's bigger than that. It has to be…

Java started with the promise of making apps that you write once and run everywhere. As I see it, it failed to achieve this. I see Flash replacing Java, achieving this initial goal. I see Java (not JavaFX) as a rival to Flash as a platform…

The developer types who were expected to jump into Flash train with Flex were mainly Java developers, as Java is also a scripting language, just like actionscript.

How do you convince a Java developer that Flash (platform) is better? Will you have any answer when he reminds you that 'recommended professional developer tool', now named 'Flash Builder', is just a plug-in for Eclipse [1], which is build primarily in Java? Will you have an answer when he mentions that the AS3 compiler is also build in Java?

If I were a Java developer, at best I'd say Flash might be better for 'animation and stuff' only. If Flash Platform relies on Java, then it's inferior to Java, as a platform, no need for further discussion.

I don't think embracing Java is an option for Flash Platform. Flash will be the platform of choice and the better one, or it will be a toy animation platform (with some scripting capability). I don't consider being open source or not coming from MS as valid reasons for embracing Java. Also I cannot picture a stable co-existence, with similar usage ratios, being 'second best' is not an option I will be content with.

With AS3 and JIT, as I had written before, I was hoping the AS3 compiler would be in AS3… AFAIK, this has not happened yet. For this reason, professionally as a programmer, I don't consider actionscript as mature. If actionscript is a serious language (even though it's a scripting language), it has to have a compiler written in actionscript (this is my idea for maturity, you are welcome to disagree).

As I see it, for success, Flash Platform should get rid of any reliance on rival platforms (Java, .Net etc.) as soon as possible. (3rd party tools are OK, after all, they are additional tools. I think a platform should provide at least basic building tools, sufficiently advanced, that does not rely on rival platforms. [As soon as possible may mean years - but I believe this should be the agreed goal]).

Silverlight is not a rival to Flash Platform, .Net is. Silverlight is the toy animation [2] part of (web part of) .Net Platform. I believe Flash, as a platform, should have bigger goals than beating that.

People ridiculed Microsoft, when they used Flash rather than SilverLight for promoting some stuff. I'm surprised I'm not seeing anyone mentioning Java use with Flash. Is Java a better programming platform, and Flash Platform is really only a sub-platform for animation (and maybe minor RIA stuff)? Is this the planned and expected future role for the Flash Platform?

Is it because it's so obvious that Flash will ditch Java use when the time comes, that nobody mentions it? or are my expectations for the Flash Platform unrealistically high? I wonder.

I can write more, but I think I made my point.

Watcom C compiler went to Open Source heaven in 2000. Borland C++, which was considered better than Microsoft Visual C++ compiler (MSVC) by many in its time, died even before Watcom. Whatever route MS took then, when building next FoxPro version in 1992 doesn't really matter now. Today, MSVC is alive as it can be at version 10 (as preview, to be released)…

(And I now think blogging more is sure to make me unpopular, so I will stop).

[1] I don't mean to show disrespect to "Flex Builder" developers (both actual developers and people using it). Sorry if I sounded rude,  it was to make my point clear. I think "Flex Builder" should be a native or Flash application, in principle. I don't 'demand' it to be done 'now', but I believe this is something everybody involved should know and agree and expect as a realistic future goal: A better IDE than Eclipse in every way, written in actionscript, running way better than any Java app can run, in Flash VM… (Same applies for the AS compiler).

[2] Obviously SilverLight (or Flash) is more than just a 'toy for animation'. The usage is for making my point, hopefully, more clear.

This entry was posted in Flash, Flex.

8 Responses to What’s wrong with the Flash Platform?

  1. Brian Lesser says:

    Hi Burak,
    What I like about the “Flash Platform” is that Adobe isn’t trying to do another .Net with it. They are not trying to be “the platform” for everyone and everything all the time. I believe using other platforms like Java makes Adobe more nimble and agile. They don’t have to expend resources trying to compete with Sun/Oracle or Microsoft at every level. They can concentrate on their core values. For Java developers that is very appealing! They can use familiar tools like Ant and the open source Flex SDK and BlazeDS to do all sorts of things. I think that is very powerful and well understood in the Java community.
    I do think that there is more Adobe can do with AS3. We’ve seen sneak peeks of AS3 in ColdFusion and I’d like to see it in FMS. We know Adobe is also working hard to bring Flash, and improved AS3 performance, to mobile devices. I’d rather see them spend their efforts on those sorts of things. Other uses for AS3 can evolve from those efforts later.
    I think the whole Flash animation history thing is actually a bonus. It speaks to the long term ubiquity of the Flash player. What matters is the ongoing evolution of the Flash platform. If Adobe can sustain or even improve on their current rate of innovation and continue to help build a vibrant ecosystem around the platform then it will succeed.
    When people are looking at Web application platforms I think they look for things like this:
    1. successful history of getting the runtime onto over 95% of workstations/laptops.
    2. fast uptake of new runtime releases with important new capabilities
    3. rich and evolving set of development and designer tools and workflows
    4. cross-platform successes: across operating systems, browsers, and devices.
    Yours truly,
    -Brian

  2. Alan says:

    ” If Flash Platform relies on Java, then it’s inferior to Java, as a platform, no need for further discussion.”
    Mac OSX relies on Java, is it inferior?

  3. Hi Brian,
    Thanks for the comment.
    > They are not trying to be “the platform” for everyone and everything all the time.
    If this is the case, Flash Platform is not a platform in the same level as .Net Platform or Java Platform.
    I have absolutely no problem with what Flash is (all tools, capabilities, ecosystem…), but when you call it a ‘platform’, my expectations change.
    Of course, ‘platform’ may mean anything and you can easily call something a ‘platform’ for various reasons. But, considering the list below:
    Silverlight – .Net Platform
    JavaFX – Java Platform
    Flash – Flash Platform
    Am I being too naive to assume what ‘platform’ as used in ‘Flash Platform’ means?

  4. Hi Alan,
    > Mac OSX relies on Java, is it inferior?
    No, that’s not I meant. But it would be inferior if it were competing with it.
    Assume Firefox were using IE engine. Then Firefox could never have been a real alternative to IE as a browser (though it could still provide better experience with a better user interface).
    Assume Silverlight used Flash Player to render its content. Then how could you take Silverlight serious as a Flash alternative?

  5. Brian Lesser says:

    Hi Burak,
    Yes, I know. What does platform mean and why does Adobe need one? Part of the problem is that platform discussions are so strongly associated with vendors who want to sell you everything rather than just the interoperable pieces you need. For example if you search on “oracle platform” you’ll see titles like “Oracle Database platform guide,” “Oracle Beehive Platform Offering Social Networking…,” and “Linux to be top Oracle platform within a year.” Of course I guess you could say that .Net is designed to be the one platform to rule them all. But platforms do not have to be all encompassing by definition. Netscape promoted the browser as a platform with JavaScript as the scripting engine even though that was only the client side of your application. They helped give birth to the AJAX applications we use in the process. People who write Firefox Add-ons think of browsers as a platform in a different way. Java applications are built on databases that require SQL, and script their AJAX clients in JavaScript etc. Despite that, I think of Java with its frameworks and virtual machine as a platform. So I don’t think the measure of a platform is that it has to own the entire application stack from the bytes in a file system to every widget on every screen.
    The idea of a platform is that it is an essential foundational element on which you can build and deploy your own software. It seems to me that Flash – when you include AVM2, Flash Builder, Flex Framework/SDK, tools like Catalyst, gateways like BlazeDS, Flash streaming and real-time protocols (RTMFP), real-time and streaming servers(FMS), mobile, desktop, and TV deployment, and I assume one day AS3 on the server, that you have a significant platform. The fact that it works nicely with other platforms is a bonus and not something to worry about. In fact it makes the Flash platform more appealing to someone like me. I don’t need more vendors trying to be everything and anything to me all the time. Those people want me to write them too many cheques for too many products.
    Cheers,
    -Brian

  6. I have updated my definitions (see my next post).
    Everything fits in now, though I’m a bit disappointed with seeing what Flash Platform really means.
    For me, it was something that set a vision, not something made up to easily refer to some existing things in a fancy, more marketable way.

  7. martin says:

    you examples of why flash is to be considered inferior to java are quite spurious.
    flash doesnt use java as its engine, some of adobe’s toolset is based on java. thats quite a significant difference.

  8. Hi Martin,
    I’m well aware of the difference, but doesn’t make a difference.
    If Flash Player was made in Java, that would be too obvious. (And I wouldn’t have even thought of Flash Platform as a rival to Java Platform).
    If Silverlight IDE was made in AS3 and deployed as an AIR application, how would you think of Silverlight as a serious alternative to Flash (By that I mean as a ‘Flash Killer’, total alternative)? That is (was) my point.
    As I see it, when it comes to make a ‘real’ application for a VM, Adobe uses Java, rather than AS3 and Flash. What does that tell you?