I'm not here to bash one or the other, enough people do that, just some thoughts for you guys to draw your own conclusions. Also this is from a developer stand-point, building web applications, not a web site with simple text and images...but an app, where you load, create and update data.
Note: Was using jQuery 1.4.2 for the javascript portion.
Flex
Pros
- AS3 is very similar to the Java programming language
- Development, build and unit testing is almost exactly like in Java
- Great IDE (Flash Builder) provides an easy and fast way to code in MXML/AS3
- Online documentation is excellent and thus helps newbies learn the language
- SDK is open source, so a developer can learn and extend the base classes himself if need be
- In Flex, you manipulate the data directly and send it back to the server for processing, no need to worry about re-drawning the UI
- No cross-browser, cross-OS issues
- Object layout is flexible and easy to do
- With its a default theme, the app can look good and professional
- Can create re-usable controls/classes
- Takes time for new developers to realize that the app is one entity that just sends data to/from the server and not a collection of pages
- Compile times can be long
- Developer can get into the bad habit of loading lots of static data (countries, provinces, etc..) up-front, that will never be used, thus causing an unnecessary long load time for the app
- You application SWF can be de-compiled
- If end user can to copy data from multiple controls (or from DataGrid) to paste into another app (say an email), you pretty much have to code this, where its a default functionality with an HTML page since 1975
- Dealing with timezones can be a chore (Flex loves to deal with it on its own)
HTML/JS
Pros
- Faster load times
- The development cycle is quicker: update the page and reload in the browser
- In some cases you can have a single page and use Ajax calls to get the data you need, no need for a page refresh
- End users have been working with browsers for a long time now so the default copy'n'paste functionality is very useful to them and almost second nature
- Cross-browser issues still exist!
- IDE support not great for JS third-party frameworks like jQuery
- In my case, no documentation existing for how to built a jQuery widget, had to find an online tutorial after searching. So no real API doc.
- Object layout is a pain - tables still the way to go - and inconsistent across browsers sometimes
- As a developer you need some design skills to make the app look good.
- Handling the proper z-order of objects can be a chore
- Reading someone's jQuery plugin/widget can be interesting (enough braces and commas for you?)
- The browser BACK button can take your app out of proper state