Vaadin basically provides the building of RIAs through server side java based on GWT using a sophisticated Architecture. For a jumpstart on it check out these slides and this video

Technical aspects

IDE

  • (plus) Eclipse plugin
  • (plus) Netbeans plugin
  • (minus) no IntelliJ plugin yet (althoug people got it to run)

Deployment

  • (plus) The same Vaadin application can be deployed to a Servlet Container, JEE Application Server, Portlet Container or Google App Engine

GWT-Compilation

One of the drawbacks we experienced when using GWT are the rather long GWT-compile times

  • (plus) GWT-compilation is only required when installing a new Add On or when creating a new GWT-based widget. This will only happen occasionally.

Client/Server communication

In Vaadin the communication is handled based on a UIDL (User Interface Definition Language)

  • (plus) UIDL based on JSON
  • (plus) client- and serverside API available
  • (plus) no writing/generating of boilerplate code
  • (minus) not too easy too influence
  • (minus) not heavily scalable as almost every event clientside event will immediately result in a server request

Widgets

Development

  • (plus) Development speed is huge
  • (plus) Easy to use Reflection i.e. for creating dialogs

Testing

When writing a Vaadin application you'll only fit together the server side widget-types (Window, Form, Layout, Button, TextField, etc.). The have no compile-time dependencies to any GWT-related class.

  • (plus) your UI-code can easily be tested with standard JUnit-TestCase

Non technical aspects

Community & momentum

  • (plus) there's about 40 contributors - 10 of them having more than 100 commits
  • (plus) User rating is 4.8/5

Sources of information

  • (plus) on the Vaadin homepage there's links to a wiki, forum (by 4th of august 2010: 12434 posts of 958 participants in 8 categories), blog, chat & Twitter
  • (plus) there's a whole book provided by the developers.

Licensing

  • (plus) Apache Software License 2.

Additional Information

Performance / Memory Consumption

From what we know so far the biggest disadvantage of Vaadin could be the performance or memory consumption. Here's a few links about this topic

Simulation

For simulating slow connections you can use sloppy. First tests (using 236k (Edge) bandwith) gave the impression, that - at least for the demo app "VaadinProject" - startup time was considerably slower.
Once the app was running performance was surprisingly good. These tests should be repeated on a more realistic sample app...

Integration with a RESTful API

Theming

Here's two examples of available themes

References

Demos

3 Comments

  1. Canoo ULC is using a similar architecture (widgets on server). I spoke with Etienne today, who has extensive experience with their RIA tool, and he stated that the architecture scales extremely well and that it is no issue at all to have the client-server communication on user-events.

    1. I can confirm that - I have quite a bit of ULC experience keeping an eye on it for over 10 years (wink)

    2. it might be sufficient but client side execution will always be snappier.