Flash 9 Now at 93.3% Adoption

Emmy Huang just posted a note about the Flash adoption statistics as of September 2007. Flash 9 is now at 93.3% adoption! This is great news for Flex developers! If you develop with Flex 2 or the upcoming Flex 3, 93.3% of your visitors can run your applications without any hassle of having to update Flash. Now why haven’t Sun and Microsoft published their statistics so that developers are able to compare the adoption of the different RIA platforms?

Flex & Flash as Competitors to Java?

As previously discussed, my friend Joshua from Sun recently blogged about how the consumer JRE will take market share from Flash in 2008. Today Sameer Tyagi , also from Sun, blogged about problems with using Flex to front-end JAX-WS. Both posts seem to insinuate Flash and Flex as competitors to Java. Yet for me Java and Flex have always been a perfect match.

The continued success of Flash and Flex only helps to better position Java in the enterprise. Adobe is not a threat to Java’s continued dominance on the server. In fact many Adobe enterprise products are built on the Java platform including Flex Data Services. If you must have an enemy then I suggest targeting those who actually have something to gain by Java losing market share in the enterprise. That is definitely not Adobe.

As I’ve said elsewhere, Java and Flex developers should be working more closely together to make building RIAs easier for developers and to make experiencing those applications better for end users. Both technologies have similar values when it comes to openness, free tools and runtimes, and cross platform support. And the areas in which Java and Flex overlap are really very minimal. Developers and end users have much more to benefit by our harmony than by our discord. I continue to meet many people who are embracing this vision of a harmonious union of these two great technologies. I encourage others to consider doing the same.

Now to respond to Sameer’s disappointment “with the Web Services support, or lack thereof, in Adobe’s recent Flex 3.0 beta release” I built a quick Flex app which calls the non-trivial Web Service from the JAX-WS samples that Sameer referenced. Here is the code for what I came up with:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">

  <mx:Script>
  <![CDATA[
  import mx.rpc.events.ResultEvent;
  import mx.rpc.events.FaultEvent;
  import mx.controls.Alert;

  private function handleFault(event:FaultEvent):void
  {
    Alert.show(event.fault.faultDetail, event.fault.faultString);
  }

  private function handleResult(event:ResultEvent):void
  {
    Alert.show("Your shipment number is: " + event.result.shipmentNumber, "Purchase Order Accepted");
  }

  private function submitPO():void
  {
    var po:Object = new Object();
    po.customerNumber = "1";
    po.orderNumber = "1";

    var item1:Object = new Object();
    item1.itemID = 1;
    item1.name = "a";
    item1.price = 1;
    item1.quantity = 1;

    var item2:Object = new Object();
    item2.itemID = 2;
    item2.name = "b";
    item2.price = 1;
    item2.quantity = 1;

    po.itemList = [item1,item2];

    srv.submitPO.send(po);
  }
  ]]>
  </mx:Script>

  <mx:WebService id="srv" wsdl="http://localhost:8080/jaxws-supplychain/submitpo?wsdl" fault="handleFault(event)" result="handleResult(event)">
    <mx:operation name="submitPO"/>
  </mx:WebService>

  <mx:Button label="Submit PO" click="submitPO()"/>

</mx:Application>

This is a very simple example and doesn’t have the UI necessary to actually assemble a PO based on user input. That piece would also be trivial so I’ve left it out of this example. The key thing is that it correctly talks to the JAX-WS based Web Service. This is just one example which uses Java and Flex together. There are many more. And there are plenty of enterprises happily using Java and Flex together. Pitting these technologies against each other does nothing to benefit developers or end users.

2008 – The Year of Client Java?

My friend Joshua from Sun has predicted that “2008 will be the year that client Java starts taking market share from Flash”. This is a pretty bold prediction reminding me of when I used to hear this same sort of statement about Desktop Linux… “1999 will be the year of Desktop Linux”.

