11 Nov 2006

I was reading Sean Corfield's blog when I came across a post regarding a recent mailing list exchange where Adam Churvis makes the following statement on a thread that is originally about Tamarin:

. . . Adobe realizes its Flash-centric development model and tools cannot keep pace with Microsoft's XAML-based offerings. When you compare the two, Flash-based development looks like an unwieldy cobbled together tinkertoy. And there just isn't enough Adobe funding available to change that in any significant way, so they "give it up to the people" and let them join in for free.

What Adam states is probably completely true... in some alternate universe where rabbits have wings and amoebae are kings of the food chain!

Having seen XAML, I can only say that *it* looks like an unwieldily cobbled together tinker-toy -- a non-humanly-legible mess of low-level drawing primitives and high-level code with a styling/skinning system that exposes so much of the internals of the various objects as to be considered a gross violation of encapsulation. In other words, a trademark mess as only Microsoft (oh, bless!) can make one. Yuck! I can only think that XAML is such a mess on purpose so that you will be locked in to using the various Microsoft tools to create it. Tools, which I may add, pale in comparison to the excellent Eclipse-based Flex Builder. (The difference between the tools is like the difference between Windows and OS X -- the latter just works.)

Compare the unsightly accident that XAML is to the graceful high-level elegance of MXML and the difference is night and day. I could, if I wanted to, write MXML completely by hand without the aid of a development tool and compile it with a free compiler. I can't even dream of what a horrible experience writing XAML by hand would be without Microsoft's tools. More practically, I often switch back and forth between code view and design view in Flex Builder and that gives me complete control over my application. I can tweak the code as I need to while making use of the design view for rapidly creating and evolving the user interface. It's made possible by the fact that I can actually read and write MXML because it's an elegant, humanly-legible, high-level language.

If anything, Microsoft's tools currently have the leg up on how easy they make it to integrate with a back-end (at the cost, of course, of having that integration again lock you in to Microsoft technologies). This is the one area where we need better support in Flex Builder but in a technology-agnostic manner that works with multiple server-side technologies such as Java, PHP, Ruby, etc. (all of which now have open source Flash Remoting implementations).

Based on his comment, I can only assume that Adam hasn't used both XAML and MXML. Adam, try MXML and Flex and you can't help but see the difference. Until you do, please stop spreading FUD about Flex. Oh yeah, and there's no way Adobe is going to abandon Flex or anything else Flash-related. In fact, they're just getting started!

Add Your Comment

Spam Protection by WP-SpamFree

