Last month the two-week survey on Jaybird ended. In total we received 132 responses. I’d like to thank everyone who responded for their input.
To put the number of responses in perspective: Jaybird 2.2.1 (released last week) was downloaded 853 times, Jaybird 2.2.0 (released in July 2012) was downloaded 8203 times (as of last Sunday, the 7th of October)
I will go by each question and discuss the results, where relevant I will add some info on the influence of these results.
1. Development vs Use
The opening question was about the use of Jaybird: developing applications, or just using it in third party applications/tools.
As you can see the overall majority uses Jaybird in development of applications, while the remaining 9% use it in applications developed by others.
2. Jaybird versions
Next we asked which Jaybird versions you were using. This question allowed for multiple options, so it adds up to over 100%.
It is good to see that almost three months after release of 2.2 the majority has switched (or is also using) Jaybird 2.2.
If you are still using an older version (especially before 2.1.6), I am interested to know if there are things that are keeping you from switching to newer versions.
3. Jaybird protocols
We also wanted to know which ‘protocol’ implementations in Jaybird you were using. This question also allowed for multiple options.
As you can see the vast majority is using the (default) pure java protocol, with embedded and native falling far behind. One respondent chose Other, and specified SQLJ, which is not a standard protocol in Jaybird.
4. OS platforms
Next: the OSes you use, once again this question allowed for multiple options:
Windows (81%) and Linux (73%) are contending for first place and Mac OS X (13%) in third. Looking at the raw data, 55% use both Linux and Windows, and 8% use Linux, Windows and Max OS X. Of the 5 specifying Other, 2 use FreeBSD and 2 use Solaris, and 1 specified Android, although Jaybird currently doesn’t work on Android.
5. Java versions
We are very interested in the versions of Java you use, for our reasons: see question 9. This question allowed for multiple options.
As you can see Java 6 and 7 have the greatest number of users (53% use both Java 6 and 7). Java 5 is only a small minority. The respondent specifying Other is using Java 1.4.
6. Primary Java version
The previous question asked for all Java versions, so now we asked for the primary version you use or (have to) support:
Here we can see that a year after release of Java 7 that Java 6 is still in the lead, followed by Java 7. I am curious how this will develop over the next year, as Java 6 will go to End Of Public Updates in February 2013.
For contrast: the Jaybird 2.2 and 2.2.1 downloads from sourceforge.net show the following distribution (as of last Sunday):
7. Firebird versions
Similar as with Java, we really like to know what Firebird versions you use with Jaybird. This question allowed for multiple options.
These results mostly confirm my expectations, although I was surprised to see that there are more people (still) using Firebird 1.5 than for example Firebird 2.0. This probably has to do with changes between 1.x and 2.x making it harder to switch to 2.x, than to migrate from 2.0 to 2.1 or 2.5. The 1 specifying Other is using Red Database from Red Soft.
8. Primary Firebird version
The previous question asked for all Firebird versions you use, this one was about the primary version you use or support.
No surprises here: most of you are using Firebird 2.5.
For the few still using Firebird 1.x: please be aware that Jaybird 2.2 is the last version to formally support Firebird 1.x. Future versions of Jaybird might still work with Firebird 1.x, but we will no longer fix bugs that occur only in 1.x, and we might make changes to support or use 2.x features without considering compatibility with Firebird 1.x.
9. Drop support for Java 5
We asked what you think about continuing support for Java 5 in Jaybird 2.3 and later.
As you can see the majority want us to drop support or didn’t care either way. Given the response here and in questions 5 and 6, we have made the decision to remove Java 5 support in Jaybird 2.3.
Removing Java 5 support from Jaybird 2.3 will allow us to maintain Jaybird as a single codebase (at least for now, who knows what changes Java 8 will need). This makes it a lot easier to improve our JDBC 4.0 and 4.1 support. Until Jaybird 2.3 is released, we will continue Java 5 support with Jaybird 2.2.
10. Types of applications developed with Jaybird
Next question: what type of applications do you develop. This question allowed for multiple options.
JavaEE and desktop applications are almost the same in size, with 33% developing both.The Other option included respondents developing non-JavaEE application servers and/or websites, mobile development and command line tools.
Next survey I will probably add more choices, or use a single choice option to get a better distinction.
11. Application servers used with Jaybird
This question allowed for multiple options. Clearly Apache Tomcat is king, with JBoss a distant second.
I am not sure yet how I am going to use these results, but it will probably mostly influence future documentation, examples and testing efforts.
12. Improvements to Jaybird
The team for Jaybird is small, so we want to invest our time wisely. The following lists what the respondents think are areas that need improvement:
This question allowed for multiple options. Clearly both JDBC compliance and compatibility with third-party tools are most important to you. We will try to give extra attention to these areas. You can help us identify specific improvement points by posting them either on the Firebird-Java list, or on the issue tracker.
13. Firebird Foundation
Finally we asked if you (or your company) support development of Firebird (and Jaybird) with a membership or sponsorship of the Firebird Foundation.
Firebird Foundation is an organisation of individuals and companies of various sizes, working together as parts of a non-profit organisation that aims to ensure the continued development of the open source Firebird relational database and related products. The dues paid by members play an important part in directly funding development of the Firebird engine.
Unfortunately, the vast majority (94%) of respondents is not a member, on the upside: 8% expressed interest to become a member. Becoming a member and contributing financially isn’t the only way to contribute and improve Jaybird (and Firebird in general): reporting issues, contributing patches or writing documentation are all very welcome.
We also included a comment field for additional comments.
These comments included words of praise like:
- I wanted to take this opportunity to thank you for all of your hard work!
- Thank you for all your hard work in developing this crucial link to an excellent database 🙂
- jdbc is very important for firebirdsql. without it, firebird wouldn’t be in 1-st database class 😉
- Jaybird is very good. Good work.
- I like using Firebird database and use jaybird. I have plan for future to contribute developing
firebird database if needed.
Calls for improvements to the code or new features:
- please split the driver for easy android porting
- we need the ability to easily create and use basic classes heirs of FBXxxxxXxxxx as: myFBXxxxxXxxxx extends FBXxxxxXxxxx; For example now FBDriver create ResultSet, Connection internal and we are not have easy way to use myResultSet class and myConnection class in my application
- I tried to contribute once to fix a bug that was affecting me, and found the code too messy and hard to follow. Maybe its time to have a major restructuring, to be more developer-friendly.
- would be great to improve efficiency of queries over high latency links
For some of these things I can’t make promises, as these require a lot of time and effort with – in my opinion – little gain for Jaybird itself (eg restructuring the driver to get it to work on Android, or to simplify external extensibility).
I think that time and effort can be better directed to other things (eg improving general code quality and structure, JDBC compliance and third-party tools support). However if you want to contribute (to) an improvement like this, you are more than welcome to contact me directly or start a discussion thread on Firebird-Java.
The comments also yielded a (potential) bug report:
- The latest jaybird driver seems to kill SymmetricDS (the latest version) it’s most likely their issue but thought it was a good to know
And miscellaneous comments:
- I have donated to Firebird before, but don’t know if that makes me a sponsor?
I love the fact that Jaybird talks directly to Firebird, but have found that the old InterServer/InterClient pair were sometimes quite a bit faster than Jaybird.
- I will talk my managers to support Firebird (and environment tools like Jaybird, Flamerobin etc.) development.
This concludes this overview of the survey results. I plan to do a new survey next year, and once again: thanks for all your input.