Usability problems in JSF
JSF is not perfect, nor the greatest thing since sliced bread. There, I said it!
What bugs me most (and remember, I'm still a big fan) is that JSF was supposed to be really easy-to-use. In many ways, it is very easy. But the reality isn't always quite so sweet. There's shortfalls that make the learning curve longer than it should be, and they are fixable.
The most annoying problem is that errors simply result in big stack traces. There's nothing wrong with stack traces per se, but by themselves they're totally insufficient for error diagnosis. Real diagnosis requires at a minimum:
In general, all exceptions thrown anywhere in JSF or JSPs should be vetted to ensure that they:
tag or something similar to your page, all that you see is - nothing.
Finally, when you do figure out what you've done wrong, quite often you need to bounce the server to pick up the changes. Any changes to WEB-INF/faces-config.xml require this. That's a huge productivity hit.
So, that's my hit list for JSF usability problems. What are your biggest JSF usability concerns?
[PS: Yes, I edited the wording a bit. It was coming across as an angry rant that JSF isn't useable, which isn't where I'm coming from.]
What bugs me most (and remember, I'm still a big fan) is that JSF was supposed to be really easy-to-use. In many ways, it is very easy. But the reality isn't always quite so sweet. There's shortfalls that make the learning curve longer than it should be, and they are fixable.
The most annoying problem is that errors simply result in big stack traces. There's nothing wrong with stack traces per se, but by themselves they're totally insufficient for error diagnosis. Real diagnosis requires at a minimum:
- Line and column numbers, as well as file name. And even better, the snippet of content from that document that matches up.
- If an EL expression fails, information on what part of the EL expression failed. (When a complicated expression like
#{foo.bar.baz == my.other.expression}
fails, it's very hard to figure out what went wrong.)
In general, all exceptions thrown anywhere in JSF or JSPs should be vetted to ensure that they:
- Contain a meaningful, useful error message
- Contain enough context to point out what bit of user content failed
- Never, ever drop the base error, if one is being wrapped
Finally, when you do figure out what you've done wrong, quite often you need to bounce the server to pick up the changes. Any changes to WEB-INF/faces-config.xml require this. That's a huge productivity hit.
So, that's my hit list for JSF usability problems. What are your biggest JSF usability concerns?
[PS: Yes, I edited the wording a bit. It was coming across as an angry rant that JSF isn't useable, which isn't where I'm coming from.]