Interview

Discussing Vaadin 7 with Joonas Lehtinen

Joonas Lehtinen

Joonas Lehtinen

Originally in March's JAX Magazine, we chatted to the creator and CEO of Vaadin about the team's release that had been 18 months in the making, as well as their commitment to Google Web Toolkit

JAX Magazine: For those who are unaware, just what exactly is Vaadin?

Joonas Lehtinen: As a starting point, Vaadin is a framework for building rich Web applications. The basic idea is that you can write fully modern rich Web applications just by writing Java on the server side. So when you're running Java on the server side, it basically means you have all the tooling, all the libraries, all the frameworks – everything you already have been using and you know already. All of that is available for you. Vaadin then creates the UIs automatically on the browser side. 

So it’s trying to find a middle-ground between the two?

If you think about the original way of building rich web applications, you have been building the basic user interface in HTML and JavaScript on the client-side, then you have decided some kind of web APIs that you are publishing, the REST APIs. Then next you are building a server side service layer where you are doing all the backend producing for the user interface. In most cases, you have a real backend layer that does additional operations. In Vaadin, you build the server side layer and that's it. The rest comes automatically. 

So how many people use Vaadin at the moment?

Statistically, we are looking most carefully at how many unique visitors we are seeing on the community side, at the moment 105,000 on a monthly basis.

What reasons did you have originally for creating Vaadin, and do those core values still apply today or has the role changed over the years?

The original reason was that I was leading a team in 1997 that were building a hospital system. That was quite a complex web application that we built in Perl and the tools of the day. It became kind of huge pile of spaghetti in the end, because we didn't have any proper tools or libraries for it, so we actually started of thinking of Vaadin already in 2000.

First, we wanted to build a tool for ourselves then we kind of fell in love with the tool and decided to open source it and release that to the public in a distribution in 2002. I guess the reasons for building Vaadin are still there and the values that we were sitting in 2000 are still there. We still try to reduce complexity. We still try to make building nice looking UIs for web as simply as possible. This is in the business context, not a tool for writing a website. It's a tool for writing business applications. But as you can hear the history is quite long – it's already a 12 year-old framework and that's part of the reason we wanted to build Vaadin 7. 

Can you explain someone of the core concepts behind Vaadin?

It's a UI library, so everything you see is concentrated on UI Components. The basic idea is that you build the whole UI just by composing it from ready-made components. There are few UI frameworks around like Swing, that just put components within other components then wire them up and they start behaving as a user interface. We have been really focused keeping our thinking on the UI layer and for the Web. Extending from there, we have data bindings from the UI layer to various kinds of data sources. We have different tools for customising the user experience – how it looks, how it behaves and so on, but still the core is the UI components.

I would say that makes Vaadin quite different from most of the competition where most of the UI components actually live on the server side memory. You can just compose in pure Java or in fact in any JVM language on the server side and expect all of the user interactions to be handled over for you in the server side. You don't have to think about how these user interactions actually are sent over the wire to the web browser, how they are rendered and how browsers behave differently. Most of the time, you can think at quite a bit higher level, in trees and tables and tabsheets. Not like HTML Elements and CSS styles.

I think you touched upon on it there – what separates you from other JVM frameworks?

It's mostly used by quite large projects. We try to find a nice balance between developer abstracts and how much you help control the presentation, but still keeping the building of the UI and maintaining of the UI relatively easy and compact.

There also seems to be an ability to mix and match too – it seems quite customisable. Is that a goal you had in mind also?

Definitely. One of the most powerful concepts we introduced a couple of years ago was a component directory. So now we have a directory where the community can send their own components so that people can reuse them. The nice thing is that we really nailed the packaging of the components, the distribution of them and how you start to use them. The community has now submitted 300 components in there, such as adding a Maven definition into your pom file or download the component and Vaadin takes over and integrates the component automatically into your application.

 

Pages

Chris Mayer

What do you think?

JAX Magazine - 2014 - 06 Exclucively for iPad users JAX Magazine on Android

Comments

Latest opinions