Investigating Firebird with Helen Borrie, Project LeadBy Blane Warrene
Firebird was born when the InterBase source code was released in July 2000 by the then Inprise Corp. (now known as Borland Software Corporation). There is a whole second story on Inprise/Borland and what transpired during those years â€“ and it’s too long to be told here. However, some interesting history can be found on the Firebird site at Sourceforge.
I recently had the chance to speak with Helen Borrie, Project Lead for Firebird, and she described the goals, competitive edge and more on this emerging open source database platform.
Helen is now working with Apress on a book that will provide a comprehensive look at Firebird. No publication date has been announced as yet, however, it will be promoted at Linuxworld in San Francisco this August.
SP: Can you provide an overview of Firebird and its goals?
Firebird has always been open source; it’s a fork of a mature commercial database called InterBase. InterBase is an enterprise-level database — Firebird is the same, but better. You’ll find Firebird behind a number of Websites, storing records for telcos, and managing data for point-of-sale systems — just about anywhere you might find Oracle or SQL Server.
The project goal is to replace Oracle and SQL Server in commercial applications. Most of our users are building new systems that compete with systems developed on commercial databases. With Firebird, they get the same features, yet they can sell their systems for much less than the competition. The software that runs ordinary businesses today is too expensive and too hard to use. Firebird is helping to change that.
SP: Which Linux distributions have been tested and/or certified for Firebird?
The Foundation, IBPhoenix, and Broadview Software sponsor testing for Red Hat/Fedora, Mandrake, and SuSe. Members of the Debian project make Firebird available there. Any Linux with a reasonably recent gcc is a good candidate for Firebird.
SP: How does Firebird work on OS X?
We have a version that runs on OS X, and have had almost since the day Apple released the system. What we lack are Mac-style tools and Mac proponents with time to evangelize. The Mac port has no technical problems; it just doesn’t get much focus because most of our developers and Foundation members use Windows, Linux, various BSD distributions and a smattering of commercial Unix systems.
SP: What does Firebird offer Web developers?
Firebird has a lot to offer serious Web application developers. If you’re building something you plan to sell, our license is a significant advantage. If your application mixes updates, input, and retrieval, we have a solid transaction-based engine that performs under load. Firebird has a comprehensive range of driver support — Java, JBoss, Tomcat, PHP, Python, ODBC, .NET, Borland-compatible components, ADODB… you name it, we talk to it. Add Firebird’s small footprint and minimal administration requirements, and you’ve got a good solution for serious application builders.
Firebird puts muscle behind applications and eliminates many of the problems associated with their development. Stored procedures and triggers move data handling operations out of the application and into the database. Running code in the database not only reduces the size and complexity of the application, it’s also much faster than passing all the data to the application to process.
Firebird uses record versioning to isolate one user’s work from another, so you never get delays because an update is blocking your access to data. Readers don’t block writers, so your interactive Web application doesn’t suffer from the throughput problems inherent in lock-based concurrency control.
Firebird has a small footprint. The server is less than 1.5 MB, the client about 350 Kb, and it runs on nearly any machine that can boot the operating system.
It has hot backup, which you can run from a daemon or equivalent, and a shadowing capability that maintains an exact, on-line copy of your data.
SP: Many developers have been looking for XML support and, while most database systems can export or dump to XML, they are looking for native XML storage. Is it left to the developer to use a scripting or programming language, or is this perhaps a feature of Firebird? What are your XML features?
There’s nothing specific. We have features like stored procedures and user-defined functions that allow developers to generate XML output or parse XML as input. And, of course, you can store fully expanded XML in blobs, if that’s what you need. You can write "blob filter" modules that the query engine can access to parse XML into other formats.
SP: Can you describe the kinds of support options that are available?
The Firebird Foundation is a non-profit organization that centralizes a number of the administrative aspects concerning the Firebird project and the software community. It raises funds and sponsors people for specific jobs and organizing releases. It has no commercial activities.
Free support is available on the support lists. Most developers and many experienced users follow the lists, so the answers there are well above the average value of free advice. In addition to the general Firebird support list, there are separate lists for specific areas: Java, .NET, Delphi, PHP, ODBC, Visual Basic, and so on.
Commercial support is available from a number of companies. The major English language company is IBPhoenix, whose principals include the former General Manager for InterBase at Borland and one of the original developers of InterBase. Other groups provide similar services in a number of countries, for example, Brazil, Germany, Russia, France, Spain, Italy, and Japan.
SP: Do you have an idea of market penetration?
We’re getting about 2000 downloads a week from Source Forge, but raw download statistics aren’t a reliable indicator of use. Our support lists are a better indicator, as they represent real usage. The main list has doubled since last year and now generates about sixty messages a day, mostly on weekdays. The weekend traffic has fallen off, suggesting that more people are using Firebird in their work rather than experimenting with it in their spare time.
Firebird has been particularly successful outside the US. The Portuguese language support lists in Brazil have over 3000. One of the most active Firebird news sites is in Russia, home of some of our most prolific developers. We’ve got an active user group in Japan that’s planning a conference for September.
SP: What differentiates Firebird from its competitors — both commercial and open source?
Differentiation comes in a lot of forms, doesn’t it? There’s price and total cost of ownership that are hard to beat. There’s the fact that it runs on a lot of operating systems and minimal hardware. Then, there are the normal differentiators, features and performance.
Firebird comes with command-line tools that work across all platforms. For those who need a GUI, there is a huge range of excellent graphical tools, commercial and free, for every sort of job.
The open nature of development has a strong appeal to customers who have been burned by buggy releases, big support bills, and misleading release information from commercial RDBMS vendors. Firebird can do everything that expensive commercial product does with half the struggle to get it working and keep it working: that’s differentiation of a rather compelling kind.
Differentiating Firebird from an open source RDBMS in the same deployment space — PostgreSQL, for example — is a bit more difficult. Each has its following, based on history, features, package links, application tools, and so on. The wise new user will try them both, with requirements-specific data. The trial is free and unrestricted. You can install and evaluate Firebird and PostgreSQL with all features, for as long as you need to: no timeouts, no load restrictions, no non-disclosure agreements, and no hassles.
SP: Can you provide some roadmap info on the future of Firebird?
The official road map is under construction, but we have a general working direction.
First, let me give you a bit of historical perspective. When Borland released the InterBase code, it was read-only and the build scripts did not work. The goals for Firebird 1.0 were to get the code built, working, and fix a few hundred of the most egregious known bugs.
Firebird 1.5 had a slightly more aggressive goal: convert the code from C to C++. In the process, a number of features crept in, but features were not the goal of 1.5 either. It’s only with Version 2 that we’ve achieved mastery of the code and are ready to take on major features. For an open source project, Firebird is very conservative about changes and releases. We’re building for developers, and know that people are betting their companies and their careers on the software we produce. Although most of our developers are volunteers, Firebird is not a hobby.
Today, three distinct projects are contributing to Version 2. One is the normal head branch, which has new SQL features, performance enhancements, and a variety of changes that allow Firebird to support much larger databases than could have been imagined even four years ago when the project started. Another is Yaffil, a former Firebird fork that we’re reintegrating with the main code base. The third is Vulcan, a major restructuring of the whole code base, restoring and modernizing the original InterBase architecture that has been obscured by 20 years of tinkering.
SP: How does your license differ from MySQL in comparison to the licensing issues that have been brought up again with the maintenance release of MySQL 4.0.20?
Our license is essentially the Mozilla Public License v.1.1, changed only to reflect that the code is not Netscape and that the original developers were Inprise/Borland (for the code they released) and the individuals who develop new code. Those are the only licenses we have and they specifically allow commercial products to include and ship Firebird. Nobody pays for Firebird and everyone use it under the same license.
SP: Who are the key players on the Firebird team?
The core developers are very important players and we treasure them. The team changes over time, new faces appear, some recede into the background for a while. In the current line-up, the core team defers to Dmitry Yemanov, who arbitrates between different approaches to development. Arno Brinkman and Nickolay Samofatov are gifted designers and coders. Alex Peshkov has special responsibilities for security issues. Claudio Valderrama scrutinizes incoming code. Pavel Cisar is developing the new test beds. Many others assist with code development, cleanup and test development.
A second is a major architectural restructuring by Jim Starkey for an IBPhoenix customer. Jim designed and wrote the original InterBase code on which Firebird is based. The customer wants Jim’s work — currently tagged "Project Vulcan" — to be open source, for contribution to the broader Firebird code base.
The third is an enhanced implementation of the Firebird 1.0 Windows server known as "Yaffil". Yaffil’s proprietors handed the source code over to the Firebird project last November. Its main developer, Oleg Loa, joined Firebird and supervises the integration of Yaffil enhancements with the Firebird 2 code.
The driver development projects are also key branches of the Firebird product. They include the Jaybird JDBC Type 2 and Type 4 Java drivers (team lead: Roman Rokytskyy), Firebird.NET provider and ADODB drivers (Carlos Guzman Alvarez) and the Firebird ODBC/JDBC driver (original author, Jim Starkey, team lead Vladimir Tsvigun).
Firebird’s an amazing project with an exciting future. More information on Firebird can be found at the Firebird site. We thank Helen for participating in the interview.