Why so few developers are using Firebird SQL?

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 comentários em “Why so few developers are using Firebird SQL?”

  1. 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.

    1. 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.

      1. Firebird 2.0 is what, 6 or 8 years behind schedule? And when it releases it will be outdated from the beginning with no clue as to whether it will take 10 years to see 3.5. Why would you choose Firebird over PostgreSQL which releases yearly, has many more developers, much greater popularity and support, and a great deal more features?

        Honestly there’s not a single reason to choose Firebird over PostgreSQL today.

        1. My single reason to use firebird over PostgreSQL is the “connection leak” problem with hibernate. Hibernate creates transactions in PostgreSQL that cannot be closed due to the Lazy fetch type. In large operations, you get a full pool(C3p0) or a “too many clients” if you use native hibernate pool. Only Oracle 11g and firebird 2.5 do the job without entropy.

  2. 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..

    1. Carlos Santos

      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.

  3. 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…

    1. robert csakany

      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

  4. 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.

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

  6. 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

  7. John Senior

    I found it impossible to find a web host that will support Firebird.
    With MySQL, there are thousands to choose from.

  8. 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.

  9. 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.

  10. 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!

  11. 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.

  12. Firebird has not any active developers community.
    At least, if you want to use it with PHP – do not do it.
    pdo_firebird has very poor implementation and not any issues fixes for years.
    Once time you will get “Segmentation fault” and will can to do nothing with it. :(
    So, you must to use old and buggy ibase_* functions, manually implement placeholders emulation, and hope that all will works without crashes. No garanties here. And when you get crash – nobody helps you with it…

  13. Our company has been supporting Firebird in more than one hundred production environments for more than a decade. We currently serve the call centre collections industry where downtime is an absolute no-no and many of our sites have hundreds of users.

    Firebird does have it’s nitty gritty issues ,however, if you take time and study it you won’t be sorry. Make sure to get Helen Borrie’s book and work through it.

    Firebird 3 which should be released towards the end of 2015 will resolve many of the most obvious pain points. We just won a deal over another software vendor who rely on MW SQL – the reason was the client did not want to fork out $40 000 for a major SQL implementation :)

    If you need some help contact me at hans.vanaardt at voyagernetz dot com

  14. documentation for vb.net developers – nothing
    not supported bellow .net 4
    I not find any web hosting which support fbSql in my country

    and, yes, site is absolute disaster, so unprofessional, messy .. just…. no comment.

    so long firebird, bye bye

  15. Some strange comments here so I feel somewhat compelled to answer this old question.

    – Of course runtimes less than .NET 4.0 are supported. The ADO.NET library existed long before there was ever a .NET 4.0.

    – I’ve been using it in .NET for many, many years. Not sure what documentation is needed for a standard ADO.NET data access library. MSDN and forum posts have answered pretty much everything I have ever needed.

    – There are countless reasons to use Firebird instead of Postgresql. To say there aren’t is a ridiculous overstatement. Of course such blanket “My experience covers every development circumstance ever, anywhere” statements are common on the web. Hopefully people visiting the page recognize that kind of nonsense for what it is.

    – Right now in the summer of 2016 the site seems fine to me. My only criticism here would be navigating the documentation. But not enough to care. Of course this is an open source project. If someone doesn’t like it they can ask how they can help improve it.

    My personal speculations regarding its lack of popularity are:

    1) The world has gone from client/server applications where Firebird truly shines, to hosted solutions where it does not shine.
    2) New applications are being written with a web first mentality nowadays. It is correct to say that you’ll be hard pressed to find Firebird on the vase majority of hosted solutions out there. There is no compelling reason for many host providers to make it an option either.
    3) The other place countless new apps are being created are on Amazon and Azure. Again, they have excellent database options already.
    4) As mentioned, Delphi has been dying for years despite what its owners say. It’s the only development language where Firebird will be almost universally considered as an option. In other languages there are strong biases towards different database options which results in better database driver options.
    5) Most people using open source databases are also using open source drivers. Unless there is a critical mass for supporting a particular database these projects frequently stall and become abandonware when the original author(s) moves on.

    I’m happy Firebird is still a healthy option. It’s an outstanding option for client/server desktop apps that commonly have to be installed in hundreds/thousands of different locations where there is little or no I/T support, poor hardware, and unsupported operating systems (just because Microsoft stopped supporting Windows XP doesn’t mean everyone updated…).

  16. My 2 cents worth….

    I think MYSQL is so popular simply because of 2 reasons, just about every database tutorial uses MYSQL, and a preconceived notion that it is completely free (for commercial use).

    I started with Oracle DB’s, then learned delphi (and interbase) and FB, postgres, MSSQL. During the journey I looked into changing a project or 2 into MYSQL and a number of things stopped me at the time. Licensing was a major. From memory (please I don’t want to start a flame war as this was going back a number of years) MSSQL didn’t support triggers pre and post change, concurrency issues (table and row aren’t good enough when doing processing within procedures that rely on that data). External procedures … I can’t remember, but there was something fishy here too, and yes I used them.

    Like you I don’t understand why it isn’t more popular. It is an enterprise class database that has some nicer features than MSSQL or Oracle.

  17. I am Delphi Developer. Prefer to use firebird than MySQL. Reason:
    1. Free
    2. MySQL lack documentation of UDF in Delphi but Firebird not. They have many samples.
    Though internal function is limited, but if you can build UDF it’s more powerful than other databases.

    1. Looking into using firebird with D7, and hoping for a quick jump start how2
      by first chooso the best/free vcl for interfacing an a simple sample code snippet
      if possible ? ie a simple address book or other to get started…
      Also loking into mysql using the zeoslib… Any thoughts/info sharing available ?
      thanks
      Geir

  18. I have been trying to use the Firebird database engine for quite a while now with a lot of issues getting in the way of my development. I believe these issues have plagued the Firebird database engine for years and are the direct factors in its low popularity.

    1…
    As a database engine, Firebird appears to be a very stable platform as it was based on the excellent Interbase implementation of the 1990s. However, Firebird has been moved into an Open Source environment that outside the community has been totally unresponsive to developer issues. If you try to contact the project members, you receive no response.

    2…
    The documentation for Firebird is rarely kept up to date with the publication of newly updated reference manuals for each new release leaving developers with the complexity of trying to understand if something has changed internally that may be causing their SQL code to fail.

    3…
    Third party tools for Firebird are wholly inconsistent in their reporting of sql syntax issues. I have been using the excellent database managers from the EMS SQL Manager company for years for a variety of database engines without any issues. However, with the one for Firebird errors, which are reported as from other database engines, are received from the Firebird engine itself. Many such errors never provide any inkling as to where in your SQL code the issue may be leaving one with hours of tinkering with the most minor of syntax problems.

    4…
    With the exception of StackOverflow, there is no real community support arena for this database engine, which should be a forum on the Firebird Database site leaving developers the unenviable task of researching the entire Internet for answers to their problems.

    5…
    While all the other database engines, both commercial and Open Source, provide relatively good documentation for their engines, the best documentation that Firebird offers are the Helen Borrie books outside the standard Firebired reference manual. These two books (now in 2 volumes) cost around $80.00 and appear to be the only documentation sources that may make using Firebird a much easier experience. However, who really wants to spend the money?

    I believe these have been the basic complaints that have been consistent over the years for which the Firebird project has never done a thing to rectify. As a result, it is apparent that the project members simply do not care enough to address them.

    I am returning to my favorite database engine, SQL Server. And for my own applications I am now in the process of moving my development databases over to SQL Server LocalDB…

  19. I am finishing up support of the Firebird database for my Micro ORM call “Symbiotic” and the “Symbiotic Code Generator”. Should be available next week.

    https://www.nuget.org/packages/Symbiotic_Micro_ORM_Net_Standard_x64/
    https://www.microsoft.com/store/productId/9NN20Q6WFKGS
    http://www.frozenelephant.com/Products/Symbiotic

    I had some issues getting it up and running.

    I had to disable the service, then re-run the installer to install the client tools in order to get Flame Robin working.

    Also the Flame Robin “Create database” is not very intuitive. It’s not obvious you are specifying a full path and filename for the new database file. The entire UI for creating a new database is a bit vague.

    The sql errors are very cryptic, even the line numbers specified can be way off. Was a bit trick to find and build the sql to discover the database schema.

    That said, I have over 20 years experience creating and working with databases, and other than Sql server, I find Firebird is easiest to get up and running. DB2, then Oracle is the worst.

    So far it looks good, but I have only been using it for a week.

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Rolar para cima