Ted Patrick > { Events & Community } > Adobe Systems


CURL BenchMarketing

CURL released a language performance benchmark and press release highlighting how much faster their language is than ActionScript 3. At first glance it seemed very impressive, 8X faster than ActionScript WOW but looking deeper this is mostly irrelavent. The first thing that struck me was that the benchmark was for encoding a JPG image, not rendering it or uploading it but iterating over each pixel and translating it to another image type, JPG.

Here are my issues with this:

1. Name a single mainstream RIA that encodes a JPG?

Uploading a JPG - Important
Rendering a JPG - Critical
Encoding a JPG - Not essential

We support Encoding in the Flex Framework to allow image conversion but it is far from a mainstream feature. It is an API that is useful on projects where one needs to convert from the native DisplayList BitmapData format to other web image standards like PNG, GIF, JPG.

Flash Player supports imaging directly in the runtime so you can create images from any content in the Flash Player as native objects. There is no need to encode these as JPGs EVER and the speed is lightening fast actually it is far faster than any of the CURL results by an order of magnitude.

2. How much market reach does CURL have? Are they installed on 50%, 40%, 30%, 20%, 10%, 5%, 1% of computers?

The ability to run applications seamlessly without installing anything is the key to Flash Player's adoption for RIA's (one use of many). Flash Player 9 is installed on over 98% of computers. Flash Player 9 is on 98% of computers!!! I have NO reach statistics for CURL but they are not even on the radar! NOT ON THE RADAR!!! (Maybe that is why they needed to do a press release)

3. Code execution - There are a ton of dependencies in benchmarking and I know for a fact that you can make small changes in code will yield dramatically faster code execution. For instance in Flash Player 10 we added support for Vector (Typed Arrays) and simply swapping an Array for a Vector can result in 20X performance gains when iterating over data. The fact is that Flash Player is wicked fast and as computers increase in performance the gains are seen in the shipping Flash Player.

I keep seeing other runtimes benchmark against Flash Player but they do so within the performance vacuum and do not take into account reach, rendering performance, cross-platform, and compatibility aspects. Every developer wants to use the fastest language but the reality is that the language most compatibly installed eventually wins out. Both JavaScript and ActionScript are gaining adoption rapidly because they are widely available, not because they set land speed records for image encoding.

If I was choosing a runtime to bet my business on, I would bet on Flash Player because end users do not have to install a thing, it just works. That is not true with CURL, GEARS, Silverlight, and JAVA. Next time you see someone touting that they run faster, ask them what % of machines is that runtime compatibly installed on today.

Duhhhhhhhhh... Flash Player it just works!

Ted :)

