« Finally, No more Reflector'ing [sic] | Main | Fed Ex, No GPS, or maps, or a phone...? »

Can Adobe "kill" Microsoft?

From Ryan Stewart, "CNet on Adobe as a Microsoft Killer"...

The key word there is application. We're building a platform with Flex that is meant to compete head on with robust client side applications. You can do so much in the browser now and Flex lets to build applications that are feature-wise generally the same as any other app. The kicker is AIR. We understand the benefits of the desktop and if that's what you need to leverage, we want you to be able to do so. But we're coming at it from a web background, from the browser world. I think that allows us to strike a unique balance between browser and desktop that no one else can do as well.

(emphasis his).

Read one of the blog posts from CNet here that inspired Ryan's post.

 

Adobe has something very interesting on their hands. Flash, although steeped in a long history of performance problems and an animation background was completely rewritten for Flash 9, which powers the latest Flex platform. ActionScript, once a mockery of developers (and designers) everywhere, is now a robust, object-oriented, developer friendly, and JITed language. I've experimented a little lately with it, and it feels enough like C/C++/Java/C# that I'm easily at home. The latest beta of Flex Builder 3 is quite solid and provides for a very decent editing and debugging experience. It may not be up to the latest of Visual Studio 2008 in some respects, but it's not far away (and they're making rapid improvements in what seem to be a much faster time table than Microsoft).

MXML, the markup language for the UI of Flex, is a sibling (or first cousin) to WPF's XAML representation. I found myself quickly learning it and looking for the similarities (and finding many) between MXML and WPF in features and behaviors (and there are many).

Why might I consider Flex over WPF? Deployment, hardware requirements, platform availability, runtime adoption (Flash), developer experience, and platform maturity. Sure, I know that Silverlight 1.1 will have many of the same features of Flex, yet, if you look at the feature lists, many things will be left on the cutting room floor of Microsoft, for a 'future' version.

Flex also can be ported to the AIR platform -- which really has no equivalent in Silverlight. WPF is similar, but it's tied to a Windows Operating system, and installation on a PC with plenty of horsepower. (AIR being a technology that allows a Flash/Flex application to run stand alone, outside of the browser).

I think there's a bright future for Flex right now. The browser delivered application (with zero install), is the next big thing. Web 2.0 is all about using HTML/DHTML and more Javascript than you'd ever thought possible to make some applications web friendly (enough Javascript to give you heartburn!). The web is ready for something new. Macromedia is said to have introduced the world to "Rich Internet Applications" (RIA) in 2002. I'd suggest though that we're just about there Adobe (and Microsoft).

RIA is no longer in beta, it's RIA 1.0.

RIA 1.0: It's cross platform; cross browser; ditching the woes of HTML and CSS incompatibilities; crushing the browser; extending our experiences; and empowering users with the full gamut of useful applications without the boundaries of HTML/DHTML/AJAX.

Welcome to the future. It will be arriving any day now. :)  I'm looking forward to it. How about you?

Comments

Adobe certainly has a head start over Silverlight. On the other hand, when I see locked up processes on my XP system, it's usually due to Flex9 or Adobe Reader.

This should certainly be an interesting battle. Both platforms seem much nicer for applications with rich client interaction than any form of AJAX.

Hey Dave!

Adobe Reader is almost always to blame -- it's so awful. FoxIt Reader is my new friend. It's very Vista stable now.

Having some experience with Flex as a .net developer I agree with you - there is a good deal of promise; but after working with Flex to product a real application I realized there is still some work to be done. Since this was a real app, this applies to Flex 2.0 - I'll look at 3.0 when it leaves beta.

If you are used to Visual Studio then FlexBuilder is a huge step backwards - project templates and file templates (especially the many config files needed) are missing. Most annoying was a lack of any way to format the code - when your UI is in XML it's nice to have the IDE keep it neat.

Flex documentation is a mess (again, if you're used to MSDN it's a huge step back). It's also not organized by version - Flex 1.5 info is mixed in the same document with Flex 2.0 and sometimes 3.0. Many places talk about example code in the SDK, but these don't exist in the SDK - they are part of Flex Data Services and or premium "add-ons".

Google around for using Flex with Web Services and you'll find the ton of problems we ran into - and not just soap either - rss behind http auth? Forget using Flex control and roll your own action script. We never found a working example or accurate documentation that explained how to keep your WSDL references in a config file. It appears it can be done, but only if you have a Flex Data Server.

