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
- Eclipse plugin
- Netbeans plugin
- no IntelliJ plugin yet (althoug people got it to run)
Deployment
- 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
- 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)
- UIDL based on JSON
- client- and serverside API available
- no writing/generating of boilerplate code
- not too easy too influence
- not heavily scalable as almost every event clientside event will immediately result in a server request
Widgets
- rich widgetset available (out-of-the-box)
- TreeTable is under development. Some live demos here
- CKEditor Wrapper (see related links for demo)
- add ons can easily be integrated
- effort for creating new widgets is higher than with pure GWT
Development
- Development speed is huge
- 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.
- your UI-code can easily be tested with standard JUnit-TestCase
Non technical aspects
Community & momentum
- there's about 40 contributors - 10 of them having more than 100 commits
- User rating is 4.8/5
Sources of information
- 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
- there's a whole book provided by the developers.
Licensing
- 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
3 Comments
Boris Kraft
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.
Daniel Lipp
I can confirm that - I have quite a bit of ULC experience keeping an eye on it for over 10 years
Philipp Bärfuss
it might be sufficient but client side execution will always be snappier.