---
title: Background
order: 5
layout: page
---

[[intro.background]]
= Background

The Vaadin Framework was not written overnight. After working with web user
interfaces since the beginning of the Web, a group of developers got together in
2000 to form IT Mill. The team had a desire to develop a new programming
paradigm that would support the creation of real user interfaces for real
applications using a real programming language.

The library was originally called Millstone Library. The first version was used
in a large production application that IT Mill designed and implemented for an
international pharmaceutical company. IT Mill made the application already in
the year 2001 and it is still in use. Since then, the company has produced
dozens of large business applications with the library and it has proven its
ability to solve hard problems easily.
Millstone 3 was released as open source in 2002.

Progress has often required hard decisions to avoid carrying unnecessary legacy burden far into the future.
Nevertheless, our aim has always been to keep migrations easy.

[[intro.background.toolkit-5]]
== Release 4 with Single-Page Rendering

The next generation of the library, IT Mill Toolkit 4, was released in 2006.
It introduced an entirely new AJAX-based presentation engine.
This allowed the development of AJAX applications without the need to worry about communications between the client and the server.

[[intro.background.toolkit-5]]
== Release 5 Powered by GWT

((("IT Mill Toolkit")))
((("AJAX")))
IT Mill Toolkit 5, released initially at the end of 2007, took a significant
step further into AJAX. The client-side rendering of the user interface was
completely rewritten using GWT, the Google Web Toolkit.
((("Google Web Toolkit")))

IT Mill Toolkit 5 introduced many significant improvements both in the
server-side API and in the functionality. Rewriting the Client-Side Engine with
GWT allowed the use of Java both on the client and the server-side. The
transition from JavaScript to GWT made the development and integration of custom
components and customization of existing components much easier than before, and
it also allows easy integration of existing GWT components. The adoption of GWT
on the client-side did not, by itself, cause any changes in the server-side API,
because GWT is a browser technology that is hidden well behind the API. Also
theming was completely revised in IT Mill Toolkit 5.

The Release 5 was published under the Apache License 2, an unrestrictive open
source license, to create faster expansion of the user base and to make the
formation of a developer community possible.

[[intro.background.vaadin6]]
== Birth of Vaadin Release 6

IT Mill Toolkit was renamed as _Vaadin Framework_, or Vaadin in short, in
spring 2009. Later IT Mill, the company, was also renamed as Vaadin Ltd.
Vaadin means an adult female semi-domesticated mountain reindeer in Finnish.

With Vaadin 6, the number of developers using the framework exploded. Together
with the release, the Vaadin Plugin for Eclipse was released, helping the
creation of Vaadin projects. The introduction of Vaadin Directory in early 2010
gave it a further boost, as the number of available components multiplied almost
overnight. Many of the originally experimental components have since then
matured and are now used by thousands of developers. In 2013, we are seeing
tremendous growth in the ecosystem around Vaadin. The size of the user
community, at least if measured by forum activity, has already gone past the
competing server-side frameworks and even GWT.

[[intro.background.vaadin7]]
== The Major Revision with Vaadin 7

Vaadin 7 was a major revision that changed the Vaadin API much more than Vaadin
6 did.
It became more web-oriented than Vaadin 6 was.
We are doing everything we can to help Vaadin rise high in the web universe.
Some of this work is easy and almost routine - fixing bugs and implementing features.
But going higher also requires standing firmer.
That was one of the aims of Vaadin 7 - redesigning the product so that the new architecture enables Vaadin to reach over many long-standing challenges.

Inclusion of the Google Web Toolkit in Vaadin 7 was a significant development,
as it meant that Vaadin now provides support for GWT as well. When Google opened
the GWT development in summer 2012, Vaadin (the company) joined the new GWT
steering committee. As a member of the committee, Vaadin can work towards the
success of GWT as a foundation of the Java web development community.

[[intro.background.vaadin8]]
== Vaadin Framework 8 with New Data Binding API

