Flash VS jQuery for RIAs development : Which one is better to use and for what reasons?
Can anyone please explain for developing rich internet applications which one of these two technologies (Flash VS jQuery) is better to use based on criteria such as "Pros and Cons, time, cost, situations and etc..." and why? Please explain in details, it is very confus开发者_运维百科ing. Thank you.
I started out as a graphic designer. I found out that you could animate illustrations with Flash 5... so I learned how to utilize the timeline. Then, I found myself wanted to "invent" more complex web flows that incorporated my illustrations and animations; that's why I learned ActionScript.
As I grew as a web developer I noticed that many basic animations (button rollovers, page transitions, etc) we're being done with JavaScript... and eventually something called Ajax (an extension or method of JavaScript).
Upon further investigation, I found out that ActionScript was basically inspired by JavaScript syntax.
Long story short, with Apple's hard stance against Flash on the iPhone/iPad, I might find myself promoting your personal education of JavaScript, then AJAX and jQuery and then ActionScript. It seems a logical learning progression.
Everyone knows what Flash is capable of when it comes to animations... but if you want to see what is possible with JavaScript and jQuery, check out this LA designers blog: http://www.sohtanaka.com/web-design-blog/
It is easier to make rich internet applications that look and feel like desktop applications with Adobe Flex due to their large library of great widgets. It is much harder to get anything that looks like Flex applications using jQuery. Edit: Both jQuery UI and Flex allow you to customize and extend widgets, although this is arguably easier to do in Flex. I've included links below to demo sites where you can better see the difference.
Flex applications run in Flash and will look the same on all browsers. Traditional web applications may look and behave differently on various web browsers.
If you want to use Flash Builder and its advanced features you will have to pay. jQuery is free.
Flex will only work on browsers with Flash which excludes most mobile browsers (for now) and the iPad. jQuery will work on any browser with decent javascript enabled which is virtually all of them. Edit: It should be noted that while most desktops have Flash (see Adobe's stats) many user plugins like click2flash on safari and others on Firefox that disable Flash or at least require users to click on it to run it. There have also been some performance issues on Macs, but Adobe claims to be fixing these issues in upcoming versions.
Try looking at samples of both to see the difference:
- Flex: http://www.adobe.com/devnet/flex/tourdeflex/web/
- jQuery UI: http://jqueryui.com/demos/
If you're targeting mobile browsers, the only answer, currently, is jQuery.
Wow...what a loaded question. The answer is not simple and really depends on the platform you are targeting. If the target browser supports HTML 5 features such as canvas and SVG, flash is (mostly) rendered obsolete by the HTML5 + JavaScript combination (JQuery being the most popular JS library). Unfortunately, the browser with the largest install base (IE) does not support these features (at least not until IE9 is released) so we are sometimes forced to use Flash.
In the coming years, Flash should fall by the wayside so I would spen more time learning HTML 5 and JQuery.
This really depends on what you want to do as each approach has it's advantages and limitations.
The advantages of Flash (or things that can be done only in flash):
- interface sound
- 3D interactivity (aka making a 3D game in javascript is currently unrealistic)
- augmented reality
- good designer oriented IDE
Flash is part if Adobe's Creative Suite and can be quite costly. You can develop with other tools, but then you loose advantage #4.
The advantages of HTML5 & javascript (jQuery)
- much wider browser support
- mobile web (this is a big one)
- easier accessibility and search-ability (although this is possible in Flash, just harder to accomplish)
- better user experience with many things (text-selection, scrolling, native controls etc.)
HTML5 and javascript are open standards and as such completely free.
To address time to learn: this is quite similar I think, since the languages are very similar.
Probably the best current approach is to use HTML5 with jQuery (or generally any javascript) for most of your work and when you need more capabilities sprinkle with a little flash (which you can often download as a jQuery plugin) ;)
Just recently, this very topic was big news on apple.com.
Rather than me re-iterating, for anyone that's still pushing Flash on the web, it's really worth the time to just read it.
The Article
http://www.apple.com/hotnews/thoughts-on-flash/
精彩评论