# History and Roadmap

Change Log
Roadmap
History of this Database Engine
Why Java
Supporters

## Change Log

The up-to-date change log is available at http://www.h2database.com/html/changelog.html

## Roadmap

The current roadmap is available at http://www.h2database.com/html/roadmap.html

## History of this Database Engine

The development of H2 was started in May 2004, but it was first published on December 14th 2005. The author of H2, Thomas Mueller, is also the original developer of Hypersonic SQL. In 2001, he joined PointBase Inc. where he created PointBase Micro. At that point, he had to discontinue Hypersonic SQL, but then the HSQLDB Group was formed to continued to work on the Hypersonic SQL codebase. The name H2 stands for Hypersonic 2; however H2 does not share any code with Hypersonic SQL or HSQLDB. H2 is built from scratch.

## Why Java

A few reasons using a Java database are:

- Very simple to integrate in Java applications
- Support for many different platforms
- More secure than native applications (no buffer overflows)
- User defined functions (or triggers) run very fast
- Unicode support

Some people think that Java is still too slow for low level operations, but this is not the case (not any more). In general, the code can be written a lot faster than using C or C++. Like that, it is possible to concentrate on improving the algorithms (that make the application faster) rather than porting the code and dealing with low level stuff (such as memory management or dealing with threads). Garbage collection is now probably faster than manual memory management.

A lot of features are already built in (for example Unicode, network libraries). It is very easy to write secure code because buffer overflows can not occur. Some features such as the reflection mechanism can be used for randomized testing.

Java is also future proof: A lot of companies support Java, and it is now open source.

This software does not rely on many Java libraries or other software, to increase the portability and ease of use, and for performance reasons. For example, the encryption algorithms and many library functions are implemented in the database instead of using the existing libraries. Libraries that are not available in open source Java implementations (such as Swing) are not used or only used for specific features.

## Supporters

Many thanks for those who helped by finding and reporting bugs, gave valuable feedback, spread the word and have translated this project. Also many thanks to the donors who contributed via PayPal:

- SkyCash, Poland
- Donald Bleyl, USA
- lumber-mill.co.jp, Japan
- Frank Berger, Germany
- Ashwin Jayaprakash, USA
- Florent Ramiere, France
- Jun Iyama, Japan
- Antonio Casqueiro, Portugal
- Oliver Computing LLC, USA
- Harpal Grover Consulting Inc., USA
- Elisabetta Berlini, Italy
- William Gilbert, USA
- Antonio Dieguez, Chile
- Ontology Works, USA
- Pete Haidinyak, USA
- William Osmond, USA
- Joachim Ansorg, Germany
- Oliver Soerensen, Germany