Why so few developers are using Firebird SQL?

Why so few developers are using Firebird SQL? 1 Recently I started a new project in which I need to choose another database besides MySQL. Since then, I had been using MySQL for basically everything, but given the MySQL licensing scheme and a few restrictions of the project itself, this time I had to use something else. So I choose Firebird SQL.

But there’s something about Firebird that always bothered me: why so few developers actually know and use Firebird? Basically (at least here in Brazil) I only see it being used among Delphi developers. Why isn’t it as popular as MySQL or PostgreSQL? Given its features (listed below), can we say that the project lives an unfair situation?

Firebird have several features which makes it a great choice:

  • Really free:: contraty to MySQL, you can use Firebird in your commercial applications without any fee or legal problem. (BTW: I know that PostgreSQL have this advantage too)
  • All the basic features of large RDBMS:: stored procedures, triggers, A.C.I.D. compliance, online backup, generators, referential integrity, etc…
  • Small footprint: had you seen its embeddable version? Just amazing: in less then 1 Mb you have all the features of the default one without cutting anything!
  • Low hardware requirements: basically, if something computes, it can run Firebird.
  • Available in all the major OS platforms: Linux, Windows, Mac OS, Solaris and others
  • Reasonable performance: Firebird performance remains between MySQL and PostgreSQL.
  • Really active project: despite its low popularity, it’s a quite active project. In april/2009, for example, was announced the 2.5 beta version of the project.
  • Databases with unlimited size: the database size limit is determined by the filesystem in which the database is stored. But, if your database exceed its limit its always possible to split it in several files.
    (the largest database known have 960 Gb link)
  • 100% SQL 92 compability
  • Connectivity: basically you can access a Firebird SQL through any programming language

