I've been really trying to stay away from this... but I have to chime > in.
Uh Oh. :) > > > 1) Write once, deploy cross platform > > That "pro" is also it's biggest con, in that you are tying yourself, > your product and everything you do to Adobe in what is effectively a > closed and proprietary format. In other words, you are at the mercy > of the Adobe folks getting it right year over year as technology > continues to evolve. > Agreed. But, with any software, you have to have some faith. Added to that is Adobe's deal with Mozilla this year to license the scripting language to them for inclusion in the browser framework. For me, I think it is as simple as recognizing that Flash (player) isn't going anywhere, is installed on 98.5 (or more) of the computers out there, takes only a minute to install on machines that don't have it, and because of that is pretty much ubiquitous. Lesson #2: Don't launch a mission critical application using any brand new technology you've been working with it for a while and think you've mastered it (or you know a bunch of engineers at Adobe who work on the Flex team). > > > 2) You can turn your Flex application into a desktop application > > without > > much code refactoring (using AIR). > > Indeed. This is a nice argument for creating a thin client product. > But mixing these products into browser environments as well as having > desktop versions is massively confusing in my opinion. I actually > think Flash/Flex is better for the thin client approach, and > desperately wish people would stop embedding massively complex Flash > apps inside web browsers where they make little sense. > I don't disagree with you here. Like anything though, "good" experiences and "bad" experiences shouldn't be blamed on the technology itself, rather the implementation of an idea using a particular technology. I've seen the same concept built by two different teams and feeling that one of them sucked pretty bad, while the other was brilliant. It comes down to execution, paying attention to the little details that can make an embedded application give off bad UX vibes, etc. > > > 3) With the evolution of browsers, you can be less concerned about > > how to > > migrate your code to keep up with changes in the Document Object > > Model in > > AJAX, as the Flash player is backwards compatible. > > This is an argument for dropping the web browser as a development > platform. However, if Adobe ever were honest about that product path, > they'd probably lose 90% of the people who would even be interested > in using Flash/Flex. Why? Because the products would live outside the > massive deployment model of the web browser. Unfortunate as that is. > I hear you. I still think that adobe (like a lot of software companies) have the official plan, but are very cognoscente of the change in the market, etc. I don't think Adobe wants to kill the browser as a platform by any means... (case in point, the deal with Mozilla). Let's face it... it is a hell of a lot easier to deploy a web application than a desktop application. AIR solves some of that, but it still isn't as simple as just going to a URL and having the application sitting there for you. The downside to browser-only applications is that there is not any integration with the desktop. Some of the cool things that a platform like AIR brings you is the ability to drag items (a spreadsheet for example) into the application and have it converted to consumable data on the fly. Some of the comments I have made regarding Mozilla refers to the Tamarin Project: http://www.mozilla.org/projects/tamarin/ > > 4) The Flash player now has hardware acceleration... so you can > > build UI's > > that look and feel the way YOU want the to, and not be limited by your > > development technology > > No. You are still limited by whatever Flash can or cannot do as a > platform. Let's not even bring up how crappy text handling still is > to this day in the Flash rendering environment. You are limited by any of the technologies that we have. Flash isn't perfect, but it is arguably the best we have at the moment. Also... I've been fortunate to work with some of the best and brightest Flash developers out there. So, can flash "do it all?". NO. Can an ActionScript Ninja who really understands the SWF format and the inner workings of the Flash player work magic? Amen. > > 5) 3-d integration (using papervision or another framework) > No one cares about this. Ok... maybe 3% of the development teams out > there do... but really, no one cares about this point. They will. :) check out searchme.com as an example of why. > > 6) Handles LOTS of data much, much, much better (data grids with > > tons of > > rows, etc) > > Based on what metrics? I have yet to find a Flash/Flex app that > handles large sets of data faster or better that a well implemented > browser or desktop version. They all have their pitfalls, especially > when done improperly. And yes, this includes and understanding that > even if you could display a thousand rows of data in less than a > second, people can't process it on something as coarse as the > resolution of a computer screen, so who cares? I could provide proof of concept after proof of concept that I or coworkers have developed that demonstrate this. I will not say that a compiled desktop application suffers from the same lack of data handling that you'd find in the browser though. Desktop binaries are a different class, and would most likely outperform an application in Flex. (almost definitely). But when it comes to pure handling of data, Flex beats Flash, and most of the AJAX frameworks. You also have to take into consideration that if you use Flex with BlazeDS or LiveCycle DS or even products like Midnightcoders' Web Orb, you also benefit from the data compression and passing of native objects between the server and the client. > > All in all, it's been a really good tool in my experiences... But I > > preface > > that by saying I've been fortunate enough to work with some pretty > > talented > > software engineers that really know the framework and how to make > > it sing. > > That's obviously a big issue. The thing I have yet to understand is > that if I'm working with that kind of engineering group, which I have > have done so many times in my past, why not just build a real desktop > client application and regain control of everything you need to gain > control of. Point taken. I don't argue with you here, except for the fact that the "Web" is king and the large majority of these apps have distinct business requirements that require them to be deployed online. The flipside of this is that with the reintroduction of thin-clients (AIR, WPF/Silverlight) the notion of having "Web" or "Network" connectivity inside your application should be taken as an obvious thing to include in the architecture. I agree though. If you want maximum performance... bring your application to the desktop. If you have to play in a world with requirements that require it to be deployed in a different manner..... > Sure, *some* of the up front engineering may take a tad > longer than going the RIA route, but given the total and full amount > of control you'll get for that investment, True. (again!) > > > Now... I'm not saying Flex/Silverlight or any of those technologies > are bad or anything. But what I am tired of are people who aren't > discussing the pros and cons of all of them at a purely agnostic, > "what happens" level, letting people decide for themselves what they > really need to do for their product development. Your list crosses > that line for me. I am an agnostic guy. I have to be. I have a lot of experience with Flash and for the last 4-5 years, Flex... but there is the right tool for the right job, and it might not always be a flash-player based RIA. Case in point: I am working on a project now which is an internal application to be deployed world-wide for a corporation that needs to have the ability to tie in a device plugged in via USB or serial cable with a web application. Whoa.... This will be MSIE only, utilizing AJAX as a UI and data transmission layer with embedded Flash content and OS integration (USB) using a (gasp) ActiveX Control. When was the last time you heard that! :) Thanks for the fascinating challenges to my point of view and the interesting discussion. dave ________________________________________________________________ Welcome to the Interaction Design Association (IxDA)! To post to this list ....... [EMAIL PROTECTED] Unsubscribe ................ http://www.ixda.org/unsubscribe List Guidelines ............ http://www.ixda.org/guidelines List Help .................. http://www.ixda.org/help
