Even though GWT goes a long way, it's not giving the same flexibility and accessibility as a proper application.
Even thouhg a GWT application can do almost everything a real application can, a number of factors indicates that RCP would be the best tool.
- Repeated work
- Lots of input
- Long sessions
- Repeated tasks
- Custom widgets for editing or presentation.
- Multiple windows with different data.
- Quick keys for often used operations
- Quick responses.
- A real menu bar, coolbars.
- A proper window that it easy to find in the taskbar.
- Context menus for seldom used operations
- Limited (or known base of) number of users.
- Extensive or complex animations or real time updates.
If you think that your application needs a workbench, with several views and editors, then the choice is given.
RCP and the workbench are not that easy to work with, but you get much for free if the application would benefit from the more "free" and open working model with multiple open views/editors etc.
If the application is for more occasional tasks, then GWT is really good.
GWT is really nice, but its still a web application, and that sucks sometimes. I wouldn't want to do all my work in a web application where i can accidentally press a key and lose all my work and the session. (My keyboard even has a key next to the arrow keys that seems to be impossible to disable). Its powerful enough do do almost anything you can do in RCP but its still running inside the web browser, and that can be irritating.
Remember that you can use java Webstart to deploy RCP applications.