Don’t get me wrong… I love Desktop Linux. Been using it since about 1993. And I love Java. Been using it since 1996. But lets be honest about the reality of client Java, desktop Linux, anything that touches the mass consumer space. It has to just work. I’m thankful that Ubuntu and the Consumer JRE are headed this direction. But Flex and Flash are there today! Flash just works. So much so that in the first nine months, Flash Player 9 reached 84% adoption in the US and is likely well beyond 90% currently. That is a platform you can rely on. One you can build on today. Tons of consumer Flex applications have already been deployed. And tons more are not visible because they are still being built or behind the corporate firewall.

So to my friend Joshua and his pals at Sun: Keep up the good work. Seriously! I’m excited about where you are going!

And to the people building Rich Internet Applications: As JD says, “You can ship with Flash.” Not in 2008, but today.

How I Overcame My Fear of Flash

Long ago I remember the first Flash site I ever saw–spinning gears replaced typically boring site navigation and sound illuminated a previously silent web. My jaw dropped and I said to myself, “I want to build these kinds of websites!” After playing with Flash Professional for days, I realized that my mathematically inclined brain just could not output the kind of beauty that I began to see all over the Flash powered web. I gave up and resorted to building very ugly HTML interfaces. Not because I didn’t want them to look better but rather, it was just too much work and I lacked the skill.

Read more

My Tribute to Flash 9 on Linux: Compiz Like Wobbly Windows

I’m sitting in Caribou Coffee in Ann Arbor Michigan looking out at beautiful ice covered trees glistening in the sunlight. It’s Jan 17th 2007 and this day is going down in history! Today is the day Flash Player 9 was officially released for Linux! This is HUGE! The web allows anyone with a PC to engage with information and others. Flash has always pushed the limits of how that engagement happens, most recently with video. Even though many Desktop Linux users prefer free software, Adobe has still committed to making Flash work on Linux. I think this is noble. Do you see MS or Apple doing this with their platforms? By having Flash 9 for Linux, Desktop Linux is made all that much better. I have been using Linux as a desktop since ’96 and without Flash I would be missing out on some pretty amazing stuff. Some will say “But Flash isn’t Open Source”. You are right. But if you don’t want to run proprietary software, rather than complain, go help Gnash. Ok, now that I’ve espoused my religious views, lets move on to the cool stuff!

First the demo: Wobbly Windows on the Web

That’s using Flash Player 9 and was built with the free Flex SDK. The wobble isn’t as refined as Compiz’s/Beryl’s, but that can be fixed once I (or you) figure out the math for doing that. Let’s walk through how you can compile that application.

First get the code from SourceForge. It’s in the wobbly module of the flexapps repository.

You need to get the free Flex SDK. Also if you don’t have it, you will need the Sun JDK 1.4 or better.

Set the FLEX_SDK to where you extracted the Flex SDK to.

In the directory where you checked out the wobbly code, run build.sh

Load the build/wobbly.html file in your browser!

This still needs some work, and since it’s Open Source, I’d love your help! Let me know what you think.

Flash 9 on 64bit Linux in 2 Commands

I’ve heard it so many times… “Flash 9 doesn’t work on 64bit Linux” So when I loaded 64bit Gentoo Linux my new Merom based Intel Core 2 Duo, I really was expecting an adventure. Turns out that it was actually pretty uneventful. It worked first try without any problems and in only 2 commands. Here’s what I did..

First I added the net-www/netscape-flash package to /etc/portage/package.unmask
sudo vi /etc/portage/package.unmask

Then I emerged Flash 9 & the Netscape Plugin Wrapper
sudo emerge -av netscape-flash nspluginwrapper

Then I reloaded Firefox, tested it, and it works great! I assume it’s this easy on other distributions, but I only have Gentoo to test on.

Of course this means much more than just being able to watch YouTube videos… Now that the Flex 2 SDK is free (as in beer) anyone can build applications that work the same on all major browsers and operating systems! I’m happy to say that since I started doing Flex development about two years ago, Firefox on Linux has been my primary build and test environment. And in that two years the only time I’ve had to write any of those “if IE” things was when I was writing JavaScript for a soon to be released Ajax & Flex benchmarking tool.

Using my OS of choice… Writing code once that works the same universally… These are things that make me happy. :)

Oh, and the fact that Flash is now built on the Mozilla / Open Source Tamarin VM makes me ecstatic!