In fact, FDS is a dirty little secret of Flex - if you want to have Flex apps that do alot of data binding plan on investing in Flash Generat.... err, Flex Data Server. Flex also has many places tied to Java Servers too.

Last, once you get your data we found moving though XML very, very slow. To get lists and dropdown populated in a reasonable amount of time we resorted to regex parsing of the XML.

I'm not claiming SliverLight is better - I haven't used it yet (though I have used WPF); but I am saying 3.0 needs to be a huge step forward if there is to be real traction among developers for Flex.

Michael -- many great points and things to look out for.

I don't have any experience with Flex 2. So, I can't speak to that. I've been reasonably happy with FB3 though so far. The documentation seems to be pretty decent (even when compared to .NET as it's often hit and miss, especially relating to WPF). Maybe there has been some improvement in docs for FB 3 (or maybe I just haven't hit your problem).

Have you provided any feedback about the performance to Adobe at all? What has been their response?

What were you trying to do with the WSDL references in a config file (if you can say)? I can't picture a scenario... (I'm probably just missing something obvious).

Dave -- one other thing --

I've been shocked more and more recently by browser warnings that pop-up:

"The Javascript is taking an excessive amount of time/CPU...continue?"

(Paraphrased, I can't recall the actual text).

I've had it happen with Google Reader a few times.

All of the issues I came across I found others having and posting in the Adobe Forums - I posted a few questions there as well, but got no response. Hopefully Adobe monitors it's own forums, but that's not always the case. Sometimes the answer was "can you run our latest nightly build?" - and since it was for a real production app - no, I can't =p.

WSDL w/Config; I want to have a central place to control all WSDL references. It would also be nice to use this single config file for WS Auth. This would be like .Net's ApplicationSettings section in Web/App Config. Our WS is versioned and there are live/dev/qa instances; I'm not fond of a recompile when moving between deployment stages.

My understand of SilverLight is basic controls like TextBox and DockPanel aren't supported yet - so it's out of the picture until then. It's good to see the RIA space heating up; the competition between the two finally got official Linux support from each side ;) MS has hit a home run with ASP.NE Ajax, but Ajax does lack that warm feeling a "compiled" file gives you.

I'm going to point a contact I have at Adobe (evangelist on the Flex team) at this web post (and your comments) to see what their reaction/advice is.

That's the problem with WSDL (both good and bad I suppose really) -- it's a contract. Once it's been solidified, it's gold and shouldn't change. So, a lot of software IDEs seem to be geered toward that. Once you compile it to that web service, why would it ever change? :) .NET suffers the same way as I'm sure any do where you want a decent development experience (strong types, etc.).


Suppposedly 1.1, by the time it ships, will have some basic panels, and text entry. But, you're right, Silverlight doesn't have them yet and it's hard to count on stuff that hasn't shipped.

The WSDL isn't changing, the endpoints are. Ex: dev is at http://dev-server/v1.2/api.wsdl and live is at http://prod-server/v1.2/api.wsdl - the contracts are the same with the exception of the base url of all endpoints. Later, the api teams completes v1.3 so i update my references and test the changes. In many cases the differences don't affect my app, so a one line change is all that (should be) required. In .Net this can be done without a recompile.

(There are some companies m selling addons for Flex to support WS and some for .Net WS specifically; I'm not a fan to third party tools in my framework but others have posted success when buying these addons.)

Let your friend w/Flex know I'm asking for Flex to leave it's playful flash youth and put on slacks and a tie, and work 8-5 in a cubeland. The slick UI features are nice, but way down on the list. I guess you could mingle buzzwords and say I want "RAD RIAs".

And if he really want to lead the "Kill MS" charge, take a page from the MS playbook and cater to me - the developer - above all else. I can download (free) all software and tools used in development; IDEs, Servers, Databases, etc. MSDN is pretty good now (almost every item is documented with example code and links to example project downloads).

I rambling now, but I think documentation is a big key here... today has been spent looking at how to call a WS from Flex that takes complex objects as parameters (and arrays of custom objects). It's really a question of syntax and I'm sure it's simple once I see it.

Help support my web site by searching and buying through Amazon.com (in assocation with Amazon.com).