Disclaimer: The following is mostly just my opinion. Others may think differently.
Priority
Feature
Developer chair - 40%
1
Learning Curve for different frameworks
I think that
JSF has a fairly shallow learning curve.
1
Testability
JSF's decision to use simple JavaBeans for backing beans was done in large part specifically to support simple unit-testing. That is,
testing without having to construct a complete appserver environment.
1
Reusable UI components
That was a fundamental design goal. I think they've done it fairly well.
1
Support for creating very large and complex web-apps with many sub-applications (in otherwords, does the framework do well for rapid prototyping but fall over once we start throwing in more and more functionality?) (This might be the �growing complexity� one, but not sure)
I think that depends on the architecture. If the app's a lot of simple GUI stuff, JSF is good. My gut says that
Struts would probably work better on stuff that heavy on business and light on GUI, but I've never actually reached that point.
1
Support for concurrent development. (This might be an easy one to support, but the issue I want to avoid here is people stepping on each other�s toes when we do parallel development.)
You can do separation of concerns pretty well. Not only by having the actual view handled by someone else, but by passing around backing beans and specific individuals responsible for specific backing beans. Backing beans would normally map to a subarea in the business logic. I pass my persistence off to a DAO layer, which, in turn can be handled by a spe******t.
1
Ease Integration with FB2
I don't even know what FB2 is, offhand.
2
Reusable page layouts
I get this by using the tiling facility in Facelets.
2
Support forum or user group or commercial
You're in one now.
2
Tools - Eclipse, IntelliJ and Emacs Integration
And NetBeans. NetBeans and JDeveloper probably have the best JSF support.
2
JDK1.5 Support Enum and Annotation
Not relevant. It neither requires nor discourages such things. At least as of JSF 1.1.
2
Market Share of Framework
Small, I think, but growing.
Features - 40%
1
Bookmarkability deep links
Bloody awful.
1
Internationalization
Typical. Use resources.
1
Support for Browser Back button
A lot of work has been done in that area. I'm unclear how successful it has been.
1
Support for Browser Refresh button
See above.
1
Better timeout support (warnings and ability to save drafts)
I have no idea what this means. You can attach traditional session timeout listeners to the session objects, since they're just stock
J2EE objects at heart.
1
Future support for Autosave (similar to Google Spreadsheets)
See above
2
Built-in input validation
Validators are an especially strong suit.
2
Ajax Integration
A number of open-source and commercial products are out there, but I think on the whole they're still immature.
2
Ability to create breadcrumbs (state/history management with bookmarkability)
I have even less idea what this means.
3
Any Built-in PDF support
No
3
Coexistance of frameworks minimize the risk of relying on a single framework
Well, you can have JSF, Struts, raw servlet/JSP all in the same webapp without them colliding, if that's what you mean.
3
Future support for Multiple undos and redos (similar to Google Spreadsheets)
???
3
Future support for Capturing keyboard commands (similar to Yahoo Mail Beta)
This sounds like a client-side function. I don't use Yahoo Mail, so I have no clue.
3
Future support for Right-click menus (similar to Yahoo Mail Beta)
This DEFINITELY sounds like a client-side function. You'd need JSF tags that tied to appropriate JavaScript support. The core set wasn't designed to work that way.
Performance - 20%
I haven't tried scaling very high, so I can't say. There's a lot of argument about the overhead.
2
Performance of each framework
???