So I’ve been working at IT Mill now since April of 2008 as a software developer. I thought I could give a little sales pitch of the company and the product, describing what the company does, and what I do there. IT Mill is altogether a software house, and their main product is Vaadin, which I already mentioned.
Vaadin is an open source Java framework for developing Rich Internet Applications (RIA), in a manner much like Swing. RIA is just a fancy name for saying that I have an application that runs in the browser. Everything needs to have a Three-Letter Acronym (TLA) nowadays. The idea is that you can develop your whole application in Java, without having to care about low level languages like HTML, CSS and foremost Javascript. Vaadin uses Google Web Toolkit (GWT) to accomplish compatibility with browsers. GWT has a compiler that can translate Java to HTML and Javascript. When you develop with GWT you usually do a huge chunk of the application’s user interface and logic that is translated into Javascirpt. That means that the whole application can be sent over to the browser. If you need more data from the server the Javascript can call on the server directly with the request. Vaadin has taken a little different approach to the whole. First of, it has a clear split between what is on the server and what goes to the browser. Vaadin has a bunch of minimal precompiled components in it, such as layouts, text fields, selects and tables. The programmer then mixes and matches these to a user interface and only the view is sent to the browser. The browser doesn’t get any business logic at all – the components just sends the user input back to the server as key-value pairs. For example, if you have a text field and the user writes ”abc” into it, the text field sends a variable named ”text” with the value ”abc” to the server without valuating it. It is then the servers responsibility to decide what to do with that variable. This way you can have a normal Java application on the server side with no dependencies to the user interface other than than receiving the input. This approach has several benefits
- The API that the Javascript can use to call the server is minimal. The components only have one function which only can sends variables – no commands – to the server. This makes the attack surface for hackers as small as possible, and turns the application from a white box to a black box.
- As the components are precompiled, and the business logic stays as Java on the server, you don’t have to compile you application at any point, except when you change the basic behavior of the components. The component set that comes along Vaadin is wide enough, and you can really do a lot without starting to develop your own components. With GWT you have to compile every time you change something, or add an extra button, or whatever.
- Initial data which is sent to the browser is just a fraction compared with sending the whole application. This has the trade-off that every action the user takes will fire of an round-trip to the server, so the request amount is much higher.
As Vaadin is open source and completely free, you might wonder where is the catch – how the company finance this project. The business plan of IT Mill is split into to major parts. First off, we sell extra services around Vaadin, like holding training days with topics revolving around developing with Vaadin, selling applications like user interface testing software and offering support packages to development teams. The other part of the business plan is that around two thirds of the whole company works with developing in-house applications that uses Vaadin on request of customers. This gives the funds that is needed to develop Vaadin to an ever greater framework. The company is still growing fast, having had a 50% annual growth measured in the total amount of employees, and that is about the growth expectations for the coming years too.
I, myself, work with doing applications to customers. I work in a team of four developing the next version of an application that is now a native Windows application. By turning it into an Java/Vaadin application they get the benefits of reducing upkeep costs – updates doesn’t have to be rolled out to every computer that uses the application, only to the server. At the same time it is platform independent, so it can be used on Linux and Mac too. We’ve been working on this project now for a little over a year, and it is shaping up nicely. We hope to roll out the first version out pretty soon. Gonna be exciting. Other than the project I’ve been going to companies holding training seminars to them. The topics have been about developing with Vaadin and doing UI regression testing.
This whole post turned out to sound like I’m trying to sell the product to everyone. No worries, as I said it is free. :) What can I say, I’m proud of the company, the whole team is great, and I’m confident that Vaadin will be successful.
If you want to check out more, go to vaadin.com or jump straight into the demos. If you want to try it out, I recommend the tutorial.