The biggest change in Vaadin Framework 8 is the complete modernization of the data binding API.
Binding components to data sources is one of the core features of the Vaadin Framework, as it eliminates the need to explicitly shuffle data between components and data objects, typically beans.
The old data model was designed in time before Java features such as generics.
While the data model was improved over the years, it was fundamentally outdated and complex to use.
The new data binding API works much more fluently in Java 8, especially with Java 8 features such as lambda expressions and streams.
Consequently, to be able to fully use the new features of Java 8, we have raised the requirements from Java 6 to 8.
The change should make Vaadin Framework up to date with the most current Java technologies used by developers.
d='n34' href='#n34'>34</a>
<a id='n35' href='#n35'>35</a>
<a id='n36' href='#n36'>36</a>
<a id='n37' href='#n37'>37</a>
<a id='n38' href='#n38'>38</a>
<a id='n39' href='#n39'>39</a>
<a id='n40' href='#n40'>40</a>
<a id='n41' href='#n41'>41</a>
<a id='n42' href='#n42'>42</a>
<a id='n43' href='#n43'>43</a>
<a id='n44' href='#n44'>44</a>
<a id='n45' href='#n45'>45</a>
<a id='n46' href='#n46'>46</a>
<a id='n47' href='#n47'>47</a>
<a id='n48' href='#n48'>48</a>
<a id='n49' href='#n49'>49</a>
<a id='n50' href='#n50'>50</a>
<a id='n51' href='#n51'>51</a>
<a id='n52' href='#n52'>52</a>
<a id='n53' href='#n53'>53</a>
<a id='n54' href='#n54'>54</a>
<a id='n55' href='#n55'>55</a>
<a id='n56' href='#n56'>56</a>
<a id='n57' href='#n57'>57</a>
<a id='n58' href='#n58'>58</a>
<a id='n59' href='#n59'>59</a>
<a id='n60' href='#n60'>60</a>
<a id='n61' href='#n61'>61</a>
<a id='n62' href='#n62'>62</a>
<a id='n63' href='#n63'>63</a>
<a id='n64' href='#n64'>64</a>
<a id='n65' href='#n65'>65</a>
<a id='n66' href='#n66'>66</a>
<a id='n67' href='#n67'>67</a>
<a id='n68' href='#n68'>68</a>
<a id='n69' href='#n69'>69</a>
<a id='n70' href='#n70'>70</a>
<a id='n71' href='#n71'>71</a>
<a id='n72' href='#n72'>72</a>
<a id='n73' href='#n73'>73</a>
<a id='n74' href='#n74'>74</a>
<a id='n75' href='#n75'>75</a>
<a id='n76' href='#n76'>76</a>
<a id='n77' href='#n77'>77</a>
<a id='n78' href='#n78'>78</a>
<a id='n79' href='#n79'>79</a>
<a id='n80' href='#n80'>80</a>
<a id='n81' href='#n81'>81</a>
<a id='n82' href='#n82'>82</a>
<a id='n83' href='#n83'>83</a>
<a id='n84' href='#n84'>84</a>
<a id='n85' href='#n85'>85</a>
<a id='n86' href='#n86'>86</a>
<a id='n87' href='#n87'>87</a>
<a id='n88' href='#n88'>88</a>
<a id='n89' href='#n89'>89</a>
<a id='n90' href='#n90'>90</a>
<a id='n91' href='#n91'>91</a>
<a id='n92' href='#n92'>92</a>
<a id='n93' href='#n93'>93</a>
<a id='n94' href='#n94'>94</a>
<a id='n95' href='#n95'>95</a>
<a id='n96' href='#n96'>96</a>
<a id='n97' href='#n97'>97</a>
<a id='n98' href='#n98'>98</a>
<a id='n99' href='#n99'>99</a>
<a id='n100' href='#n100'>100</a>
<a id='n101' href='#n101'>101</a>
<a id='n102' href='#n102'>102</a>
<a id='n103' href='#n103'>103</a>
<a id='n104' href='#n104'>104</a>
<a id='n105' href='#n105'>105</a>
<a id='n106' href='#n106'>106</a>
<a id='n107' href='#n107'>107</a>
<a id='n108' href='#n108'>108</a>
<a id='n109' href='#n109'>109</a>
<a id='n110' href='#n110'>110</a>
<a id='n111' href='#n111'>111</a>
<a id='n112' href='#n112'>112</a>
</pre></td>
<td class='lines'><pre><code>