OK. So how does canoo work?
Basically, you write to this proprietary component set. Its very similar to Swing. Then you deploy the whole app to a sever. To run it, they have a generic Java client that runs your application. At the booth, they were running through web start.
On to the beef!
Canoo says that the main benefit is that the client to server communcation is simple because all communication (with the exception of the presentation layer) is on the server. But what are you sacraficing?
- Component independence: Its not swing, its swing like: You have to write to a proprietary component set. So if you write a swing app and decide to use Canoo, you have to port. Likewise, if you are using Canoo and decide to move to swing you have to port. Dangerous. I would have a hard time justifying this.
- Deployment: This is huge. Its still running a Java thick client. So you still have to worry about VM versions and so on. The booth was using JWS, which is an improvement, but still! Anyway, if they were rendering to HTML or even JSP or something, you could maybe justify it since you could avoind some problems. Overall, the deployment thing is uncool.
- Proprietary: I'm very carefiul these days of using anything I cant get the source for. 3rd party components are supposed to work, but dont always. I like to be able to debud third party code (or even the core SDK!). It was pretty clear I wouldn't be able to.