Long time DZone MVB, Nicolas Frankel, recently published the second edition of his book, Learning Vaadin. To find out what was new, I asked Nicolas a few questions about the latest edition, and about Vaadin in general.
DZone: Can you provide some introduction to your background. What languages and frameworks have you worked with?
Nicolas: Thanks for your kind invitation. Well, I've been a software developer since more than 10 years. Strangely enough, I've always been interested in the front-end as my colleagues thought only transaction stuff was worthy of their attention. But hey forgot that customers see the front-end and not transactions. Me, I toiled like mad to update the HTML DOM on the client-side on Internet Explorer 5.5: it was called DHTML at the time. Sorry, I guess I've become an old-timer.
Personally, Iv'e worked with plain Servlet API - in 2001, there were no frameworks to speak of, proprietary frameworks, Struts and Spring MVC. To be frank, none gave me the "Wow" effect... until Vaadin.
DZone: Can you give a brief history of Vaadin?
Nicolas: Vaadin also has a long history. It began a little more than 10 years ago as a way for a consulting company named IT Mill to be more productive - in essence, it was a proprietary framework. When they noticed how cool it was, they tried to sell it. Unfortunately, Struts and the cohort of Open Source frameworks were tough competitors (read free) and it was a failure. But then they changed their mind and open sourced it, a much better strategy giving today's context.
DZone: What is the core audience for your book? Are there competitor books out there?
Nicolas: The title says it all: "Learning Vaadin 7" is for Vaadin beginners that want to learn the framework in a step-by-step way up to the level where they can build applications by themselves. As for competitors, I cannot be the judge and the jury but I honestly think the way I offer is unique. The Book of Vaadin is a great and exhaustive documentation, but it's organized by topic, not by complexity level.
Beside, I also offer a whole section dedicated to Enterprise Integration (Maven, OSGi, GateIn and Jelastic for the cloud), something that's quite unique... and not only for Vaadin.
DZone: Can you give some examples of companies that are using Vaadin? Has the framework taken off, or is it still in it's early days?
Nicolas: There's a whole page dedicated to that! If your question is about its usage, well, just have a look at the page. If it is about maturity, it's been created a decade ago and it's as spry as then thanks to smart architecture steering from Vaadin Ltd.
DZone: What is different in the second edition of the book? Have you removed anything from the first edition?
Nicolas: Of course, there are some noticeable differences. First, I cover changes from v6 to v7, including the new Push feature (it really rocks), the new connector architecture and JavaEE integration. I also cover some brilliant add-ons, for example one to have a XML file for your GUI definition, or CDI integration.
I removed the Spring integration section because no existing add-on is up to the task, but also because Spring support is being included in the roadmap. But shhhhhh, you heard nothing from me.
DZone: For someone who is looking to choose a web framework, why should they consider Vaadin? And are there any cases where Vaadin is overkill or unsuitable?
Nicolas: It's very simple: as I said above, web development requires you and your team to be jack-of-all-trades. So either it's the case - and choose the framework you like the most, or it's not. Then you choose Vaadin because you code only in Java... and forget about the Servlet API, JPS syntax(es) and the rest of front-end technologies.
Note that with Vaadin 7, offline mode is no more a blocker.
DZone; What is the most difficult thing about using Vaadin? What is the most rewarding?
Frankly, Vaadin is very easy to use. During my latest workshop, someone even complained it was too simple - it's not for an elite. IMHO, the broadcast push (i.e. pushing to a bunch of clients) could be refined: the current design is a little too complex.
The thing I like the most is to put Vaadin in the hands of junior or Swing developers, see them develop a GUI with no effort and be impressed with the result. That's really empowering developers - now, they can focus on the transaction stuff!