27 Responses to “ CURL BenchMarketing ”

  1. # Blogger MossyBlog

    Two things wrong with this post:

    "... Flash Player 9 is installed on over 98% of computers..."

    Should read

    "..Flash Player 9 has 98% penetration of internet enabled computers.."

    98% doesn't mean distribution :) penetration and distribution are two different beasts.

    eg: Is Flash 9 installed on 98% of all corporate networks around the world? ... keep it clean Ted ;)

    "..If I was choosing a runtime to bet my business on, I would be on Flash Player because end users do not have to install a thing, it just works. That is not true with CURL, GEARS, Silverlight, and JAVA..."

    eh? So Flash magically makes its way transparently and without users intervention on all new machines? corproate environments etc...

    Flash plays by the same rules as the ones you just mentioned, downloads are required and yes, you bet your life someone has to hit the Install button somewhere along the lines.

    I see your point around the CURL benchmarks and personally i dislike benchmarks as it comes back to "my dad's bigger than your dad" schoolyard fights.. Each has their own unique value proposition and to shout down one another just confuses the consumer more...

    -
    Scott Barnes
    Product Manager
    Microsoft.  

  2. # Blogger Danny Patterson

    I completely agree with you. Every time someone asks me what I think of Silverlight, my answer is that it may be a great technology, but the only reason any of us are creating tons of application in Flash is because of penteration. In the early days of Flash Player we all jumped through a ton of hoops to build applications simply because Flash was everywhere and it was better than HTML. That hasn't really changed in the past five years. All these new runtimes have some great features, but the bottom line is reach.  

  3. # Blogger Ted Patrick

    Scott,

    Is Silverlight installed on more than 1% of corporate networks?

    Our public statistics have been fairly well confirmed by Yahoo, Akamai, and others. Flash Player is installed on a HUGE majority of Internet connected machines and widely supported on corporate networks worldwide. Do I know the exact number? no becasue it grows everyday.

    What planet am I on. Am I actually getting a "keep it clean" lecture from a Silverlight PM?

    Ted :)  

  4. # Blogger Ted Patrick

    Scott,

    Also I am sure if you were starting a business you would choose Flash Player too. Admit it!

    Ted :)  

  5. # Blogger Ted Patrick

    "eh? So Flash magically makes its way transparently and without users intervention on all new machines? corporate environments etc..."

    Flash Player is an essential part of the web. It is used by a majority of websites and is by large majority already installed when users reach content. Since many have a version of Flash Player and Flash Player can self-update upgrading the latest version of Flash is a one click process.

    Ted  

  6. # Blogger Dusty

    Ted,
    I'm a fervent flash supporter, but the combination of corporate networks and Flash are the bane of my existence. Most corporate users (without install rights) cannot update their flash player, and it must be pushed out by IT. Unfortunately, as a company that delivers training products as an add-on to our main product, we have to stick with Flash 7 most of the time we are releasing. We just convinced one client, D**** Airlines, to update all corporate computers from Flash 6 (!!!!!) to Flash 9. The only reason we were able to do that was because they wanted SCORM/LMS interactions which require ExternalConnection.

    So, Scott has a point, BUT Silverlight is still in a MUCH worse position, as we would never be able to convince a company that hasn't updated flash in 5 years to install software that was first released as a beta 6 months ago (unless you count 1.0 as an actual release).  

  7. # Blogger MossyBlog

    Hey everything is an upside for us, we're not having to look over our shoulders to ensure we control the market share.

    Given CURL's latest thing, this is somethin Adobe have yet to figure out.. Being successful is easy, staying successful, now that is the hard part.

    We've stopped shipping and supporting Flash, now comes Adobe's turn to handle it's own distribution models.

    -
    Scott Barnes
    Product Manager
    Microsoft.  

  8. # Blogger Ted Patrick

    Scott,

    This link is on the homepage of Microsoft.com

    It is full screen Flash content.

    Ted :)  

  9. # Anonymous Rodrigo P. Fraga

    Flex, AS3, Flash Player!

    ROX! A LOT!!!

    ...  

  10. # Blogger Chris Brind

    Hi Ted,

    Great post and interesting little debate between you and Scott there. I'm afraid I had to LOL at your final link. ;)

    Anyway, I thought you might be interested in this:
    http://www.craftymind.com/guimark/

    ...which (as I have already commented) would provider a better comparison for the technology's primary purpose.

    Cheers,
    Chris  

  11. # Blogger Ted Patrick

    Chris,

    I like GUIMark alot and it seems we need to do some work on Mac to make them more equal in areas. The only problem is that I couldn't get Silverlight examples to work, the plugin is not installed on my machine (EULA scared me off, auto-update without notice, ugggghhhh).

    Benchmarking is so hard as there are so many tests that might be applicable and testing permutations is really hard.

    Ted :)  

  12. # Anonymous Bert Halstead

    Ted,

    You raised enough points, with enough passion, that you inspired me to pen a whole blog post in response. Briefly, there are RIAs, from Adobe's own universe, that have a use for JPEG encoding; JPEG encoding is just an example of other computationally intensive tasks, such as data cube operations, that many RIAs need to perform, especially in enterprises; if Adobe doesn't feel Curl fairly evaluated ActionScript performance for this task, we'd love to see Adobe's improved implementation; and for the enterprise customers that Curl is aimed at, performance matters a lot more than wide Internet deployment. Please feel free to visit my post for further detail on these points.

    Bert Halstead
    Chief Architect
    Curl  

  13. # Blogger MossyBlog

    touche Ted, touche :)

    bah! weak counter-spin, we're a large company with various relationships to agencies whom have their own various opinions.

    We'll eventually turn the tide in Silverlights favour but we value your keen eye and support along the way :) as each time you folks highlight a property that is Flash, it provides a visual que for customers to see the seeds of change flourishing..

    Sorry I couldn't make it to WebDU as I think this would of made a brilliant beer conversation! :)

    -
    Scott Barnes
    Product Manager
    Microsoft.  

  14. # Blogger Josh Tynjala

    Ted, you usually make good arguments about this sort of thing, but I definitely disagree that encoding a JPG is a bad comparison. I know many developers who want to encode images in Flash today. I see many questions on forums about the JPG and PNG encoders from the open source corelib. RIAs aren't just about displaying cool stuff. People want to be able to save files in every possible way, whether by saving on the app's server, sharing on social sites like Flickr, or saving on the user's hard drive.

    In terms of JPG encoding, I've seen two common problems that I hope will be addressed. This actually applies to other file types too, so listen up because it affects an even larger audience than the image manipulators.

    First, most obviously, is that Flash Player 9 currently requires you to send content to the server before allowing the user to save it on his or her local hard drive. That's going to be fixed in Flash Player 10, so it'll be a non-argument soon. Yay!

    The other problem is that ActionScript doesn't allow threading. We need to be able to render the JPG (or any other type of file) while giving the user some visual progress so that they know something is happening. Sometimes it doesn't matter because the file is very small, but if I have a very long encoding process, Flash Player can't show any feedback until it finishes (and even worse, you might get a script timeout error). Yes, I'm aware that you can use an enterFrame handler or a timer, but that means I need to rewrite the logic for many existing algorithms to fit this different paradigm. It's a lot of extra work for me that could be made easier if Flash Player had threads. I know that could open a big can of worms, but even a simple way to allow a background script to run while Flash Player's renderer kept chugging along would be a godsend.

    In short, I argue the ability to encode a JPG or any other file type is an important part of choosing an RIA technology. RIAs are become more and more complex every day, and many apps are becoming alternatives to their desktop counterparts. Easily encoding and saving data will be a HUGE step to making Flash/Silverlight/Whatever become a viable choice for many types of apps that can't be built with RIA tools today.  

  15. # Blogger Ted Patrick

    Bert,

    Thanks for your post. I still think there is little value in Encoding JPG in a large majority of web applications. At best encoding images is a minority feature present in less than 1% of applications so I stand by my point.

    Performance is not the most important element and for a large majority of cases Flash Player more than meets every performance need. That said we are not sitting idly by and have added a Vector class to speed loop iteration with type specific data. In testing simply swapping Vector with Array improves loop iteration 10-20 times (about the difference in your press release) and allows get and set operations on the inner objects to be dramatically faster as they remain typed objects.

    Also in looking at the Flex JPG Image encoding AS3 Class it seems we do not defer code execution over frame loops which can be an issue processing larger images. The result of this is typically non-linear decay and tends to cause player to slow down and result in the time you have seen.

    I would be interested testing the code by using the new Vector class and deferring processing over frames. Changing these both should dramatically improve the performance.

    The other issue is that you can read and write using the BitmapData image format within Flash Player rather than use JPG.

    It is the balance of rich media support, performance, and reach that make Flash Player great. For a large majority of applications it is a perfect fit.

    That said, if customers are wanting to see faster image encoding from Flash Player, we should add native API's for this into player from ByteArray. It would be much faster than anything you can do in ActionScript and would be deployed to 98% of internet connected computers in 10 months (on average).

    Cheers,

    Ted :)  

  16. # Blogger Ted Patrick

    Scott,

    Are you saying that Microsoft has no control over the companies it hires to build its internal websites? Microsoft uses Adobe Flash Player because it just works.

    "We'll eventually turn the tide in Silverlights favour"

    BUHAAHAHAHAHAHAHAHA

    Ted :)  

  17. # Blogger Darrin Massena

    I agree with all your points Ted and JPG encoding is not a common requirement but we in Picnik-land sure wish we could do it faster in Flash. Your suggestions for using FP 10 Vectors, etc are good but I'd second getting JPG compression added to ByteArray.  

  18. # Anonymous Anonymous

    No wonder no one like M$ in the industry -- even one of its foot soldiers talks and threatens like a monopolist in a blog publicly.  

  19. # Blogger HongYi

    Hello Ted,
    Great post. really really nice.
    I have been hearing some Java developers in my company saying that Flash Player is going to be taken over by Silverlight or Java FX.... The interesting thing is: they don't know anything about Action Script, they don't even fully understand what Silverlight and Java FX can do.
    I have been testing examples and projects built with Silverlight from the date it was called WPF/E, but a lot of them just don't work AT ALL. I think it is just not a stable technology we should choose from. Java FX? It is not even in the market yet...why is it considered a killer of Flash Player?

    I guess we all know that Silverlight or JavaFX is not going to take over and never will.

    Flash Player rocks!  

  20. # Anonymous Thomas

    Though it is offtopic, I am very curious about how Silverlight will fit into the RIA business.
    Personally, I think that Silverlight has the possibilities to get a real "threat" to Flash. I have no clue about legal issues, but just think about a built-in Silverlight in Windows 7? Would be a big jump in distribution.

    I really do see a big fight coming up between some major technologies (and companies) here and I hope that we (the users) do take advantage out of that (pricing/features/performance/etc).

    Adobe gogo!
    Microsoft gogo!
    Other technologies gogo!
    (in alphabetical order)

    I want to see a clean fight and let the best one(s) win - to our all advantage!  

  21. # Anonymous Anonymous

    "I would bet on Flash Player because end users do not have to install a thing"

    -- Well, technically they do don't they? It just so happens that "98%" of computers already installed it previously.  

  22. # Blogger cbarber

    If performance didn't matter then Adobe would not have made such radical changes to ActionScript to allow it to be fast enough to write real applications in. Obviously, performance does matter. The question is whether the performance of a given platform is adequate to the needs of your application.

    If you are writing an application you intend to deploy widely on the internet that does not have very intensive performance requirements I am sure that Flash/Flex/AIR is a great choice. On the other hand, if you are writing a large, performance-intensive application to be deployed within an enterprise, then Curl looks like a very reasonable choice. The need to deploy the platform within an enterprise is not very onerous for any IT department, and the Curl language is a lot more appealing than ActionScript to enterprise programmers who are used to C++, C#, VB and Java.
    -
    Christopher Barber
    Compiler Architect
    Curl Inc.  

  23. # Blogger Ted Patrick

    Christopher,

    "the Curl language is a lot more appealing than ActionScript to enterprise programmers who are used to C++, C#, VB and Java."

    ActionScript is based on ECMA 4 (The next version of JavaScript)

    It support:

    - Full OOP
    - Classes
    - Inheritance
    - Interfaces
    - Dynamic and Static typing

    If you know Java or C# learning ActionScript is a minor syntax change.

    Ok all the rest of the CURL engineers, pile on!

    Ted :)  

  24. # Blogger cbarber

    There is no question that ActionScript 3 is a huge step in the right direction, and I agree that it should not be too difficult for Java, C++ and C# users to write ActionScript if they stick to the new static typing model. However, they are still likely to miss features such as a wider set of numeric types, ability to define enumerated types, and
    ability to work with parameterized types (generics), and will definitely miss the performance of their old language. That is why I say that Curl (its not an acronym, so we don't write it all in caps) should be more appealing to developers with that background.  

  25. # Anonymous Anonymous

    Who is this famous

    "Scott Barnes
    Product Manager
    Microsoft"

    fellow?

    And don't we all know that Silverlight is a cheap clone of Flash, made only that Microsoft would have some crippled product vaguely similar to Flash but bringing nothing new, just because it's branded Microsoft?

    Come on, people, get serious!  

  26. # Blogger D Nickull

    I also have to laugh at the fact that after all the Curl rhetoric in the recent weeks, the home page at http://www.curl.com also includes flash (view source).

    ROTFL  

  27. # Blogger cbarber

    I don't see what is so strange about Curl using Flash to show a goofy animation. That is one thing that Flash is clearly very good for, and as has been pointed out, Flash is already installed on most people's desktops.  

Post a Comment



Jobs


Flex Jobs
city, state, zip


© 2008 Ted On Flash