JQuery VS Flex – Choosing a Platform for SAAS

apache-flexjqueryplatformria

Our team is about to start a SAAS web application geared toward small businesses. This is a completely new experience for us; we are a system/linux/php development organization and no experience whatsoever developing client side software except for simple html/php based CRUD support applications.

We are evaluating both Adobe Flex and JQuery. We can't seem to choose between the two. Our priorities are:

  1. Productivity – We have to launch the soonest possible time.
  2. Overall User Experience – Resulting apps have to look professional and user must have pleasant experience using our product. I think this not a problem with both platform, though we will probably automatically lose 10% of potential users who don't have flash installed.
  3. Skill Reuse – We will all have to learn new language(s) and RIA platform on this project and hope we can use it again on more projects. BTW, we are a software contracting organization and this is our first foray to consumer apps. We are hoping though that we can leverage the skills we gain here for our clients.

Application Characteristics:

  1. Data-centric – Lots and lots of CRUD operations.
  2. 3-tier – Business logic will reside on PHP server and data will be on the MySQL. The RIA will only present the data to the user.
  3. User accessible data will be large – This is why we decided to use RIA. We can't refresh the page when user just made few alterations/additions.
  4. Security is paramount – I don't see any security implication on choosing one platform over the other but perhaps the community has some ideas?

We are carefully studying this. We frequently hold competition among developers who can implement a test app faster by using a flex or jquery. We would love to hear what the community have to say though.

Thanks in advance!

Best Answer

I have used both. I don't have a strong recommendation, but have some considerations.

  • Mobile support. Flex requires Flash runtime, which is not present in many mobile platforms. For best results, you will in any case need a separate mobile interface, not just reuse the desktop interface, although the latter works up to some level.
  • Browser support. You will spend more time with jQuery on this. They abstract away many things, but once you get to the layout specifics of your app, you will still need to do a lot of work testing across browsers and platforms that is not needed with Flex.
  • UI layout and architecture. How complex is the app? How modular? Flex has very good patterns for componentizing your app, producing reusable components etc, jQuery as such does not help you with that, it is more barebones. With Javascript/jQuery you will need to do your own research to find the best architecture setup.
  • Development tools. If you like designing your app with a GUI, Flex has a very nice integrated design/coding IDE. You're on your own with Javascript. There are tools, but you will need to do your own selection.
  • Vendor lockin and cost. Flex costs money (well, the IDE anyway, you can get a free compiler but I haven't tried how usable it is.) Javascript/jQuery is "free" but need to spend time researching all of the above.

User-experience-wise, both are equivalent, you can produce both good and bad experiences with them. Both have decent out-of-box UI widget sets, jQuery with ThemeRoller is somewhat more easily customizable, but Flex also bends itself nicely to skinning with a system very similar to W3C CSS.