Write Your Own Database, Again: An Interview With The Author Of H2, Thomas Mueller
This is an interview I did via email with Thomas Mueller, the author of the open source H2 relational database, an earlier database Hypersonic SQL, and Pointbase Micro. I use H2 in all of my projects (including the software behind this blog). Very few people have written a relational database, much less more than one.
A brief biography (ie your education, where you live, work, whatever you want to share)
My name is Thomas Mueller, I was born and now live in Switzerland. For two years I lived in California while working for PointBase. I miss the weather there but otherwise Switzerland is a very nice place, I like it a lot. I now live together with my girlfriend in a small town in Switzerland. I have a bachelor's degree in computer science.
What do you do for a living?
I now work for Day, where I work on their products (CRX and CommuniquÃ©) and also on Apache Jackrabbit, the JCR reference implementation. So, the H2 project is my hobby (however it takes most of my free time).
Why did you start writing a relational database, HSQLDB?
Actually I didn't write HSQLDB, but the predecessor of HSQLDB: Hypersonic SQL. I wanted to learn Java back in 1996. First I wrote some cool applets (for example Hypersonic Fractals). Afterwards, I started to write Hypersonic SQL. I didn't really know a lot about database engines at that time, but it was fun learning it.
How long did it take you? Did you have any help?
Hypersonic SQL started in 1998 and it took around two years until it was somewhat useful. Hypersonic SQL was almost completely my source code, however I had a lot of help from people using it in the form of bug reports and feedback.
HSQLDB was started in 2001 using the source code of Hypersonic SQL, and there were multiple people working on this project. I was only involved in this project a little bit. The HSQLDB project was started when the company I was working for (PointBase) told me I should stop working on Hypersonic SQL. That was a bit strange, because the original plan was that I would continue to work on it. Anyway, that is the past. I will not make the same mistake again and let someone tell me I should stop working on H2.
Why did you write yet another database, H2?
I was not satisfied with the other databases.
What are the most important features in H2? What distinguishes it from other open source databases?
There is no single most important feature. For me, H2 is a combination of: fast, stable, easy to use, and features. But I'm sure there is still a lot of room for improvement for all those points. So I will continue to fix bugs, write additional tests, improve the performance, and add new functionality. I think compared to other databases, H2 is already very good, but it is far away from 'done'.
Do you think you will ever be able to work full time on H2?
I don't know, time will tell. My plan is to continue to work on it like now for a few years until H2 has enough market share. Then I hope to provide commercial support and / or consulting. My plan is to start slowly. I think it will take about 5 years until I work full time on it. In any case I will try to do that in cooperation with my employer. This is the current plan, and it may still change.