I'm on a project where we try to build a GUI replacement for an old application. Before we really implement the functionality we've started prototyping with Eclipse RCP (Rich Client Platform) and GWT (Google widget toolkit, a Rich Internet Application). What is your experience with RIA and RCP GUIs? When does it make sense to use RIA and in which situations a rich client is more suitable? With the current possibilities of RIA, it becomes more and more difficult to draw the line.. Do you have any experiences?
EDIT: All your answers are really interesting. I'd like to accept all of them as they contribute to the answer of my, I admit a quite open question. So my vote up for each of them. Hope the bounty will be shared among you.
There's not any detail on the requirements of your application which is really key to answering the question.
The big win for using GWT is the ease of deployment relative to something like RCP. There is nothing easier for the user than pointing their web browser at a URL and nothing easier for the operations team than pushing code to the server, bouncing it and calling it a day.
As far as functionality, the big area where GWT will come up short would be richer data visualizations: charting, tree/node, network diagrams, etc. This stuff is possible with GWT and some help on the server but the limitations of DHTML start to show through, even with a powerful toolkit like GWT. On the other hand, RCP gives you the full power of Java 2D to visualize anything you want. These kinds of features may not be necessary to you but they're also the ones that make applications really interesting, more than just a mess of tab, tree and data grid controls.
I've been developing with Adobe Flex for several years now and find it to be really powerful, having more or less the same deployment advantages as something like GWT but offering the same kind of power as RCP. You might want to check that out too.
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.
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.
We developed a (pilot project) plug-in for Eclipse which was then converted to both a standalone RCP application (we didn't want to ship it as a plug-in since we didn't want Eclipse as a pre-req, so we had to add some supporting code making it slightly more complicated than just a simple move into RCP) and into a RIA application using jQuery.
Despite the best efforts of the RCP camp, the RIA version took about the same time to develop (even though it was from scratch) and it looked smoother in execution.
The clincher was that there was no install required with the RIA version since all our clients already have application servers and updates are centralized at a server, not each client.
The RCP version has long since been left behind in functionality. As far as we're concerned, Eclipse is fine as a development environment (for Java, we have no experience with the other languages) but the effort they put into splitting apart the IDE from the GUI (to make RCP possible) is not quite finished.
On the other hand, jQuery seems custom built for that sort of stuff (probably because it was custom built for that sort of stuff). Both development and running of applications are very nice.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With