Dude, Flex kicks XAML’s ass (or I want some of what Adam Churvis is smoking!)

  1. Amen, great posting.

    Eric Dolecki
  2. Since Adobe’s merger with Macromedia, the company has completely bypassed any of my expectations. They’re recent toolset is by far the most innovative effort yet. The complete migration to FP9 won’t happen until it reaches over 90% of the market. So, we can’t expect to see the effects it will have on large scale applications until then.

    Now, they start releasing code to open source and some take it as a weakness when it should really be taken as a movement towards open standards. These comments need to subside for at least four years when WPF reaches the masses. I won’t comment on WPF since I haven’t had the chance to play with it, but I will say that I would like to see Flex2 and WPF side by side when both reach mass adoption.

    In the case of mass adoption, we have to go with the lowest common denominator which would be WPF being 4 years (estimate) away. So, lets wait four years and then see how far the Flash Platform has come.

    Dominick Accattato
  3. I like that quote with the parallel universe most!
    Gotta love it when people start bashing Flash/Flex without knowing even the slightest detail about it!

    sascha/hdrs
  4. Aral, this post makes me want to actually check out XAML. Such bias against one company can’t be a good thing.

    TJ Downes
  5. Hey Aral,

    Actually I feel I should jump in and balance the arguments a little as a fellow Flash developer. I’ve been using XAML a lot recently, and it is such a different beast, even though there *are* a lot of parallels throughout the development process, such as timelines, styles, templates (skins), data-binding, partial classes (code behinds), bitmap effects (filters) and so on.

    Please ignore the reams of un-readable XAML code out there on the Web. These are auto-generated by designer oriented tools, trust me you can write some really beautiful concise stuff if you *don’t* use them. (read: Visual Studio with .NET3 “orcas” add-on if you want to pay, or Visual C# Express with addon if not).

    XAML/WPF really does a brilliant job of seperating code from presentation, it positively enforces it in the way you have to work. It takes a little getting used to, true, but for someone like yourself that would be measured in hours not days. It is similar perhaps to DHTML, where the presentation is entirely seperate from the logic. This is shown by the ability to dump all visual content in say the Button class, and replace it with anything you like, it doesn’t break because the visual entities are seperate from the Button’s behavioural code.

    The speed at which you can throw together a simple application is probably the same for both. With XAML you can put anything inside anything inside anything, this makes for some really well encapsulated “cell renderers” without requiring the concept of a cell renderer at all, it’s quite clear that the framework is doing an awful lot for you to cater for lots of needs and this has it’s ups and downs because it means that your aren’t as “pedal to the metal” as with Flash, where we tend to know pretty well what is *actually* happening behind the wizards curtain. As usual with MS we have to rely on the engineers doing a good job on the black box and providing lots and lots of documentation, which they do to a good level.

    Where Flex/Flash eases ahead is in terms of visual dynamics and other such nicities. XAML’s power comes from the WPF framework behind it. You can literally add tags inside component tags to add borders of all kinds, vector graphics for background etc, dropshadows and other bitmap effects, all conforming to the chosen layout control surrounding them like VBox or Grid. This works great for applications, but if you want some of the things Flash does best, very dynamic animation and small additions here and there you need to jump through the stricter hoops WPF enforces, which means it is much much slower to do certain things and not so easy. Unlike with the Flash Player, being bred as a tool for animation, which enables you to very quickly add dynamism in very little code. This has something to do with the prototype based nature of ActionScript, but more-so the core types built into the player.

    This is illustrated by a simple example. I wan’t to create a button with 3 states, each looking slightly different visually. In Flash this could not be easier. But in WPF, without an IDE that actually has a concept of these states built in, you must do it in code/XAML only (perhaps also using individual vector/bitmap assets if you want)….

    So in Flash it is easy, particularly with slice-9. In XAML/WPF you need to think differently and do this by setting up a new style for all buttons (or just one instance), and then putting in 3 style trigger tags within, one for mouse over, mouse down etc. In those style triggers you can replace the template/skin, or make it highlight/glow etc, it is kind of like modifying CSS on HTML entities using JavaScript on a JS event. So there’s a different way of thinking required. But neither is better than the other because they both have so much to offer. The lack of a visual editor acts as a double edged sword. There is a visual editor, but it is only that, you can only create static graphics, the concept of MovieClip does not exist.

    At the end of the day penetration stats are going to make the decision for most people, but all in all I thoroughly enjoy using both, and will continue to do so. The Visual Studio IDE makes me a hell of a lot more productive than with any other IDE in any other language. Just being able to use the immediate window (type in any code and it will evaluate it whilst the program is running) and a truly amazing debugger, makes WPF development a joy (roll over objects/arrays in code, have it tree-view that item at runtime). But I’d be saying the same if FlexBuilder had those features, and with the new stuff in AS3 this might possible if the object reflection has come along enough.

    Richard Leggett
  6. I dont buy into the penetration stats.
    Even if i target FP7 i still have make sure my swfObject player detection is working 100
    %.

    I dont bother and go directly for the latest.
    basically i live and breath express install :)

    Bjorn
  7. I have been using Avalon/WPF for some time, and I can’t say it’s difficuilt to write things with it. It’s really easy to create attractive applications. I have been using it to create examples for Hydra and Chrome and together with XAML plugin for Illustrator it rocks :-)

    Now let’s see what Apollo brings us, though. I won’t be using WPF for creating RIA though.

    Weyert de Boer
  8. Bjorn has it right.

    The september penetration stats were 40% in US_AND_A; by now they’ve gotta be pushing 60%. And express install makes flash 9 a done deal.

    I don’t usually code to the latest and greatest, but seems that fp9/flex2/as3 offer so much it’s almost stupid not to in this case.

    Microsoft on some level definitely sees Macrodobe as a threat. Why? Because they flew completely under the radar. Instead of saying (like Sun did) that they were going to take over the desktop and browser from MS, they were busy making flash the best product they could. And with things like osflash, flex2, linux fp9 coming down the pipe, apollo, the recently announced tamarin project, adobe is poised to strike hard wrt courting the developers.

    A good thing for us.

    nate
  9. Aral, I would have expected a bit more reasonableness from you. Sure, Adam’s comment was FUD, but your post doesn’t take any higher ground. Richard and Weyert have it right: XAML isn’t more difficult or unsightly than Flex – it’s just different.

    Good applications written in Windows Presentation Foundation look much better than good applications written in Flex. XAML is just way more powerful and gives you the ability to build UIs that are way ahead of Flash. Now, the downside is that you are locked into Windows, and that’s a deal breaker for me, but don’t go trashing XAML because you don’t like the way the code looks.

    Ryan Stewart
  10. What I see as the major issue with flash/flex right now is that it does not support any kind of 3d support which is probably the *only* reason I’d want to move over to XAML/WPF. If flash/flex can do some kind of integration of the hardware then I think they’ve got it made really. That an full unicode support.

    The WPF ui look with vista may look better by default, but really its just because thats the default skin. Most flex developers dont know how to design so their apps look like flex apps. However, I’ve done some 9scale skinning which rivals that of a vista app in flex 2. You just need to know how to have photoshop design skills to make it look right and load in the PNGs through CSS and apply the 9scale and you can do some extraordinary designing and the sky is the limit bar the 3d aspect.

    But what it really comes down is to the user experience. A developer can have a million gripes about everything about a language — but when it really comes down to it its what the end user sees and the presentation to him. Currently flash/flex owns this because of the amount of design flexibility you have and how we can display the content — Look at flash video — try doing masked video with alpha channels and video in GDI! It just doesn’t work.

    I’m sure vista will have the edge in terms of UI down the road. If Adobe can muster up the 3d support and get more of a larger community going — which Aral currently is helping in a major way with Osflash, then there is no stopping flash/flex. It’s cross platform, mobile and with apollo implementing a slick API for OS level operations the sky is the limit.

    That, and if flash/flex ever fixes RTL languages… then we’ll be in business.

    Ak
  11. well said and totally right Aral.

    Remove the VS IDE to a .NET dev and he/she will just crawl as a turtle to write any XAML, the MS lockin is just done in such a way that if they want to be any efficient they have to use VS IDE, no alternative.

    The big difference between MXML and XAML,
    Adobe is in a very good spirit of sharing and giving back,
    people should really do their homeworks and realize
    that there will be no XAML/MXML if XUL was not there in the first place,
    have some fun with MS people and try to make them admit XAML is
    directly inspired from XUL.

    read that
    http://blogs.zdnet.com/Stewart/?p=168

    “11:46] kevinlynch: there is always potential for harmonization :)
    [11:46] brendan: many XUL folks saw similarity in MXML, at widget and layout model levels
    [11:46] brendan: which matter more than superficial XML vocab
    [11:47] brendan: i think we could harmonize XUL and MXML so that either vocab could map onto either runtime (XULRunner or Flash Player)
    [11:47] brendan: if anyone is interested in this, please mail me”

    “Adobe realizes its Flash-centric development model and tools cannot keep pace with Microsoft’s XAML-based offerings. ”
    hahaha really hilarious,
    not only MXML kick XAML’s ass, but XUL gonna be in the party too,
    Tamarin is just the beginning folks.

    zwetan
  12. Developing any XAML works just fine without the Visual Studio, even any interop with win32 works nicely. One of the examples is controlling XAML in a Win32 Chrome application using Hydro. No problem at all!

    I don’t see why Flex ain’t a lockin with Adobe either?

    Reyer
  13. Reyer, I think he’s referring to the fact that you can use any ide to compile flex. As in you can use Eclipse with ASDT, or you can use flashdevelop (my fave) and there are various other suites that do not lock you into using flexbuilder with adobe. The runtime is absolutely free, there is a player for mac os, linux, win — flex 2 on every platform right now. From what I can tell adobe is trying to eliminate the OS as being the end all in terms of how software is run so we can deploy apps with the original vision of Java but with the slickness of flash.

    Ak
  14. As soon as Flex incorporates the same kind of RPC of objects that is available for Java, I , as a .Net developer, would embrace and push Flex technology in a heartbeat. Unfortunately, until that time, many small to medium businesses (which are the ones whom seem to choose .Net) will suffer.

    If Adobe doesn’t hurry up (and relex their expensive cpu licenses), they will lose their momentum.

    Nemaroller
  15. Just a few comments:
    “In the case of mass adoption, we have to go with the lowest common denominator which would be WPF being 4 years (estimate) away”

    My guess would be very different. I think WPF is going to be used more for desktop apps than for XBAPs, because there’s a legion of .NET developers aching for a decent replacement for the utterly lame WinForms.

    All these developers, being lazy and having limited project budgets, will be porting apps to the web the simple way (publish as an XBAP) and requiring .NET 3.0 for their intra/extranet solution. And so, masses of developers that didn’t want to get involved with scripting-type tech like Flash (

    Jonas Beckeman
  16. That sucks. Half of my comment was snipped, and with this cool AJAX implementation I can’t back the browser to get the text in the textbox back. Go easy on the fancy stuff..!

    Jonas Beckeman
  17. Ak has a good point in that Adobe is attempting to remove the OS from development considerations. Of course MS will not be able to match that goal since they don’t want to kill their cash-cow.

    Everyone can point out deficiencies with either platform all they want but the crucial issue will come down to this: it’s obvious that the desktop is moving from your local machine to a network/web location. *if* Flex/Apollo reach a tipping point – what that is no one can say yet – then home and business users will start looking at the price tag of a PC with the Windows tax on it and thinking, “Why am I paying all this money for the OS when I don’t even notice what it does for me?” Enter more and more Linux machines being sold.

    This is years down the road and whether that tipping point can be reached is uncertain. But if it does MS is going to go into a tailspin. MS must at all costs prevent this from happening so they will do everything they can to keep people tied to their products. It will become more and more clear as time goes on that Adobe is promoting freedom and MS is promoting restrictions.

    DanFlorio
  18. The bottom line is that if you’re good at what you do, you’ll do well no matter which way you go. I happen to love Flex2/AS3, but if it all went down the tubes in a week, withing a few months, I’d be up and running at the same pace with a completely new IDE and platform.

    Having said that, I love to read posts like these becuse they open my mind to perspectives I might not otherwise ever entertain.

    Kevin
  19. Testing injection

    Just
  20. Just a couple of points,

    Does flash provide native support for direct x?
    You can use WPF from C /CLI and I am sure that eventually mono will provide flexibility in other linux variants, in the meantime nobody has mentioned WPF/E for cross platform compatiblity worth checking out.

    You don’t have to use VS.NET IDE for WPF or XAML additionally I get the strong sense from this posting that you are a strong believer in flex / flash the one thing to temper your enthusiam is commercial implications as windows is still the dominant client platform and being a manager and developer in the ICT industry these thoughts weigh heavily in my thoughts

    Luke
  21. “Remove the VS IDE to a .NET dev and he/she will just crawl as a turtle to write any XAML, the MS lockin is just done in such a way that if they want to be any efficient they have to use VS IDE, no alternative.”

    Zwetan,

    The majority of .NET developers have the Visual Studio .NET IDE anyway.

    But I think currently there are enough differences between Flash and WPF/E that the waging battle may be a bit off for some time.

    Nemaroller
  22. In your post you state “gross violation of encapsulation” in reference to XAML. This statement really shows the different mindsets of the individuals using these various technologies.

    Based on raw definitions, it XAML is much more in line with the ideas of encapsulation, as defined within the world of object-oriented development, than the Adobe model. Richard Leggett goes into some of these specific ideas within his comment.

    The Adobe platform is overly-aimed at the designer. Designers are not developers. Developers are not designers. Both roles have important contributions to be made on a project. The XAML model encourages collaboration between the two. I do not feel the same way with the Adobe platform. I feel it is extremely designer centric and leaves developers to figure stuff out.

    Additionally, I have attempted to create both Flex and XAML based applications from NOTEPAD and I found the XAML approach to be significantly better.

    Bill
  23. Hi,

    I have a flex application, and I need to compile it to run with Flash Player 7.

    Someone can tell me if it’s possible to do, if it’s possible, how can I do that.

    Regards.

    Marcelo
  24. Hi Marcelo,

    Unfortunately, Flex 2/3 is Flash Player 9 only.

    Aral
  25. I am a web designer and developer. I usually designed in Flash actionscript, but since I started with XAML I have not doubt microsofts apporach is way smarter, and more functional in the market. Flash is really neat, but in regards to code, unlike a lot of you mention, its a mess in comparison to XAML. XAML works a lot more logical for a developer, and yet its clear for the designer as well. Its also a lot more powerful especially with the ease that visual studio brings to the table, and its still easier without visual studio. If you write code manually and you are a programmer, and would like a better workflow, XAML is way beyond flash.

    Andy
  26. What do you say now that SilverLight 2 is going to come out equipped w/ the mighty .Net framework as a from top to bottom web app solution instead of just a flash-wanna-be? Dude, Adobe has little to no measure to counter the M$ juggernaut. They are a good 3-year behind, and I’m just being conservative here. Time to switch to SL2, it’s the right moment.

    Wally
  27. Wally is right. Anyone trying to compare Flex/Flash with .NET/XBAP/SL/WPF will undoubtly come to the conclusion that Microsoft’s solution surpasses Adobe by far. Full graphics acceleration, easy databinding, full desktop experience and use of prior desktop development knowledge makes .NET a clear winner over Adobe’s solution.

    I believe Adobe is trying to keep developers, not gain new ones. They had to have *something* to show against the mothership of RIA’s (.NET/XBAP/SL/WPF) so they don’t lose all developers in an instant. I have no doubt in the long run (with Vista having .NET 3.0 preinstalled) the penetration of .NET will surpass Flash as well.

    Alex

    Alex
  28. And, does Adobe has a IDE as polished and complete as Visual Studio?

    Lorenzo

    Lorenzo
  29. Hi Lorenzo,

    “Polished” and “complete” are, IMHO, not things to strive for in software. If your software is “complete”, it is dead. Only software that is constantly evolving is alive. Thus, I feel that those are the wrong goals to aim for.

    Does Adobe have an IDE that is being evolved and developed? Yes. Does it get the job done? Yes. Is it feature-for-feature comparable with Visual Studio? No. Should it be? I hope not.

    One of the great things about Flex is how easy it is to work with when compared to the complexity of some Microsoft technologies. I hope that Adobe don’t lose sight of this important value as they evolve Flex and Flex Builder.

    Just like we shouldn’t aim to be where Java was ten years ago with ActionScript, we shouldn’t aim to be where Visual Studio is today with Flex Builder.

    Aral
  30. Hi Wally, Alex,

    AFAIK, Microsoft can throw the kitchen sink into Silverlight (which they probably will end up doing.) I’m hoping that one day they learn that features++ != usable product.

    In the meanwhile, I hope Adobe keeps on providing a solution that is simple to use and fits the needs of web developers.

    How you can even state that Microsoft’s solutions are the “mothership of RIAs” confounds me totally. What statistics do you have to back up your claims? Flash/Flex have almost complete ubiquity in this field. If anything, Flash is the mothership of RIAs. You’re comparing a version 1 product to a version 10 platform (and looking very silly doing so.)

    Aral
  31. I have always found the arguments of what is better amusing. I think and mind you im not some master of all things or some super dev guy. Im just a person who has had the fortune of being able to explore the different worlds of microsoft and adobe. I think a co worker of mine said it best concerning the Adobe/Microsoft approches to things.
    Basicly its this.

    MS has a very dev-centric method when it comes to what they make. This is great for someone like me who perfers to be a code monkey. The tools and approches they use fit the methods and approches i use in my day to day activity. I absolutly love working with the XAML and Silverlight 2.

    Adobe is more designer-centric. This is great for my co worker who is more designer he loves the tools of that Adobe because the fit his needs and are more intuitive for him. He cant stand XAML and Silverlight 2 at all, for him Flash/Flex are the way to go. For me on the other hand i go nuts with the approch of Adobe’s and apps.

    Is Microsoft better than Adobe when it comes to tools or vice-versa. Probibly not it all is dependent on your own personal approch and methodoligy. I give both companys a lot of credit, I think they have developed some interesting and useful tools that have allow for some great user experiences.

    Gilbert
  32. I am in the throes of choosing a strategic path for my company as to which flavour of RAIs their e-Learning applications should take.
    Being arts post-graduate, re-trained programmer, my money should surely be on Adobe to deliver that “Blue-Sky” application that will actually do the task before you think it e.g. “exit humanity” or on the other hand “This computers really boring, anyone want to go dancing?”.
    Given the current ‘a simile’ I can only conjugate with humor in my gambit of “that if”:
    Obama wins on 5th November : I choose MXML
    McCain wins on 5th November: I choose XAML
    Base: both have powerful merits but require certain political, economic and social economies to flourish. And may the best Extended Markup Language win.
    Smashing stuff guys, keep up the good work, now I’m off dancing…

    Simon
  33. MXML sucks @$$, you macromedia fan boys. XAML rocks.

    Navajo Joe