What you need depends on what you want. If you want to create just a viewer (as opposed to an application in which users can add (e.g. draw) geographical data), by all means, use the javascript api!
I've been working with the web adf (v9.3) for some time now and am still frustrated at every turn. Primarily for its lack of proper documentation, but also for various other reasons, such as these:
- It requires you to use the jsf reference implementation, but it does not allow you to use some of its basic functionality, such as (f:)subviews. This makes it impossible to use any templating systems, such as facelets.
- Lots of stuff you want to be able to configure is hardcoded in esri's jar files. For example, the map MUST be directly under < form> which must be the first element of the DOM tree. If not, map-movement listeners such as the ContinueousPanListener are unable to find the map and hence fail at updating the map position.
- It's impossible to code your jsp pages in xml style, since the web adf inlines pieces of at a lot of places in your code, with xslt.
- Its learning curve is very steep and without the proper docs, you'll be looking for days or even weeks on how to do the most trivial things. Some of these end up to be downright impossible or impractical, because you're not adopting esri's mindset.
- The default interface is not very intuitive. You may still end up doing lots of work in javascript to get the way the application draws to your liking.
- The undo functionality requires a versioned database, which is impractical/impossible for application that serves more than 10 or so users at the same time, plus, the round trip to the server for every undo action is a waste.
In short: You can make some interesting apps and if you know your stuff, there's work a plenty to be found in the sector, but if its just for 'some project', I'd switch to some.. any! other framework, such as openGeo..