My experience with Flamerobin is being really pleasant, but it’s really sad to see that since I wrote my Microsoft Access to Firebird database converter (MDB2FDB http://www.firebase.com.br/fb/downloads.php?categ=8) in 2006 that the Firebird popularity hadn’t changed at all!

Since I really like this software, and I think that its current popularity situation is unfair, maybe it could be interesting to list some actions that may help this project. So, here is my list:

Of course, I couldn’t finish this post without guessing (just guesses) the reasons why Firebird SQL is so unpopular if compared to MySQL or PostgreSQL:

  • There’s no big player like Sun/Oracle or IBM supporting it right now.
  • The official website is terrible (http://www.firebirdsql.org). Seems futile, but the first impression of the project is horrible. Makes you think it’s stalled.
    Firebird’s biggest sponsor today is IBPhoenix , which main business IS Firebird. But even it’s website falls in the same problem.
  • The fact of being Delphi related since it’s begning. With Delphi’s decadence, its popularity just floundered with it.
  • Poor documentation

Maybe things may change to Firebird SQL after Oracle bought Sun (many MySQL users are getting scared (I see no reason for this by the way)) and may play with Firebird, but it’s something improbable to happen. :)

Of course, these are just my opinions about it. I really whould like to know yours. Why do you think so few developers are using Firebird today?

113 comments on “Why so few developers are using Firebird SQL?

  1. Carlos H. Cantu

    I use SuperServer in several customers. No problem at all. It just not uses more than one processor. If you want SMP, use Classic, and yes, it is one process for connection. If you dont like to have so many process running, use SuperClassic (available in Firebird 2.5, currently in Beta).

    Responda

  2. markit

    It’s not GPL compatible, since uses, as far as I recall, IPL license. Don’t know if postgresql uses a modified-GPL-compatible BSG license, hope so

    Responda

  3. Ren in FL

    Using FirebirdSQL, can you write Stored Procs in a variety of languages including C, Perl and Java?

    I can with PostgreSQL.

    Responda

    mariuz Reply:

    Now is possible to write stored procs in C++ , java and i think other languages can be integrated like javascript (v8) , perl or python
    Here is the article in Portuguese with the new feature : external engines

    http://www.firebirdnews.org/?p=3889
    also the main project page

    http://www.firebirdsql.org/index.php?op=devel&sub=plugins&id=external_java

    Responda

  4. Pingback: שימוש נרחב יותר בFirebird « לראות שונה

  5. Fabrizio

    I’ve been using successfully Firebird SQL since long ago in several projects. I suits perfect for Small Business Software but I think the project overall needs a better documentation sometimes it’s very difficult figure out how to do the things. Also a big regret are the internal functions, it has a very limited set of them and you can’t define new ones, as functions, because function declaration is reserved for Native functions ( SO or DLL ). You have to declare them as Store procedures.

    Maybe I’m wrong and there are a lot of internal functions but as Documentation SUCKS!!! I have no way to know it.

    Responda

  6. guruyaya

    You missed the main reason firebird can’t catch up. Where the hell can I find a shared hosting with firebird installed? As a web developer, I first go to a shared hosting, and learn some coding. Then, when I want to run something on a dedicated server, I’ll just go with what I know, that is mysql. Add up to this, the fact that you don’t have firebird support on most open source PHP project (PHPBB, MediaWIKI), and most closed source PHP projects (vBulletin), django (not built in, anyway) and for all I know on rails, that leave you with, developers don’t get to use it that much. The way I see it, that’s the main reason that firebird does not catchup.

    Responda

    Carlos H. Cantu Reply:

    In Brazil, we have several host providers offering Firebird. Just google and you will find a lot of them.

    Responda

    Wladimir Reply:

    Does anyone still use a shared hosting (in the classic sense) for any serious project these days? With Virtual Private Servers and (for larger projects) cloud computing solutions such as Amazon EC3 being so affordable, and giving you full control as to what to use and install, why would you?

    Responda

  7. David Marquez

    Nobody mention that firebird has support for roles. As far as i know Mysql has not implemented it and for me this is a plus on any rdbms.

    Being able to create a security policy based on roles is a fast solution to control access to your data in a simple and practical way on a single spot. Postgres support it too…
    (sorry for my gramma, my main language is spanish, not english)

    Responda

  8. therational

    The question may need a more precise field target : A lot of database developers are Firebird users : they do ERP/SCM/MRP/(a lot of other)… software. May be the question may be something like : “Why so few WEB developers are using Firebird SQL?”.

    Responda

  9. Pingback: MySQL, PostgreSQL or FirebirdSQL, WHY?? - dBforums

  10. loquin

    “I do not follow PG, but I remember that it was not able to do a full SWEEP in the database without exclusive access to it (what can be a problem for systems running 24×7).”

    This has not been the case for many, MANY years.

    I normally use just the built-in pl/pgSQL language for writing functions, but, in an enterprise level database, you may have MANY different users who have different comfort levels with the different languages. Why not let the user select the language that THEY feel most comfortable with, or are most productive with?

    Responda

  11. Dario Fumagalli

    Preamble: I and my company use FB since years with little issues and look forward for its continued success.

    Said that, let me blunt about Firebird issues that prevent it from getting famous:

    – Bad PR, awful 1990 newbie hobbyst style website with “CANCELLED” camping on it. No, no one cares that they are busy with the software, they are not busier than other open source project programmers who understood how the first impression is 70% of a deal.
    If I were a CEO skimming on the WEB site, I’d not even give it a second look, as it does not give me the confidence to be a quality polished product, if the site is so bad.

    – Missing processor features (that will come in 2.5).

    – CRAPPY and ugly support off the famous popularity enablers, aka PHP and co. I was screaming murder because of the ancient IB interface causing all sort of obscure socket access errors on a WAFP (WAMP minus MySQL + Firebird). And no, going ODBC is not accepted any more.

    – This and the non standard licensing make host companies afraid to invest in it.

    – MySQL is fast for mostly read only queries web sites (the majority), with established, free, web tools you ALWAYS find pre-installed on any decent site.

    – Postgress (I even used Informix, a distant cousin) I love it a lot, I compiled + installed it on the weirdest, eldest, crappiest dialects of any possible OS and it works, period.

    So Firebird starts somewhat behind already and it does very little to appeal to potential new users. When they see a decrepit rusty 1980 Honda they don’t even open the engine cover where the Firebird developers put a Ferrari engine. So it gets wasted.

    Responda

  12. Simeon Bodurov

    We have used Firebird in internal company project since year 2002. The main company operation software uses it.
    Currently we have more than 100 databases installed in more than 90 offices in different cities in our country. All databases replicate with central replication database in real time. Total new records generated in central database is more than 120,000 per day.
    Central replication database size is between 4GB and 5GB. It contains 2 months of operational data. We have archive database with 4 year of data in it. It’s size is 70GB. We use Firebird database via Delphi, PHP and Java programing languages.
    Firebird does great job for us.

    p.p.
    To Dario Fumagalli
    Main Firebird site is http://www.ibphoenix.com
    It contains all versions of Firebird installers and lot of documentation. It’s industrial grade site.

    Responda

  13. Artur Kozubski

    I have used Firebird in my previous work at Internet store Gigant.pl (www.gigant.pl) since 2004. It’s a great RDBMS, but rather unpopular in the Poland. I know only one polish company which uses Firebird in their products except Gigant.pl. It is LeftHand – uses Firebird for desktop financial applications. Now I use PostgreSQL in my current work (internet booking systems for hotels and tour operators). This RDBMS is very good also. I used MySQL sometimes but I prefer two previous. MySQL procedural SQL syntax is horrible. PostgreSQL is more complex than Firebird, but I use only a small piece of its functionality for everyday work, so I think that Firebird could be used instead of it. Nobody knows Firebird in my new work, even our administrator. Everybody knows PostgreSQL and MySQL, but when somebody talk something about Firebird – WTF, what is this shit, etc… :-) Then I have to explain what is this in comparision to PostgreSQL and MySQL.
    Ren in FL #33 asked about external procedures in C or Java. Yes, Firebird allows using external compiled functions as UDFs (User Defined Functions) in any language via binary libraries (dll, so). I wrote quite many UDFs in C/C++ (in MinGW, Visual C++ 6.0 and C++ Builder 6.0).
    Little examples are here:
    http://www.uml.com.pl
    http://www.hakin9.org

    Responda

    mariuz Reply:

    you have very nice udf articles , maybe is worth an refresh with the new tools visual studio and maybe translated
    Anyway i liked the cpuid asm hack :)

    In my opinion is worth an mention in firebirdnews.org :)

    Responda

    Artur Kozubski Reply:

    Thanks. :-) Maybe when I find some free time I will update and translate them.

    Responda

  14. Peter Goddard

    We have been using Interbase – now Firebird since the early 1990’s starting with the Release of Delphi 1. We now have one major application running with more than 250 database over many clients. Yes, documentation is poor, product is really good and very suitable for small / medium clients where there is no IT resource. Our application has backup / restore and upgrade database (for running in SQL / stored procedures) all on the File drop down menu. Databases vary from 2 Gb down to 40 Mb.

    Use Database Workbench (www.upscene.com) as a very comprehensive DB tool supporting Firebird, Oracle, SQL Server ++++ depending on the add on modules you purchase. We have thousands of stored procedures some longer than 2000 lines of code all debugged with this tool.

    We also built a totally automatic upgrade tool that will take a Firebird database of any version (our version ) to our latest version using two hand maintained DDL scripts, the other scripts are generated automatically from the master database. This tool allows us to load up a number of databases and walk away. Small 30 mb databases take 5+ mins, 2 Gb takes around 20+ mins depending on the machine.

    We would not even comtemplate using anything else

    Responda

  15. Jacques Cilliers

    hi there, i want to know, how do one create USERS via SQL …

    I know in oracle, you can write SQL to create, drop and modify users.

    In FB, there are only front end clients … but can I open a SQL session, and create users by using basic SQL commands …

    please help.

    Responda

  16. Hans

    I think the biggest problem that Firebird has is the documentation.

    When I need to look up something (e.g. information on a function or SQL syntax), I first have to go through the old IB documents. If it’s not in there I need to go through the release notes for 1.5, if it’s not there I need to go through the release notes for 2.0, if it’s not in there I need to go through the release notes for 2.1….

    Not very efficient :(

    Responda

    kdv Reply:

    You may read Language Reference Update that covers all changes from IB 6.0 to Firebird 2.1.
    Just visit official http://www.firebirdsql.org site, Documentation section.

    Responda

  17. Grodb

    Poor documentation is a real killer for Firebird. We were looking at alternative dbs to MySQL when Firebird was recommended by a developer who had used it before. But when we looked at it, the only ‘documentation’ were old Interbase manuals with the caveat “hey, it’s not *that* different.” Programmers and managers alike grew cold, and who could blame them?

    Responda

  18. Fernando Medeiros

    What are the tools that popularized the mysql / postgres? PHP and with it, thousands of other free tools. And the firebird? Delphi?
    Mysql came to a world totally different from firebird, web.
    And the vast majority who develops pra web, do not use firebird.
    Sorry, but in my opinion, nothing to do compare the popularity of the mysql / postgres with the firebird.

    Responda

    admin Reply:

    Totally agree with you. Great point!

    Responda

    kdv Reply:

    Not a point. There are lot of tools for InterBase and Firebird. And some of these tools makes at least MS SQL users envy.

    And, Firebird have biggest set of different drivers for any development tool. I can bet that you will not find that drivers number for any other RDBMS. I counted that about 7-8 years ago, and there were about 35-40 ODBC, OLE DB, Delphi, VS and other drivers, including ever exotic development systems.

    Responda

  19. Wladimir

    sqlite is only “better” in the use case where you have a single application and don’t need much scalability.

    Responda

  20. Volker Trimkowski

    One year of discussion – nice to read. The web site remained unchanged, the web community still uses LAMP, the state of the documentation ist still poor, FB 2.5 was announced for 2009 and we are still waiting for it and for it’s SMP support.

    What are the ‘lessons learned’ by this discussion ? I can not see any.

    By the way : we use FB in a lot of projects for airlines and other customers. So we ARE interested in a strong, good and well known FB.

    My suggestion : MySQL is successful due to it’s marriage with PHP in LAMP, FB had a likewise relationship to Delphi. But this is weaking due to the declining importance of Delphi. So why not install another relationship, let’s say to .Net / VS Studio / C# Express ? Place FB on the market as the open source alternative to MSSQL for the whole MS community! Whatever the community may do : DO marketing or the market will still ignore FB – it’s a shame !

    Volker (Bremerhaven, Germany)

    Responda

  21. Sonny Eugenio

    Majority of Firebird users are also Delphi/Interbase programmers. The lack of reference materials on its use is one of the biggest setback for non-interbase/Delphi programmers. The Firebird Book written by Helen Borrie is the only available book that I have on Firebird, I hope more will be written and published soon.

    I find that this equation holds true in all aspects related to software development.
    (More Books & documentation = More users)

    Responda

    admin Reply:

    I agree with this equation too. Great point!

    Responda

  22. Kevin

    Firebird is a very good database.

    However, it does not look good when such basic feature requests as DROP TABLE CASCADE exists without any movement for 8 years:

    http://tracker.firebirdsql.org/browse/CORE-695?page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel

    And I concur with those who commented on the lack of documentation and the really poor web site, with lousy content search features, which leaves a bad impression no matter how good the database is. Simply having a “documents” page with links is not good enough. If someone can not find how to do something in Firebird quickly in docs available at the web site with a search function (much like you can with Postgresql), they will simply move to another database that does provide such online help. Also, allowing users to comment within the documents online again like at http://www.postgresql.org is brilliant and allows the community to help each other.

    Responda

    David Reply:

    It’s a pity your comments are still active.
    I have come across this blog in my search for an open rdbms and having read your comments, very nearly disregarded
    FirebirdSql. However I’m glad that i visited the site and
    continued my research.
    i do appreciate your post us dated 2010 but having read through the Quick Start Guide I found it very easy to read. (even whilst driving!)
    I have now decided to install Fdb instead of MySql.

    Responda

  23. Ahmet Nuri

    Hi,
    I am useing firebird since 2003.
    Firebird is very fast, real free, cross platform and very very strong database server. You can trust it for sql working.
    if you are asking why peoples not use firebird. I can give answer. So
    1- For example change your SYSDBA password ‘dbpasword’ if you copy your db from diffrent machine your password is change otomaticly ‘masyerkey’ . Who can use it on the web? There is no data security.
    2- Documantation is very important for databases. And firebird have very poor documantion. Education is too important. If you want to use other db you can find pdf, videos. But If you use firebird you can find only forums pages..

    Responda

    Carlos Santos Reply:

    I agree with number 2, and maybe that’s why you did the wrong thing described in number one. We cannot move the database file and expect it to work. We must export/import the database instead.

    Responda

  24. Lyndon

    I have used Firebird since it was Interbase…

    I now use version 2.1 and it is a great database. I have never had any problems with it in 10 years of use on commercial web sites. It works (fast) out of the box and needs NO configuration.

    BUT

    I cannot get it to work with Spring and that is a REAL problem.

    I have three databases that have one table in MySQL 5, Postgres 9 and Firebird 2.1. To swap databases, all I have to change are jdbc.properties and the dependency in pom.xml for the relevant .jar.

    It works for MySQL and Postgres but NOT for Firebird.

    I know the connection parameters in jbdc.properties are correct as I have used them in a small Java command program.

    I just get this on any database access:

    org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class ‘org.firebirdsql.jdbc.FBDriver’, cause: javax/resource/ResourceException, cause: javax/resource/ResourceException
    org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
    org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:572)

    Very strange but if I cannot get FB to work with Spring I will have to go with Postgres…

    Responda

    robert csakany Reply:

    I had the same problem, I debugged and I found the problem is the Firebird driver depends on j2e API, I add the following dependency to my project andd embedded in (osgi), I think you have the same problem with spring.
    I’ve added openEjb JAR to my bundle’s classpath and everything works fine.

    org.apache.openejb
    javaee-api
    5.0-3

    Responda

  25. Xavi

    I am using Firebird from the past 10 years. I am very pleasant with it. It is very robust and we have not had any problem in more than 1000 installations of our product.
    I agree that a big problem is the lack of documentation. There is there, but it is spreadout, among several webs, it is really a mess. Also, the Firebird webs do not help too much. They seems non professional, from my point of view, they are ugly and do not transmit trust.
    In any case, as I have said, I am really happy with the Firebird results. It is excellent database server and you will not have problems.

    Responda

  26. Pingback: Firebird News » How to attract more developers to use FirebirdSQL , thread continues

  27. Mariuz

    I gave my answers with ED in front
    Also added the response on firebirdnews http://www.firebirdnews.org/?p=5548

    1.There’s no big player like Sun/Oracle or IBM supporting it right now.

    ED: Not an issue: there is no need for the big Oracle look what they have done to MySQL , they killed it

    2.The official website is terrible (http://www.firebirdsql.org). Seems futile, but the first impression of the project is horrible. Makes you think it’s stalled.

    ED:This is worked as we speak check it and send us feedback http://www.firebirdtest.com

    3.Firebird’s biggest sponsor today is IBPhoenix , which main business IS Firebird. But even it’s website falls in the same problem.

    ED fixed :Site look and feel is updated

    4.The fact of being Delphi related since it’s begning. With Delphi’s decadence, its popularity just floundered with it.

    ED : That is solved we do have support for all the other new players : nodejs,rails , django , lua … And Lazarus apps are still the fastest one in benchmarks vs Java, .net …

    5.Poor documentation

    ED:Soon to be fixed , but more hands are needed , it’s easy to complain , please help to update and fix the bugs in the docs area

    Maybe things may change to Firebird SQL after Oracle bought Sun (many MySQL users are getting scared (I see no reason for this by the way)) and may play with Firebird, but it’s something improbable to happen.

    ED:Wind of change : i get more hits on my blog with things like phpbb3 installations , rails installations … and the traffic for Fibirebirdsql.org and firebirdnews.org is going up , also on the linux distro land and bsd side we are going well : packaged and ready to replace LAMP with FLAPS , firebird php driver is included in default php install on Windows

    Responda

  28. Biju

    Hi all,

    We are using Firebird for last 5 years . We are very much satisfied with it. We are using MySQL also . But I love firebird much.

    Responda

  29. David Rios

    I have also been using Firebird since it was Interbase. Besides all the reason expossed regarding poor documentation and others, I think the most important is the one from John Senior: it is really complicated to find a web hosting that supports Firebird other than using a VPS.

    I hope this will change with FLAPS, but it is a major challenge that main web hosting providers sponsor it.

    Responda

  30. Pedro fonseca

    We use firebird since version 1.5 (currently using 2.5 64 bit) for client/server commercial applications and it is a bullet proof engine, reliable and easy to develop on. The documentation is not it’s main strength however since it is fully sql 92 compliant we never got stuck with it. We love it and will stick with it: powerful, cross platform, free, configurable, open source… Who cares if the web site looks old or if the documentation is not that flash? This is a database engine that delivers from the embedded version to the corporate/multi-user environment. Long live Firebird!

    Responda

  31. Justin

    I’m not sure why the belief is that there is poor documentation, there is SQL compliance statements, Full sql syntax document, command line documents, FAQ’s, Release Notes, User Manual, Quick Start Guides, Architecture documents, version control, installation guides, and many others.

    Found here:

    and additional documentation can be found in the installation path and of course many other web sites.

    Considering it is a very low maintenance database server with very few optimization requirements being one of the most easily deployed database servers there is I’m not sure how much more information you really need.

    I’ve been using Firebird for 10 years and only had three instances of corruption on over 80 24/7 communications servers. I have been considering moving to PostgreSQL as the only offer truly open source enterprise database server (Firebird is not enterprise class as the features below will describe). But have been told by those who use it that corruption and management issues are far more common.

    Before people speak up and say MySQL is open source double check the licencing requirements for use of the client access libraries. It is open source from a web application perspective but from deployment to your customer it is not.

    Also MySQL claims support for a large number of features but these features are dependent on the database engine used. There are no versions of the MySQL engines that support all features at any one time, and worse some of these engines sacrifice integrity for performance or features.

    On the note that Firebird database is insure it depends on your perspective. It is if you let the end user access the file system of your server and copy the database to another machine, but would you let your user have admin rights if the data needed to be protected. By the way a quick look on how to access PostgreSQL without the postgres user account password revealed a way to do the same thing.

    I have also found ways in the pasted to access secure MS SQL Servers. So when a user has full access to your machine many databases become insecure.

    I don’t normally make statements on blogs for everyone to read but it is tiring reading comments as above when people don’t have the full picture.

    Would I recommend Firebird, yes if the feature requirements are met for the project absolutely but if you are a feature monger who looks at the spec sheets and disregards function over form you can easily pass up Firebird. There are some true omissions in Firebird that makes me look for alternates, they are as follows.

    Encryption between client/server, without using third party tunnels (though many databases use plugins to achieve this thus complicating deployment)

    Native database replication, an internal solution would be much more efficient than using third party trigger based solution (eg CopyCat).

    Read performance due to limited multi-core processor support. Though serious effort is being made to rectify this, as I speak version 3.0 is under development to correct this problem. By the way correctly optimized database access patterns can mitigate this issue. But it would be nice to see Firebird read request match those of Oracle and MySQL.

    Some of the nicer features that other servers have such as LDAP authentication and web services api such as offered by plugin with PostgreSQL.

    Just to recap Firebird is most likely the best middle tier database server on the market and since most users never have the requirements that are imposed by big enterprise will find it a joy to use. But if you need enterprise level functions then you will need to buy enterprise level solutions or settle with PostgreSQL.

    Responda

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.